python脚本手动可以执行,crontab定时不执行或者报错的解决方法
crontab定时不执行解决方法
python脚本一定要是绝对路径
15 9,21 * * * /usr/local/bin/python3 /home/bianzu/bianzu-script/aps_bianzu_monitor.py
执行脚本添加日志
shell中每个进程都和三个系统文件相关联:标准输入stdin、标准输出stdout、标准错误stderr,三个系统文件的文件描述符分别为0,1,2
2>&1 的意思就是将标准错误也输出到标准输出当中
15 9,21 * * * /usr/local/bin/python3 /home/bianzu/bianzu-script/aps_bianzu_monitor.py >> /home/bianzu/bianzu-script/log/aps_bianzu_monitor.log 2>&1
crontab定时执行报错的解决方法
为crontab引入执行脚本需要的环境变量
如下所示引入了python3、java的完整路径
10 3,15 * * * export PYSPARK_PYTHON=/usr/local/bin/python3;export JAVA_HOME=/data/bkce/service/java; /usr/local/bin/python3 /home/bianzu/bianzu-script/ne_csv.py >> /home/bianzu/bianzu-script/log/ne_csv.log 2>&1
Crontab用法补充
查看定时任务
crontab -l
修改定时任务
crontab -e
查看脚本文件的执行权限
ll ne_csv.py
赋予脚本文件执行权限
chmod 775 warehouse_monitor.py
查看定时任务执行的日志
tail -f ne_csv.log
crontab命令格式
minute hour day month week command
minute:表示分钟 ,0-59
hour:表示小时,0-23
day:日期,1-31
month:月份,1-12
week:星期几
command:要执行的命令
crond
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。
/etc目录下的crontab文件就是系统任务调度的配置文件
第一行SHELL变量指定了系统要使用的shell
第二行PATH变量指定了系统执行命令的路径
第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户