将Shell脚本作为Cronjob运行

时间:2016-02-22 08:03:24

标签: shell cron crontab sudo

我编写了一个shell脚本来自动化构建过程。

脚本检出SVN仓库中的一些代码,在提取构建的二进制文件并将其存储在中心位置之前编译和构建代码。

我可以手动执行脚本./autobuild.sh,它可以完美运行。在整个脚本中执行了一些sudo命令,但我通过第一个sudo命令回显密码,密码保持整个时间:

echo mypassword! | sudo -S make clean

当我将脚本作为crontab添加时,它无法完成所有任务。我试图将它添加为普通用户和root用户的cronjob。

在我的普通用户帐户上运行crontab -e,我希望脚本每天午夜十点开始运行:

10 0 * * * /home/username/autobuild.sh

同时运行32-Cent OS 7安装,并安装了所有最新更新。

任何人都可以提供任何建议,说明为什么它可以手动工作,但在通过cron运行时却没有?

2 个答案:

答案 0 :(得分:0)

试试这个

10 0 * * * /bin/bash /home/username/autobuild.sh

答案 1 :(得分:0)

步骤1.找到bash路径

:~# whereis bash 

输出

bash: /usr/bin/bash 

第2步。创建sh文件,在顶部添加该行,并替换为bash路径

#!/ usr / bin / bash

步骤3.使用chmod + x命令使脚本可执行。

第4步。每分钟添加一次这样的cron进行测试

crontab -e

*/1 * * * * /usr/bin/bash ~/backup.sh >>test.log