Post Views:
1,285
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 เปิดไว้หรือเปล่า ถ้าไม่ได้เปิดก็ให้เปิดซะ
Credit
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
คือ บอกให้รู้ว่าเราจะใช้ sshuser@192.168.1.1:/source/folder/
คือ path ไดเร็กทอรีต้นทางซึ่งอยู่บนอีกเครื่อง Network ต้องใส่ชื่อ username และ ip address ของเครื่องนั้นด้วย
คือ path ไดเร็กทอรีปลายทางบนเครื่องของเราเอง/destination/folder/
พิมพ์คำสั่งเสร็จ กด 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 เปิดไว้หรือเปล่า ถ้าไม่ได้เปิดก็ให้เปิดซะ
Credit
rsync ผ่าน ssh
Nattakon Mingkaew
More Posts
Nattakon Mingkaew