我正在运行shell脚本,它是上传结果文件以删除服务器。 有一天,ftp服务器崩溃但没有人不知道,因此不会按时生成每日数据。
为防止出现此问题,我的经理要求我检查上传结果,并尝试暂停上传。 (每小时尝试2~3次。)
我有疑问。 1.如何检测文件上传是否成功? 2.有时我如何重新安排文件上传?
仅供参考,我们的系统在RHEL5上运行,下面是文件上传代码。
ftp -n -v ${FTP_HOST} << END_SCRIPT
user ${FTP_USER} ${FTP_PASSWD}
prompt
binary
put ${REPORT__NAME}.tar.gz
bye
END_SCRIPT
答案 0 :(得分:1)
懒惰(简单但不是很聪明)的解决方案:
md5sum ZEFILE > ZEFILE-MD5.txt
put ZEFILE
如果可以在远程服务器上运行命令:
put ZEFILE-MD5.txt
如果您无法访问远程服务器:
get ZEFILE ZEFILE-from-remote
diff ZEFILE ZEFILE-from-remote
我还建议,如果你有(某些)访问远程服务器,使用&#34; scp ZEFILE user @ destination:/ some / path /&#34;使用FTP的人。
如果被迫使用FTP:请阅读使用expect
而不是编写一个无法适应的静态脚本。远程发送错误消息(在发出相关命令之前也不等待正确的提示)
关于重新安排:man at
你可以这样做:echo /path/to/myscript | at now + 3 hours
(请检查语法,写几年前阅读该手册页的内存......)(脚本可以通过这种方式重新提交,但要注意无限循环^^)
我希望这会有所帮助(并且有人提出了一个&#34;聪明的&#34;想法^^)