デフォルトでは、リモートサーバー間でファイルをrsyncする小さなスクリプトがあります。認証用のSSHキーが生成されました。
スクリプトにはこれだけが存在します
rsync /root/Desktop/cpfies/files/*.xls user@host:root/Desktop/cpfies/moved
基本的に私が作りたいのはこのスクリプトのログ方法です。派手なものや何もありません。確立されていません」
また、ファイルが転送された場合に正常に転送されたことをログに表示します。
または、ホストまたはユーザーが間違っている場合は、マイログに表示されます。
感謝と安心の挨拶、サガーマンダル
答え1
失敗した試行のみを記録したい場合は、$?
最後のスクリプトの戻り値であるrsync戻り値を確認して取得できます。rsync
成功すると0を返し、他のエラーでは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
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
ドキュメントはデバッグ目的で使用されていることを示しています。