我有這個小腳本,它基本上在遠端伺服器之間進行檔案的 rsync。已產生用於身份驗證的 ssh 金鑰。
腳本中只有這個存在
rsync /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved
基本上我想創建的是這個腳本的日誌方法,不要花哨或任何東西......只有這個......如果連接丟失並且文件未發送,它會出現在我的日誌中,顯示“檔案未傳送連線未建立” ”
另外,如果文件已發送,它會在日誌中顯示已成功發送。
或者如果主機或使用者錯誤,它會顯示在我的日誌中。
謝謝和問候, 薩加爾·曼達爾
答案1
如果您只想記錄不成功的嘗試,您可以透過查看 來取得 rsync 回傳值$?
,這是最後一個腳本的傳回值。rsync
成功時傳回 0,不同錯誤時傳回非零 (https://lxadm.com/Rsync_exit_codes)。我會這樣:
#!/bin/bash
ret_text=$({rsync /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved} 2>&1)
if [ $? -ne 0 ]; then
echo rsync error code $? on $(date)
echo rsync output follows
echo $ret_text
fi
您可以將其放入 a 中script
,當您運行它時,將其輸出重定向到類似的日誌檔案中script >> log_file
,或者您可以只調用腳本並>> log_file
在腳本中的每個 echo 命令之後添加。
如果您還想記錄成功的嘗試
rsync /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved &>> log_file
或者
rsync --log-file=log_file /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved
-v
我還建議透過新增或來增加 rsync 產生的資訊量-vv
。也可以使用-vvv
甚至更多,但手冊說它是用於調試目的。