首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

linux--shell--crontab定义运行任务(6)

linux--shell--crontab定义运行任务(6)

可能遇到问题

Logwatch query about Cron : ERROR (getpwnam() failed

设置完crond之后运行报错

Logwatch query about Cron : ERROR (getpwnam() failed



原因
没有指定运行sh的用户名和shell脚本的运行方式

解决方式
添加用户名和运行方式(可选)
例如

0 0  * * *   sh /script/check.sh



修改为

0 0  * * *  root  /script/check.sh
或者
0 0  * * *  root sh /script/check.sh
或者
0 0  * * *  root /usr/local/bash /script/check.sh


在遇到了一些sh不能在crontab定时任务中自动执行的问题时
可以按照下面的思路排除问题。
1,首先确保sh脚本具有可执行属性

chmod +x ***.sh

chmod +777 ***.sh


2,确保sh脚本手工执行正常
即在当前系统内手工执行sh脚本以后能收到自己期望得到的结果

3,加载环境变量
这个问题是经常容易被忽略的问题,通常我们在第二步的时候手动执行脚本能得到自己想要的结果,可是设置好crontab之后,总不能得到自己想要的结果, 总感觉脚本没有被执行。
或者执行后没有得到正常的结果。很多均是由于没有加载所在用户的环境变量所引起的。因此最好在自己的脚本首两行添加环境变量的导入。
返回列表