QQ群:397745473
274_shell写crontab计划任务
执行crontab 时由于我们编写脚本用的是bash解释器, 而在用脚本自动设定crontab 没有指定bash, 这样会导致系统在执行程序时出现一些未预料的错误. 下面记录一下如何解决这个问题,
crontab 动态添加任务测试过几种方法, 我最喜欢第2种. 因为 SHELL=/bin/bash 会永远在第一行. 而方法1 有可能会把 SHELL=/bin/bash 加到文件末尾,
方法1
1 | ( crontab -l 2>/dev/null | grep -v 'SHELL=/bin/'; echo 'SHELL=/bin/bash' ) | crontab - |
方法2
这个方法会先判断一下crontab 中是否指定了SHELL, 如果没有才执行下面的添加命令. 其中的 cron_job 变量是你需要增加的执行命令.
1 | if ! crontab -l 2>/dev/null | grep 'SHELL=/bin/' >/dev/null 2>&1 ;then |
参考
1 | shell脚本常用命令总结: |
QQ群:397745473