linux 您所在的位置:网站首页 debian-sa1 linux

linux

2023-03-12 18:56| 来源: 网络整理| 查看: 265

一、现象

正常运行的脚本放在定时任务里却不能正常执行了

50 1 * * 4 /usr/bin/python3 /python_project/tiup_bak.py >> /python_project/logs/tiup_bak.out 二、排查与解决

因为ubuntu的cron.log不是自动开启的,所以这里需要调整下

1.编辑配置文件 vim /etc/rsyslog.d/50-default.conf 2.开启cron.log cron.* /var/log/cron.log #将cron前面的注释符去掉 3.重启rsyslog sudo service rsyslog restart 4.查看定时任务日志的内容 crontab[9784]: (tidb) BEGIN EDIT (tidb) crontab[9784]: (tidb) REPLACE (tidb) crontab[9784]: (tidb) END EDIT (tidb) cron[1084]: (tidb) RELOAD (crontabs/tidb) CRON[9958]: (tidb) CMD (/usr/bin/python3 /python_project/tiup_bak.py >> /python_project/logs/tiup_bak.out) CRON[9957]: (CRON) info (No MTA installed, discarding output) CRON[10287]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)

这里No MTA installed是因为crontab执行脚本时是不会直接错误的信息输出,而是会以邮件的形式发送到你的邮箱里,这时候就需要邮件服务器了,如果你没有安装邮件服务器,它就会报这个错,这块是因为我的输出方式写错了,换成下面这么写就写

50 1 * * 4 /usr/bin/python3 /python_project/tiup_bak.py >> /python_project/logs/tiup_bak.out 2>&1 5.查看输出日志

经由上面的改动,输出日志便可以正常输出信息,所以看到了如下信息

sh: 1: aws: not found

这个就很容易理解了,要么是没有安装aws客户端,要么是代码里没有有全路径,因为crontab执行时所开启的子shell的环境变量里并没有aws的信息,所以需要写全路径,或者加全局变量,将脚本里的aws命令改写为如下全路径方式即可成功

/usr/local/bin/aws


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有