运行 一个 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
我编写了一个 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