Rsync

從 rsync 獲取傳輸文件的列表?

  • February 20, 2022

我目前正在使用rsync將 PHP 應用程序從登台部署到生產伺服器的腳本。方法如下:

rsync -rzai --progress --stats --ignore-times --checksum /tmp/app_export/ root@app.com:/var/www/html/app/

這目前正在輸出正在比較的每個文件的列表(項目中的每個文件),但我希望它只輸出修改後的文件,所以我可以執行它並--dry-run選擇檢查每個部署是否只更新所需的文件。

注意:到目前為止我能做的最好的就是grep fcst結果,但我正在尋找一個rsync我確定它在那裡但我在手冊頁中找不到它的選項。

提前致謝!

如果有一個 rsync 選項可以完全按照您的要求進行操作,那麼我也沒有在手冊頁中找到它。:-)

也就是說,我看不出用 grepping 的輸出rsync -i來解析出你需要的東西的問題。這對我來說感覺很好,很像 Unixy。

rsync 命令的一個挑剔的小問題:-r是多餘的,因為-a.

使用--out-format選項

根據手冊頁:

指定--out-format選項將提及以重要方式更新的每個文件、目錄等(傳輸的文件、重新創建的符號連結/設備或目錄)。

如果您只需要實際的文件名 ( --out-format="%n"),您的試執行命令可能如下所示:

rsync -rzan --out-format="%n" --ignore-times --checksum /tmp/app_export/ root@app.com:/var/www/html/app/


當使用 rsync 呼叫時-v,它在內部使用此選項,預設格式為 ,它只"%n%L"告訴您文件的名稱,如果 item 是連結,它會告訴您它指向的位置。

但這也包括同步過程開始和結束時的簡短摘要。

要擺脫該摘要,請--out-format直接使用該選項。

順便提一句。-i也在內部使用--out-format,但格式為"%i %n%L".

引用自:https://serverfault.com/questions/426520