- ว่าด้วยเรื่องการทำ mirror web server เรา เอาไว้รองรับยามฉุกเฉิน
- ครั้งที่แล้วใช้ scp เพราะคิดว่า rsync ต้องคอนฟิกยุ่งยาก แต่ไม่ใช่อย่างที่คิดเลย
- เพราะ source เราเป็น Ubuntu และ destination เราเป็น Ubuntu ขั้นตอนจึงสั้นนิดเดียว
- ซึ่ง Ubuntu 18 .04 และ 20.04 มันจะลง rsync ให้เรามาตั้งแต่ติดตั้งแล้ว เราแค่ไปเรียกใช้งานเท่านั้น
- $ rsync [option,...] source destinaton
How to
- ต้องการ Sync data จาก Server (source) มายัง Client (desitnation)
- ตัวอย่างนี้ ให้คัดลอกไฟล์ภายใน folder ชื่อ path_server ไปวางไว้ภายใน path_client โดยไม่ได้เอา folder path_server ไปด้วยนะ
$ rsync -avzh --delete user@ip_server:/path_server/ /path_client
- ส่วนตัวอย่างนี้ ให้คัดลอก folder ชื่อ path_server และ ไฟล์ภายในทั้งหมด ไปวางไว้ภายใน path_client
$ rsync -avzh --delete user@ip_server:/path_server /path_client
- ทั้ง 2 ตัวอย่างคล้ายกันแค่มี / และ ไม่มี / หลัง path_server
- ถ้าใช้คำสั่งด้านบนโดยยังไม่เคยใช้ public key authen ระบบจะถาม password ทุกครั้ง
- แนะนำการ authen ใช้แบบ public key authen ใน profile เรา 1 ครั้ง
- ครั้งถัดไป มันเอาค่า public key authen เป็น default by pass ให้เลย ไม่ต้องใส่ option -i ให้ยาว
- เช่น ถ้าเราเคยใช้ คำสั่ง
$ ssh -i /path/privkey user@ip_server
- ครั้งถัดไปให้เราใช้แค่นี้ไม่ต้องใช้ -i มันก็ เราค่า authen โดย private key มาใช้โดยอัตโนมัติ จนเรางง เลยว่า ทำไมมันไม่ให้ใส่ password หว่า ทั้งที่ไม่ได้ใช้ -i
$ ssh user@ip_server
- และ รวมถึง util อื่นๆ ที่ใช้ผ่านบน client เครื่องนี้ด้วย เช่น scp , rsync เป็นต้น
- ลืมในกรณีกลับกัน ต้องการ sync เอาไฟล์จาก client ไป update บน server ให้ทำประมาณนี้ คือ เอาไฟล์ภายในและตัว folder path_client ไปวางไว้ภายใต้ path_server
$ rsync -avzh --delete /path_client user@ip_server:/path_server
Note
- ถ้าเราไม่ใส่ --delete มันจะไม่ลบไฟล์ ที่เกินในฝั่ง destination
Related
- http://juuier.blogspot.com/2021/09/scp-copy-tool-ubuntu-2004.html
- https://juuier.blogspot.com/2014/03/mirror-website-rsync.html
- https://juuier.blogspot.com/2021/06/set-remote-ssh-by-public-key.html
Ref
- https://linuxhint.com/rsync_copy_files_ubuntu/
- man rync