zz1999

导航

 

这个问题碰到几次,记录一下解决过程。

问题:

在工作中我们经常会写一个python脚本,然后想通过定时任务去执行,这时我们会想到crontab.

通过 crontab -e去设置crontab

例如:0     0       *       *       *     python usr/lib64/nagios/plugins/check_dns.py

 

这时如果脚本中会有涉及读取配置文件或者读写文件的动作,一般定时任务都不会执行.

原因:

因为脚本在执行时,由于是通过crontab去执行的,他的执行目录会变成当前用户的家目录,如果是root,就会在/root/下执行.

 

解决办法:

在/etc/cron.d 目录下新建一个任务:vim dns-check

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/usr/lib64/nagios/plugins/      # python 脚本路径
*/1 * * * * root python check_dns.py # 执行python脚本

 

感谢 这个作者https://www.cnblogs.com/terrycy/p/6961339.html

 

posted on 2019-09-23 13:55  zz1999  阅读(2328)  评论(0编辑  收藏  举报