Backup

僅在有傳輸時才使 cron log rsync

  • June 28, 2014

我讓這個 crontab 每 5 分鐘執行一次:

date >> ~/18/rsync.log
rsync -vaz user@r18:~/assets ~/18 >> ~/18/rsync.log 2>&1

它每 5 分鐘將其添加到日誌文件中:

Thu Aug 16 13:00:01 MSK 2012
receiving incremental file list

sent 506 bytes  received 541488 bytes  361329.33 bytes/sec
total size is 12954651209  speedup is 23901.84

有時它會添加實際的傳輸日誌:

Thu Aug 16 13:10:01 MSK 2012
receiving incremental file list
assets/response/20120816/
assets/response/20120816/1017161.doc
assets/response/20120816/1017162.doc
assets/response/20120816/1017163.doc

sent 568 bytes  received 561686 bytes  1124508.00 bytes/sec
total size is 12954864201  speedup is 23040.95

我想省略空的傳輸記錄並保留實際的傳輸列表。有沒有辦法將 rsync 配置為僅在非空傳輸時產生詳細輸出?

不要使用 rsync 的 -v 選項,而是使用 –out-format:

rsync --out-format="%n%L" -az user@r18:~/assets ~/18 >> ~/18/rsync.log 2>&1

只有傳輸文件時才會有輸出,不傳輸時沒有輸出。要獲得更多精美的輸出,請查看 rsync.conf 手冊頁的“日誌格式”部分。

請檢查 rsync –log-file-format 和 –log-file 開關。預設日誌文件格式即使不傳輸任何內容,也會在日誌文件中添加 2 行,但請查看手冊。如果您更改日誌格式,可能只會添加帶有傳輸文件的條目。

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