我有这个小脚本,它基本上在远程服务器之间进行文件的 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
甚至更多,但手册说它是用于调试目的。