bash脚本不作为cron作业运行

时间:2016-06-01 05:43:18

标签: bash amazon-ec2 ubuntu-14.04 scp sshpass

更新:脚本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,而是关于它们一起工作的问题。

此问题似乎很常见,但建议hereherehere没有帮助。我试过了:

  • 权限。这两个文件的权限都是755。
  • 将/etc/cron.hourly/放在没有.txt结尾处。
  • 在文件末尾添加一个空行。
  • 调用“bash”和“/ bin / bash”。
  • 重新启动cron。

我使用nano编辑此脚本。服务器A是Ubuntu 14.04 LTS,服务器B是Amazon Linux AMI。两者都托管在亚马逊网络服务上。

编辑:我应该补充一点,我在第三台服务器和服务器B之间运行这个过程,它运行正常,即使用这些脚本将文件从服务器C发送到B.服务器C是Ubuntu 12.02 LTS,服务器A Ubuntu 14.04 LTS。

我错过了什么?

0 个答案:

没有答案