您好,登錄后才能下訂單哦!
ansible synchronize作用跟rsync很相似,具體參數如下:
參數內容,均來自官網,如果有出入,以官網為主
參數 | 是否必須 | 默認 | 選項 | 說明 |
archive | no | yes | yes no | rsync鏡像遞歸標志,啟用遞歸,鏈接,權限,時間,屬主,屬組標志和 -D |
checksum | no | no | yes no | 跳過基本的校驗 |
compress | no | yes | yes no | 在傳輸過程中壓縮文件數據。在大多數情況下,請保持啟用,除非它導致問題。 |
copy_links | no | no | yes no | 將符號鏈接復制為它們所指向的項(引用對象),而不是符號鏈接。 |
delete | no | no | yes no | 刪除src路徑中不存在的dest中的文件(傳輸后,不在之前)。此選項需要recursive = yes。 |
dest | yes | 要同步源的目標主機上的路徑;該路徑可以是絕對路徑或相對路徑。 | ||
dest_port | no | ansible_ssh_port的值設定,remote_port配置設置,如果ssh客戶端沒有設置的話 | 目標主機上ssh的端口號。在ansible 2.0之前,ansible_ssh_port庫存變量優先于此值。 | |
dirs | no | no | yes no | 傳輸目錄而不進行遞歸 |
existing_only | no | no | yes no | 跳過在接收器上創建一個新文件。 |
group | no | 遞歸選項的值 | yes no | 保留組 |
links | no | 遞歸選項的值 | yes no | 將符號鏈接復制為符號鏈接。 |
mode | no | push | yes no | 指定同步的方向。在推模式下,localhost或delegate是源;在拉模式下,遠程主機在上下文中是源。 |
owner | no | 遞歸選項的值 | yes no | 保留屬主 |
partial | no | 告訴rsync保留一些文件,這應該使以后的文件傳輸的其余部分。 | ||
perms | no | 遞歸選項的值 | yes no | 保留權限 |
recursive | no | 遞歸選項的值 | yes no | 遞歸到目錄。 |
rsync_opts | no | 通過傳入數組來指定其他rsync選項。 | ||
rsync_path | no | 指定要在遠程主機上運行的rsync命令。請參見rsync手冊頁上的--rsync-path。 | ||
rsync_timeout | no | 以秒為單位指定rsync命令的--timeout。 | ||
set_remote_user | no | True | put user @為遠程路徑。如果您有自定義ssh配置為與庫存用戶不匹配的主機定義遠程用戶,則應將此參數設置為“no”。 | |
src | yes | 將同步到目標的源主機上的路徑;路徑可以是絕對路徑或相對路徑。 | ||
times | no | 遞歸選項的值 | yes no | 保存修改時間 |
use_ssh_args | no | no | yes no | 使用ansible.cfg中指定的ssh_args |
verify_host | no | 驗證目標主機密鑰。 |
1.同步目錄下文件:
源文件:
# ll total 4 lrwxrwxrwx 1 root root 8 Dec 28 17:39 fk -> /data/fm -rw-r--r-- 1 root root 4096 May 31 2016 p.txt
同步目錄下文件,而不是目錄:
# ansible webserver -m synchronize -a "src=/root/dog/ dest=/tmp/" 172.16.110.48 | SUCCESS => { "changed": true, "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh 'ssh -S none -o StrictHostKeyChecking=no' --out-format='<<CHANGED>>%i %n%L' \"/root/dog/\" \"172.16.110.48:/tmp/\"", "msg": ".d..t...... ./\n", "rc": 0, "stdout_lines": [ ".d..t...... ./" ] } 172.16.110.47 | SUCCESS => { "changed": true, "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh 'ssh -S none -o StrictHostKeyChecking=no' --out-format='<<CHANGED>>%i %n%L' \"/root/dog/\" \"172.16.110.47:/tmp/\"", "msg": ".d..t...... ./\n", "rc": 0, "stdout_lines": [ ".d..t...... ./" ] }
同步了所有文件
# ll total 8 drwxr-xr-x 2 root root 29 Dec 28 17:39 dog lrwxrwxrwx 1 root root 8 Dec 28 17:39 fk -> /data/fm //無效鏈接,源不存在
2.同步整個目錄:
# ansible webserver -m synchronize -a "src=/root/dog dest=/tmp/" 172.16.110.48 | SUCCESS => { "changed": true, "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh 'ssh -S none -o StrictHostKeyChecking=no' --out-format='<<CHANGED>>%i %n%L' \"/root/dog\" \"172.16.110.48:/tmp/\"", "msg": "cd+++++++++ dog/\ncL+++++++++ dog/fk -> /data/fm\n<f+++++++++ dog/p.txt\n", "rc": 0, "stdout_lines": [ "cd+++++++++ dog/", "cL+++++++++ dog/fk -> /data/fm", "<f+++++++++ dog/p.txt" ] } 172.16.110.47 | SUCCESS => { "changed": true, "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh 'ssh -S none -o StrictHostKeyChecking=no' --out-format='<<CHANGED>>%i %n%L' \"/root/dog\" \"172.16.110.47:/tmp/\"", "msg": "cd+++++++++ dog/\ncL+++++++++ dog/fk -> /data/fm\n<f+++++++++ dog/p.txt\n", "rc": 0, "stdout_lines": [ "cd+++++++++ dog/", "cL+++++++++ dog/fk -> /data/fm", "<f+++++++++ dog/p.txt" ] }
同步了整個目錄
# ll total 8 drwxr-xr-x 2 root root 29 Dec 28 17:39 dog
3.同步時候保持屬主,屬組,權限,鏈接,同時傳輸的時候使用壓縮
同步前文件詳情:
# ll dog/ total 8 -rw-r--r-- 1 ckl ckl 9 Dec 29 13:05 em_f lrwxrwxrwx 1 root root 8 Dec 28 17:39 fk -> /data/fm -rwx------ 1 root root 4096 May 31 2016 p.txt
同步:
# ansible webserver -m synchronize -a "compress=yes group=yes links=yes src=/root/dog/ dest=/tmp/sync_dir" 172.16.110.47 | SUCCESS => { "changed": true, "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh 'ssh -S none -o StrictHostKeyChecking=no' --out-format='<<CHANGED>>%i %n%L' \"/root/dog/\" \"172.16.110.47:/tmp/sync_dir\"", "msg": ".d..t...... ./\n<f+++++++++ em_f\ncL+++++++++ fk -> /data/fm\n<f+++++++++ p.txt\n", "rc": 0, "stdout_lines": [ ".d..t...... ./", "<f+++++++++ em_f", "cL+++++++++ fk -> /data/fm", "<f+++++++++ p.txt" ] } 172.16.110.48 | SUCCESS => { "changed": true, "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh 'ssh -S none -o StrictHostKeyChecking=no' --out-format='<<CHANGED>>%i %n%L' \"/root/dog/\" \"172.16.110.48:/tmp/sync_dir\"", "msg": ".d..t...... ./\n<f+++++++++ em_f\ncL+++++++++ fk -> /data/fm\n<f+++++++++ p.txt\n", "rc": 0, "stdout_lines": [ ".d..t...... ./", "<f+++++++++ em_f", "cL+++++++++ fk -> /data/fm", "<f+++++++++ p.txt" ] }
結果:(權限及屬性保持不變)
# ll total 8 -rw-r--r-- 1 ckl ckl 9 Dec 29 13:05 em_f lrwxrwxrwx 1 root root 8 Dec 28 17:39 fk -> /data/fm //無效鏈接,源不存在 -rwx------ 1 root root 4096 May 31 2016 p.txt
4.刪除目標上的文件:
刪除前文件:
# ll total 8 -rw-r--r-- 1 ckl ckl 9 Dec 29 13:05 em_f lrwxrwxrwx 1 root root 8 Dec 28 17:39 fk -> /data/fm -rwx------ 1 root root 4096 May 31 2016 p.txt
刪除:
# ansible webserver -m synchronize -a "src=/root/dele/ dest=/tmp/sync_dir delete=yes" 172.16.110.47 | SUCCESS => { "changed": true, "cmd": "/usr/bin/rsync --delay-updates -F --compress --delete-after --archive --rsh 'ssh -S none -o StrictHostKeyChecking=no' --out-format='<<CHANGED>>%i %n%L' \"/root/dele/\" \"172.16.110.47:/tmp/sync_dir\"", "msg": "*deleting dele/\n*deleting p.txt\n*deleting fk\n*deleting em_f\n", "rc": 0, "stdout_lines": [ "*deleting dele/", "*deleting p.txt", "*deleting fk", "*deleting em_f" ] } 172.16.110.48 | SUCCESS => { "changed": true, "cmd": "/usr/bin/rsync --delay-updates -F --compress --delete-after --archive --rsh 'ssh -S none -o StrictHostKeyChecking=no' --out-format='<<CHANGED>>%i %n%L' \"/root/dele/\" \"172.16.110.48:/tmp/sync_dir\"", "msg": "*deleting dele/\n*deleting p.txt\n*deleting fk\n*deleting em_f\n", "rc": 0, "stdout_lines": [ "*deleting dele/", "*deleting p.txt", "*deleting fk", "*deleting em_f" ] }
查看目標文件:
# ll /tmp/sync_dir/ total 0
5.同步鏈接時,同步源文件
# ll total 8 -rw-r--r-- 1 ckl ckl 9 Dec 29 13:05 em_f lrwxrwxrwx 1 root root 8 Dec 28 17:39 fk -> /data/fm -rwx------ 1 root root 4096 May 31 2016 p.txt drwxr-xr-x 2 root root 20 Dec 29 13:15 wu [root@localhost dog]# ll * -rw-r--r-- 1 ckl ckl 9 Dec 29 13:05 em_f lrwxrwxrwx 1 root root 8 Dec 28 17:39 fk -> /data/fm -rwx------ 1 root root 4096 May 31 2016 p.txt wu: total 4 -rw-r--r-- 1 root root 14 Dec 29 13:15 kk.txt
同步:
# ansible webserver -m synchronize -a "compress=yes group=yes copy_links=yes dirs=yes src=/root/dog/ dest=/tmp/sync_dir" 172.16.110.48 | SUCCESS => { "changed": true, "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --copy-links --dirs --rsh 'ssh -S none -o StrictHostKeyChecking=no' --out-format='<<CHANGED>>%i %n%L' \"/root/dog/\" \"172.16.110.48:/tmp/sync_dir\"", "msg": ".d..t...... ./\n<f+++++++++ em_f\n<f+++++++++ fk\n<f+++++++++ p.txt\ncd+++++++++ wu/\n<f+++++++++ wu/kk.txt\n", "rc": 0, "stdout_lines": [ ".d..t...... ./", "<f+++++++++ em_f", "<f+++++++++ fk", "<f+++++++++ p.txt", "cd+++++++++ wu/", "<f+++++++++ wu/kk.txt" ] } 172.16.110.47 | SUCCESS => { "changed": true, "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --copy-links --dirs --rsh 'ssh -S none -o StrictHostKeyChecking=no' --out-format='<<CHANGED>>%i %n%L' \"/root/dog/\" \"172.16.110.47:/tmp/sync_dir\"", "msg": ".d..t...... ./\n<f+++++++++ em_f\n<f+++++++++ fk\n<f+++++++++ p.txt\ncd+++++++++ wu/\n<f+++++++++ wu/kk.txt\n", "rc": 0, "stdout_lines": [ ".d..t...... ./", "<f+++++++++ em_f", "<f+++++++++ fk", "<f+++++++++ p.txt", "cd+++++++++ wu/", "<f+++++++++ wu/kk.txt" ] }
查看結果:
# ll total 12 -rw-r--r-- 1 ckl ckl 9 Dec 29 13:05 em_f -rw-r--r-- 1 root root 7 Dec 28 16:49 fk //不再是鏈接 -rwx------ 1 root root 4096 May 31 2016 p.txt drwxr-xr-x 2 root root 20 Dec 29 13:15 wu
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。