更新:脚本A已更新,以反映sshpass,scp,per paxdiablo和Evert的路径声明。因为这不能解决问题,我不相信这个问题是链接问题的重复。
我有一个bash脚本,我们称之为A,它找到超过15分钟前创建的文件并将它们从服务器1移动到服务器2.A的代码是:
#!bin/bash
find /data/Output/*.txt -mmin +15 -exec /usr/local/bin/sshpass -p 'thepassword' /usr/bin/scp -c blowfish "{}" Server2:/data/Output \;
如果我从命令行运行代码,它会移动数据。但是,如果我创建一个调用脚本的crontab文件,它就不会运行。
crontab脚本显示为:
0 * * * * R CMD BATCH /home/me/generate_data.txt
15 * * * * /bin/bash /home/me/move_data.sh > /dev/null 2>&1
要让cron调用脚本,我输入:
crontab /path/to/crontab/file.txt
crontab -l显示作业正在运行。我也知道cron本身正在运行,因为generate_data.txt每小时都会下载数据。因此,问题似乎不是孤立的cron或bash,而是关于它们一起工作的问题。
此问题似乎很常见,但建议here,here和here没有帮助。我试过了:
我使用nano编辑此脚本。服务器A是Ubuntu 14.04 LTS,服务器B是Amazon Linux AMI。两者都托管在亚马逊网络服务上。
编辑:我应该补充一点,我在第三台服务器和服务器B之间运行这个过程,它运行正常,即使用这些脚本将文件从服务器C发送到B.服务器C是Ubuntu 12.02 LTS,服务器A Ubuntu 14.04 LTS。
我错过了什么?