rsync ผ่าน ssh


rsync เป็นเครื่องมือที่ใช้ในการ sync ไฟล์ระหว่าง 2 directories บน Unix ซึ่งก็แน่นอนว่า rsync ติดตั้งมาโดยดีฟอลท์กับ Ubuntu และ Mac OS X อยู่แล้ว

ดังนั้น rsync จึงเหมาะมากสำหรับคนที่ทำงานเครื่อง Linux ที เครื่อง Mac ทีสำหรับผม (จริงๆก็มีบน Windows นะ แต่ต้องลงผ่าน Cygwin) แต่ rsync เป็น CLI (command line interface) นะ ใครที่ไม่ชอบก็ต้องหาโปรแกรม GUI front end มาใช้เอาเองแล้วกัน ส่วนผมไม่ค่อยแคร์เรื่อง CLI กับ GUI เท่าไร เพราะตั้งแต่ใช้ Ubuntu ก็ต้องเจอกับ Terminal เป็นภาคบังคับอยู่แล้ว ชินแล้วแหละ

rsync มีคำสั่งในการ sync ไฟล์ระหว่างคอมพิวเตอร์ 2 เครื่องผ่าน ssh ด้วย ตัวอย่างคำสั่งที่ใช้ก็คือ

rsync -av --delete --exclude=".*" -e ssh user@192.168.1.1:/source/folder/ /destination/folder/

ขออธิบาย option แต่ละตัวดังนี้

-a คือ archive mode = sync เสร็จแล้ว ไฟล์ตันฉบับกับไฟล์ปลายทางจะได้เหมือนกันทุกประการ

-v คือ verbose = อธิบายรายละเอียดระหว่างทำงาน

--delete คือ ให้ลบไฟล์ที่ไม่มีใน directory ต้นทาง ออกจาก directory ปลายทาง

--exclude=".*" คือ ไม่รวมไฟล์ที่เป็นไฟล์ซ่อน (ไฟล์ที่นำหน้าด้วย .) ในการ sync ที่ต้องใส่ option นี้เป็นเพราะ OS X มันจะชอบสร้าง index เป็นไฟล์ซ่อน .DS_STORE มั่วซั่วไปหมด

-e ssh คือ บอกให้รู้ว่าเราจะใช้ ssh

user@192.168.1.1:/source/folder/ คือ path ไดเร็กทอรีต้นทางซึ่งอยู่บนอีกเครื่อง Network ต้องใส่ชื่อ username และ ip address ของเครื่องนั้นด้วย

/destination/folder/
คือ path ไดเร็กทอรีปลายทางบนเครื่องของเราเอง

พิมพ์คำสั่งเสร็จ กด Enter จะมีขึ้นให้ป้อน password ก็ให้ใส่ password ของเครื่องที่เราจะต่อ ssh เข้าไป (ไม่ใช่ password ของเครื่องที่เราใช้อยู่นะ)

ข้อแม้ของการใช้คำสั่งนี้ก็คือเครื่องต้นทางต้องเปิด ssh server เอาไว้ ซึ่ง Ubuntu มันมีแต่ ssh client มาเป็น default แต่ไม่มี ssh server มาให้ ต้องไปที่ Synaptic แล้วลง packages ที่มีชื่อว่า ssh ซะก่อน (ssh เป็น metapackage ของ openssh ทั้ง server และ client) หรือใครจะ apt-get เอาก็ไม่ว่ากัน

ส่วน Mac OS X ถ้ามีแจ้งขึ้นว่า “ต่อ ssh ไม่ได้” ต้องไปที่ System Preferences แล้วเข้า Sharing แล้วก็เช็คดูว่าได้ Remote login เปิดไว้หรือเปล่า ถ้าไม่ได้เปิดก็ให้เปิดซะ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: