How To Use Rsync to Sync Local and Remote Directories on a VPSต้องติดตั้ง ssh
sudo apt-get install sshและจัดการ key pair
Step One—Create the RSA Key Pairssh-keygen -t rsaข้อความ
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
ให้ใส่ข้อความ ก่อนป้อนรหัสผ่าน ไม่ใส่ให้ enter ผ่าน
Enter passphrase (empty for no passphrase):
ใส่รหัสผ่าน
Enter same passphrase again:
รหัสผ่านอีกรอบ
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
| .oo. |
| . o.E |
| + . o |
| . = = . |
| = S = . |
| o + = + |
| . o + o . |
| . o |
| |
+-----------------+
Step Three—Copy the Public Keycat ~/.ssh/id_rsa.pub | ssh kob@192.168.247.152 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"หมายเหต และ สำคัญมากในการใช้งานกับเครื่อง server จริงปรากฏว่าไม่สามารถใช้งานได้จริงจึงใช้คำสั่งนี้แทน
cat /root/.ssh/id_rsa.pub | ssh kob@192.168.2.5 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"และการดูว่า public key ตรงกันหรืไม่นั่นให้ทำดังนี้
ตรวจสอบ id_rsa.pub ที่เครื่อง web1 สั่ง cat ~/.ssh/id_rsa.pub ถ้าไมพบลองค้นหาเครื่องจริงพบว่าอยู่ที่ cat /root/.ssh/id_rsa.pub
และตรวจสอบ key ในเครื่องที่ sync ไป สั่ง nano ~/.ssh/authorized_keys
ถ้าตรงกันเป็นอันใช้ได้ เราจะ sync โดยไม่ต้องพิมพ์ password ถ้าไม่ได้มันจะถาม password ทุกครั้งที่สั่ง sync
######################################## คำสั่ง rsync ในเครื่องใช้งานจริง
rsync -azP /var/www/html/bchn/pic web1@192.168.2.5:/var/www/html/bchn
rsync -azP /var/www/html/bchn web4@192.168.2.4:/var/www/html
########################################################จากนั้นเข้าไป config ssh
sudo nano /etc/ssh/sshd_configหาและเปลี่ยนบรรทัดนี้
PermitRootLogin without-passwordsystemctl restart sshคำสั่งสำหรับ rsync มีสองแบบ push กับ pull
แบบ push มีรูปแบบดังนี้
รูปแบบ
rsync -a ~/dir1 username@remote_host:destination_directoryตัวอย่างใช้งานจริง
rsync -a ~/dir1 kob@192.168.247.152:/dir2คำอธิบาย copyfile จาก dir1 ทั้งหมด ไปยัง dir2 ของเครื่อง 192.168.247.152
แบบที่ 2 แบบ pull
รูปแบบ
rsync -a username@remote_host:destination_directory place_to_sync_on_local_machineใช้งานจริง
rsync -a kob@192.168.247.152:/var/www/html /var/www/htmlถ้าต้องการเห็นความคืบหน้าให้ใช้รูปแบบนี้
rsync -azP source destinationเช่น
rsync -azP ~/dir1 kob@192.168.247.152:/dir2อื่นๆ
รูปแบบการลบ file ปลายทาง
rsync -a --delete source destination