采用crontab定时任务执行脚本.sh时遇到问题和解决方法

1、脚本.sh需要带上#!/bin/bash开头,并且赋执行权限

chmod +x xxxx.sh

2、crontab -e编辑定时任务,内容如下,要用绝对路径

在CentOS 7中是5个时间,还有很多系统没有实现符号L和问号?,使用会报错避免使用

01 19 * * * /bin/bash /root/scripts/test.sh
01 19 17 * * /bin/bash /root/scripts/monthly.sh
01 19 * * * /bin/bash /root/scripts/daily.sh

3、如果脚本没有执行,先查询定时日志,看是不是定时任务已经执行:

tail -1000 /var/log/cron

出现过你上面编辑过的脚本名称的话,就是定时任务已执行。

4、如果脚本没有显示执行,请检查2个地方

第一个是crond是否已启用

systemctrl status crond
systemctrl restart crond

第二个是设置的时间是否正确

5、如果确实脚本已执行,但没有效果

那么首先手工执行下脚本看是否有问题,确保脚本没问题。
如果脚本没问题,剩下最大可能是脚本中的环境变量问题,需要在脚本开头加上以下这几句

#!/bin/bash
. /etc/profile
. ~/.bash_profile

当然还有其它办法,详情请参阅文后参考文章。

总的来说
1、脚本有问题,2、脚本未赋执行权限,3、环境变量问题,4、编辑的时间不对,5、系统时间不对。对照逐一检查。

6、脚本执行后,打命令时会出现邮件提示

您在 /var/spool/mail/root 中有新邮件

You have new mail in /var/spool/mail/root

这是因为定时任务执行后会生成日志并邮件通知,需要删除并禁用邮件:

查看邮件
mail
删除邮件
cat /dev/null > /var/spool/mail/root
禁止系统启动邮件检查
echo "unset MAILCHECK" >> /etc/profile
这样就不再有邮件提示了

参考:
https://tool.lu/crontab
https://www.cnblogs.com/wangyin2005/p/16854767.html
https://blog.csdn.net/2004v2004/article/details/131169292
https://blog.csdn.net/qq_32923745/article/details/78286385
https://www.coonote.com/linux-note/crontab-environment-variables-execution.html
https://blog.csdn.net/zxfjnfjcn/article/details/106543516

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值