linux服务器上面的crontab执行定时任务没运行或者出现中文乱码等问题总结

一般情况下,定时脚本我们都会先手动执行一次看时候运行正常,然后放在crontab中定时执行,大部分时候定期执行时正常的,少数情况下执行会失败或者和预期不符

一:定时任务执行失败

首先,一定要把放在crontab中的代码带着绝对路径执行一遍,crontab怎么执行就怎么执行,crontab执行命令前有sh就带sh,crontab没有sh就不要带sh

手动执行成功而定时执行失败,这个一般都是手动执行和定时执行的环境变量不一致导致,所以为了定时执行,我们一般会把手动执行的环境变量在脚本中source一下,如下所示

source ~/.bashrc

source ~/.bash_profile

这两个命令正常情况下能解决所有手动执行正常crontab无法正常执行的问题

当然,最基本的是要给脚本授权可执行,一般将所有涉及的脚本直接chmod 755即可

还有一种情况就是各种命令文件等使用绝对路径,如java要用/nemo/jdk/jre/bin/java这种格式,能用绝对路径的尽量用绝对路径

二:手动执行和定时执行的结果不一致或者乱码等问题

一般这种也是环境变量问题,手动执行的环境变量除了上面的source文件之外,还有可能是我们手动export或者set或者通过options进行设置了,这时候手动执行带有这些环境变量,而自动执行没有带这些变量,这时候就要对比一下是否有些环境变量没有source进去,比如字符集编码,我们可以用locale或者export查看,发现LANG="zh_CN.UTF8",但是crontab执行还是乱码,这个时候我们可以检查一下~/.bashrc并在文件中加入

export LANG="zh_CN.UTF8"

这时候crontab中定时命令执行过程中的中文乱码就会变正常了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值