<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          linux之rsync遠(yuǎn)程同步文件

          共 5743字,需瀏覽 12分鐘

           ·

          2021-10-30 19:39

          作者:入門小站
          來源:SegmentFault 思否社區(qū)

          rsync全名Remote Sync,是類unix下數(shù)據(jù)鏡像的備份工具。可以方便的實(shí)現(xiàn)本地,遠(yuǎn)程備份文件,rsync最重要的一點(diǎn)是支持增量備份。

          命令語法

          rsync [OPTION]... SRC DEST
          rsync [OPTION]... SRC [USER@]host:DEST
          rsync [OPTION]... [USER@]HOST:SRC DEST
          rsync [OPTION]... [USER@]HOST::SRC DEST
          rsync [OPTION]... SRC [USER@]HOST::DEST
          rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

          對(duì)應(yīng)于以上六種命令格式,rsync有六種不同的工作模式:

          • 拷貝本地文件。當(dāng)SRC和DES路徑信息都不包含有單個(gè)冒號(hào)":"分隔符時(shí)就啟動(dòng)這種工作模式。如:rsync -a /data /backup

          • 使用一個(gè)遠(yuǎn)程shell程序(如rsh、ssh)來實(shí)現(xiàn)將本地機(jī)器的內(nèi)容拷貝到遠(yuǎn)程機(jī)器。當(dāng)DST路徑地址包含單個(gè)冒號(hào)":"分隔符時(shí)啟動(dòng)該模式。如:rsync -avz *.c foo:src

          • 使用一個(gè)遠(yuǎn)程shell程序(如rsh、ssh)來實(shí)現(xiàn)將遠(yuǎn)程機(jī)器的內(nèi)容拷貝到本地機(jī)器。當(dāng)SRC地址路徑包含單個(gè)冒號(hào)":"分隔符時(shí)啟動(dòng)該模式。如:rsync -avz foo:src/bar /data

          • 從遠(yuǎn)程rsync服務(wù)器中拷貝文件到本地機(jī)。當(dāng)SRC路徑信息包含"::"分隔符時(shí)啟動(dòng)該模式。如rsync -av [email protected]::www /databack

          • 從本地機(jī)器拷貝文件到遠(yuǎn)程rsync服務(wù)器中。當(dāng)DST路徑信息包含"::"分隔符時(shí)啟動(dòng)該模式。如rsync -av /databack [email protected]::www

          • 列遠(yuǎn)程機(jī)的文件列表。這類似于rsync傳輸,不過只要在命令中省略掉本地機(jī)信息即可。如:rsync -v rsync://192.168.1.110/www


          如果主機(jī)和path路徑之間使用單個(gè)冒號(hào)隔開,表示使用的是遠(yuǎn)程shell通信方式,而使用雙冒號(hào)隔開的則表示的是連接rsync daemon

          常用幾個(gè)參數(shù)

          - -v verbose詳細(xì)輸出
          - -a 遞歸模式,遞歸方式傳輸文件,并保持連接,權(quán)限,用戶和組,時(shí)間信息
          - -z 壓縮傳輸
          - -h human-readable, 輸出友好
          - -u 跳過已經(jīng)存在的文件

          rsync 全部參數(shù)

          -v, --verbose 詳細(xì)模式輸出
          -q, --quiet 精簡(jiǎn)輸出模式
          -c, --checksum 打開校驗(yàn)開關(guān),強(qiáng)制對(duì)文件傳輸進(jìn)行校驗(yàn)
          -a, --archive 歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等于 -rlptgoD
          -r, --recursive 對(duì)子目錄以遞歸模式處理
          -R, --relative 使用相對(duì)路徑信息
          -b, --backup 創(chuàng)建備份,也就是對(duì)于目的已經(jīng)存在有同樣的文件名時(shí),將老的文件重新命名為~filename。可以使用 --suffix 選項(xiàng)來指定不同的備份文件前綴。
          --backup-dir 將備份文件(如~filename) 存放在在目錄下。
          -suffix=SUFFIX 定義備份文件前綴
          -u, --update 僅僅進(jìn)行更新,也就是跳過所有已經(jīng)存在于 DST,并且文件時(shí)間晚于要備份的文件。(不覆蓋更新的文件)
          -l, --links 保留軟鏈結(jié)
          -L, --copy-links 想對(duì)待常規(guī)文件一樣處理軟鏈結(jié)
          --copy-unsafe-links 僅僅拷貝指向 SRC 路徑目錄樹以外的鏈結(jié)
          --safe-links 忽略指向 SRC 路徑目錄樹以外的鏈結(jié)
          -H, --hard-links 保留硬鏈結(jié)
          -p, --perms 保持文件權(quán)限
          -o, --owner 保持文件屬主信息
          -g, --group 保持文件屬組信息
          -D, --devices 保持設(shè)備文件信息
          -t, --times 保持文件時(shí)間信息
          -S, --sparse 對(duì)稀疏文件進(jìn)行特殊處理以節(jié)省 DST 的空間
          -n, --dry-run 現(xiàn)實(shí)哪些文件將被傳輸
          -W, --whole-file 拷貝文件,不進(jìn)行增量檢測(cè)
          -x, --one-file-system 不要跨越文件系統(tǒng)邊界
          -B, --block-size=SIZE 檢驗(yàn)算法使用的塊尺寸,默認(rèn)是 700 字節(jié)
          -e, --rsh=COMMAND 指定使用 rsh、ssh 方式進(jìn)行數(shù)據(jù)同步
          --rsync-path=PATH 指定遠(yuǎn)程服務(wù)器上的 rsync 命令所在路徑信息
          -C, --cvs-exclude 使用和 CVS 一樣的方法自動(dòng)忽略文件,用來排除那些不希望傳輸?shù)奈募?br>--existing 僅僅更新那些已經(jīng)存在于 DST 的文件,而不備份那些新創(chuàng)建的文件
          --delete 刪除那些 DST 中 SRC 沒有的文件
          --delete-excluded 同樣刪除接收端那些被該選項(xiàng)指定排除的文件
          --delete-after 傳輸結(jié)束以后再刪除
          --ignore-errors 及時(shí)出現(xiàn) IO 錯(cuò)誤也進(jìn)行刪除
          --max-delete=NUM 最多刪除 NUM 個(gè)文件
          --partial 保留那些因故沒有完全傳輸?shù)奈募允羌涌祀S后的再次傳輸
          --force 強(qiáng)制刪除目錄,即使不為空
          --numeric-ids 不將數(shù)字的用戶和組 ID 匹配為用戶名和組名
          --timeout=TIME IP 超時(shí)時(shí)間,單位為秒
          -I, --ignore-times 不跳過那些有同樣的時(shí)間和長(zhǎng)度的文件
          --size-only 當(dāng)決定是否要備份文件時(shí),僅僅察看文件大小而不考慮文件時(shí)間
          --modify-window=NUM 決定文件是否時(shí)間相同時(shí)使用的時(shí)間戳窗口,默認(rèn)為 0
          -T --temp-dir=DIR 在 DIR 中創(chuàng)建臨時(shí)文件
          --compare-dest=DIR 同樣比較 DIR 中的文件來決定是否需要備份
          -P 等同于 --partial
          --progress 顯示備份過程
          -z, --compress 對(duì)備份的文件在傳輸時(shí)進(jìn)行壓縮處理
          --exclude=PATTERN 指定排除不需要傳輸?shù)奈募J?br>--include=PATTERN 指定不排除而需要傳輸?shù)奈募J?br>--exclude-from=FILE 排除 FILE 中指定模式的文件
          --include-from=FILE 不排除 FILE 指定模式匹配的文件
          --version 打印版本信息

          本地拷貝

          當(dāng) SRC 和 DES 路徑信息都不包含有單個(gè)冒號(hào) “:” 分隔符時(shí)就啟動(dòng)這種工作模式。

          jdk.tar.gz拷貝到rumenz目錄

          > rsync -avhz jdk.tar.gz rumenz

          src目錄拷貝到rumenz目錄

          /opt/src 目錄下的文件同步發(fā)送到rumenz目錄下。記住如果目標(biāo)地址沒有src目錄,rsync 會(huì)自動(dòng)創(chuàng)建該文件夾。

          > rsync -azhv /opt/src rumenz/

          src目錄下的所有文件拷貝到rumenz目錄

          > rsync -azhv /opt/src/ rumenz/

          SRC 路徑末尾的 / 表示不自動(dòng)創(chuàng)建 DEST 文件夾,在 man rsync 中的解釋就是末尾的 / 表示”拷貝當(dāng)前目錄下的文件” ,而不是”拷貝當(dāng)前的目錄”.

          遠(yuǎn)程拷貝

          使用一個(gè)遠(yuǎn)程 shell 程序(如 rsh、ssh) 來實(shí)現(xiàn)將本地機(jī)器的內(nèi)容拷貝到遠(yuǎn)程機(jī)器。當(dāng) DES 路徑地址包含冒號(hào):::分隔符時(shí)啟動(dòng)該模式。

          將本地/opt/src/目錄下 所有文件同步備份到遠(yuǎn)程 /opt/rumenz/ 目錄

          > rsync -avhz /opt/src/ [email protected]:/opt/rumenz/

          將本地/opt/src/目錄同步備份到遠(yuǎn)程 /opt/rumenz/ 目錄

          > rsync -avhz /opt/src [email protected]:/opt/rumenz/

          將遠(yuǎn)程 /opt/rumenz目錄拷貝到rumenz目錄(ssh模式,單冒號(hào))

          > rsync -avhz [email protected]:/opt/rumenz rumenz/

          將遠(yuǎn)程 /opt/rumenz目錄下所有的文件拷貝到rumenz目錄(ssh模式,單冒號(hào))

          > rsync -avhz [email protected]:/opt/rumenz/ rumenz/

          將遠(yuǎn)程 /opt/rumenz目錄拷貝到rumenz目錄(rsync模式,雙冒號(hào))

          > rsync -avhz [email protected]::/opt/rumenz rumenz/

          將遠(yuǎn)程 /opt/rumenz目錄下所有的文件拷貝到rumenz目錄(rsync模式,雙冒號(hào))

          > rsync -avhz [email protected]::/opt/rumenz/ rumenz/

          列遠(yuǎn)程機(jī)的文件列表

          > rsync -v rsync://rumenz.com /www

          rsync 使用非標(biāo)準(zhǔn)端口

          • 經(jīng)常遇見的一種情況就是 ssh 更改了默認(rèn) 22 端口,這個(gè)時(shí)候就需要使用 -e 參數(shù)。

          • rsync 有兩種常用的認(rèn)證方式,一種為 rsync-daemon 方式,另外一種則是 ssh。

          • ssh 一般為首選,但當(dāng)遠(yuǎn)端服務(wù)器的 ssh 默認(rèn)端口被修改后,rsync 找不到一個(gè)合適的方法來輸入對(duì)方 ssh 服務(wù)端口號(hào)。

          • 比如現(xiàn)在向機(jī)器rumenz.com傳送文件,但此時(shí)rumenz.com的 ssh 端口已經(jīng)不是默認(rèn)的 22 端口。

          > rsync -avz -e "ssh -p $port" /opt/src/ [email protected]:/opt/rumenz/


          顯示備份進(jìn)度


          > rsync -zhve ssh --progress jdk.tar.gz [email protected]:/opt/rumenz/


          限制備份文件最大值


          > rsync -zhve ssh --max-size='2000k' jdk.tar.gz [email protected]:/opt/rumenz/


          備份結(jié)束后自動(dòng)刪除本地文件


          > rsync --remove-source-files -zvh jdk.tar.gz [email protected]:/opt/rumenz/

          設(shè)置備份帶寬

          > rsync --bwlimit=100 -avzhe ssh /opt/src/ [email protected]:/opt/rumenz/


          點(diǎn)擊左下角閱讀原文,到 SegmentFault 思否社區(qū) 和文章作者展開更多互動(dòng)和交流,掃描下方”二維碼“或在“公眾號(hào)后臺(tái)回復(fù)“ 入群 ”即可加入我們的技術(shù)交流群,收獲更多的技術(shù)文章~

          - END -


          瀏覽 29
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲日韩国产AV无码无码精品 | 国语对白av | 中国黄色一级毛骗 | 日本 波多野结衣 影片 | 国产成人无码Av片小说在线观看 |