Linux使用crontab定时任务执行python文件小记

本文介绍如何在CentOS系统中使用CronTab进行定时任务的配置,包括基本使用方法、常见问题及解决方案。例如,如何设置每五分钟执行任务、执行Python脚本时的权限与依赖问题等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在centos系统中默认安装了crontab,可以对其进行设置来进行定时任务,定时任务的最低时间点是分钟
先来介绍一下基本使用吧
可以使用 vim /etc/crontab  打开crontab的配置文件,进行crontab的定时任务的配置

配置格式:
每五分钟执行   */5 * * * *
每小时执行      0 * * * *
每天执行          0 0 * * *
每周执行          0 0 * * 0
每月执行          0 0 1 * *
每年执行          0 0 1 1 *

另外在执行的任务中如果有输出,可以在任务的后面添加log日志,将输出或执行信息写入到log日志中
添加方式:
eg:  0  * * * *  root  /root/main.py>>result.log 2>&1
每小时以root的身份执行一次root/main.py文件, 并将执行过程中出现的输出信息或错误信息打印到root/result.log文件中

在执行过程中也可以查看crontab的log日志,查看crontab的执行情况:tail -f /var/log/cron 


上面说了基本的crontab的设置,在执行py文件的时候还有一些小坑

1、首先,个人测试需要将添加到crontab执行的文件加上可执行权限:chmod +x  xxxx.py

2、其次在py文件的开始第一行需要添加 #!/usr/bin/env pyhton   让文件执行的时候明白调用什么解释器执行

3、最坑的一点就是导包错误,提示:ModuleNotFoundError: No module named 'xxxx'
主要是因为在crontab执行文件的时候不知道应该从哪里加载这些包文件
可以先直接进入python解释器(就是直接写python进入)

>>> import psycopg2
>>> psycopg2.__file__
'/usr/local/lib/python3.6/site-packages/psycopg2/__init__.py'

查看python解释包的位置,我这个位置是'/usr/local/lib/python3.6/site-packages/'
需要在py文件的开始导入这个包之前将这个文件位置

import sys
sys.path.append('/usr/local/lib/python3.6/site-packages')

import psycopg2

目前遇到这些坑,大家有更好的解决方法欢迎一块讨论补充

更新-2018年10月24日(crontab没有上面说的那么复杂)

       在使用crontab的时候可以直接使用crontab -e 进行创建任务,如果是第一次使用也许是一个空的文件,可以将/etc/crontab 下面的例子复制一份。另外在使用的时候需要执行的文件可以不用修改为可执行格式,只要指定执行的环境 就可以了。

例如:*/5 * * * * python /dist/BlackFullData.py     --> 表示每5分钟,使用python去执行/dist/BlackFullData.py文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值