ผู้เขียน หัวข้อ: Rsync เพื่อใช้ copy file จากเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง Ubuntu16.04  (อ่าน 7116 ครั้ง)

ออฟไลน์ ผู้ดูแลระบบ

  • Administrator
  • Jr. Member
  • *****
  • กระทู้: 64
  • +0/-0
    • ดูรายละเอียด
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 Pair

ssh-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 Key

cat ~/.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-password

systemctl 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



« แก้ไขครั้งสุดท้าย: ธันวาคม 11, 2017, 11:08:18 pm โดย ผู้ดูแลระบบ »