Rsync
從 rsync 獲取傳輸文件的列表?
我目前正在使用
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"
.