Reply to comment

Rsync: ตัวช่วย upload source code

เรื่องมีอยู่ว่าผมอยากหาวิธีที่จะ upload source code จากเครื่องผมไปยัง server โดยไม่จำเป็นต้อง copy ทั้งหมดไปทับ
เนื่องจากมันเปลืองเวลา ยิ่งถ้าไม่ได้อยู่ที่มี Internet แรง ๆ แล้วหล่ะก็ เหนื่อย แน่ ๆ

คำตอบก็ลงตัวที่ rsync ครับ ซึ่งผมสามารถทำได้ดังนี้

rsync -av /myproject/projecta/ myusername@semicolon.in.th:/wwwroot/projecta/

โดยก่อนที่จะ sync จริง ๆ ผมมักจะเติม -n เข้าไปด้วย เพื่อตรวจสอบว่า file ที่กำลังจะ upload นั้น
คือ file ที่แก้ไขไปจริง ๆ หรือไม่ เช่น

rsync -avn /myproject/projecta/ myusername@semicolon.in.th:/wwwroot/projecta/

ก็ใช้งานได้ดีครับ แต่มีปัญหานิดหน่อย คือ
เมื่อใดก็ตามที่ผม check out source code มาจาก subversion มาไว้ที่ directory ใหม่
วันที่ของ file จะไม่ตรงกับ file ที่อยู่บน server และ rsync ก็จะคิดว่ามันเป็น file ใหม่ ก็จะต้อง sync ทุกครั้งไป

นอกจากสร้างปัญหาด้านความช้าในการ upload แล้ว
ยังทำให้ผมไม่แน่ใจด้วยว่า ถ้าผม sync ไปแล้วระบบจะมีปัญหาหรือไม่
เนื่องจากมัน upload ขึ้นไปใหม่ทุก file เลย - -"

หลังจากหาและมั่วอยู่ตั้งนาน ก็พบ option นี้ (ด้วยความตาถั่ว จึงใช้เวลานานเป็นพิเศษ -*- )

 -v, --verbose               increase verbosity
 -q, --quiet                 suppress non-error messages
     --no-motd               suppress daemon-mode MOTD (see caveat)
 -c, --checksum              skip based on checksum, not mod-time & size

เจ้า -c (หรือ --checksum) นั่นเองครับ ดังนั้นผมจึงเปลี่ยนคำสั่งในการ sync เป็น

rsync -avc /myproject/projecta/ myusername@semicolon.in.th:/wwwroot/projecta/

Reply

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.