运行 一个 Shell 脚本作为 Cronjob

Running a Shell Script as a Cronjob

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

该脚本从 SVN 存储库中检出一些代码,编译并构建代码,然后提取构建的二进制文件并将它们存储在中央位置。

我可以手动执行脚本 ./autobuild.sh 并且 运行 非常完美。在整个脚本中执行了一些 sudo 命令,但我在第一个 sudo 命令中回显了密码,并且密码一直有效:

echo mypassword! | sudo -S make clean

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

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

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

还 运行安装 32-but Cent OS 7 安装所有最新更新。

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

试试这个

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

第 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