Linux(centos 8)定时运行python脚本crond crontab

本文介绍了在CentOS 8系统中如何使用crond和crontab来定时运行Python脚本,包括安装环境、创建Python虚拟环境、编写自动化脚本以及处理crond服务可能出现的问题,如多次运行脚本的解决办法。

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

Linux(centos 8)定时运行python脚本

装入py环境并与yum软链接

装入crond与crontab

这些自己一搜就有

可以在安装好后写一个简单的自动化脚本测试

直接:

crontab -e

0 * * * * echo “测试” >> test.txt

就可以查看这个文件中是否有记录,来盘断运行

其次Python需要一些依赖

可能我们在linux系统中跑py程序是会出现:

python缺少依赖的信息

我们需要在脚本中添加如下创建python虚拟环境

在这之前需要拿到所有需要的依赖放入比如/home中(这里需要从自己的开发环境导出依赖,自行百度)

使用venv创建虚拟环境并pip install依赖,这里不多说,可以自行百度

source /opt/testVenv/bin/activate

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PjjXIifR-1668144654634)(C:\Users\29463\AppData\Roaming\Typora\typora-user-images\image-20221111131953301.png)]

具体步骤:

创建sh脚本如上图

source是开启py虚拟环境

python 自己的py文件目录

而后crontab -e

0 0 7 * * cd /root/auto_call; ./start_auto_call.sh >> auto_call.log 2>&1

./后面的是sh脚本文件路径 写入自己的路径,后面的不需要改动

### 配置 Cron 定时任务执行 Python 脚本 #### 安装 Crontab 为了确保能够使用 `crontab` 功能,在 CentOS 7 中应确认已安装此服务。可以通过命令 `yum install crontabs` 来完成安装[^1]。 #### 编辑 Crontab 文件 对于用户级别的定时任务,可以利用 `crontab -e` 命令打开当前用户的 crontab 文件并添加新的调度条目。例如,要使某个 Python 脚本每天早上七点钟被执行,并将其输出记录至指定的日志文件中,则可以在编辑器内加入如下行: ```bash 0 7 * * * /usr/bin/python3 /path/to/text.py >> /path/to/test.log 2>&1 ``` 这里 `/usr/bin/python3` 是 Python 解释器的位置,而 `/path/to/text.py` 应替换为目标 Python 脚本的确切路径;最后部分指定了日志保存位置以及错误重定向操作[^2]。 如果希望创建的是系统范围内的计划任务而非特定于单个用户的任务,则需直接修改全局配置文件 `/etc/crontab` 或者放置相应的 `.conf` 文件到 `/etc/cron.d/` 目录下。需要注意的是这种方法通常需要管理员权限才能生效,并且每行定义前还需额外增加一个表示执行身份的字段(即用户名)。比如下面的例子展示了怎样让名为 test 的用户每隔一分钟运行两个不同的 Python 程序之一: ```bash */1 1-2 * * * root /usr/bin/python3 /var/test1.py */1 1-2 * * * root /usr/bin/python3 /var/test2.py ``` 上述例子中的时间表达式意味着这些脚本将在凌晨一点钟到两点之间每一分钟都被触发一次[^3]。 #### 使用绝对路径的重要性 当编写用于 cron 执行的任务时,请务必采用完整的、不含环境变量解析的绝对路径来调用可执行文件和目标脚本。这是因为 cron 进程可能不具备与交互式 shell 相同的工作目录或 PATH 设置,这可能导致找不到所需资源的问题发生。因此建议事先通过 `which python3` 查看 Python 解释器的具体安放地点再填入相应位置[^4]。 #### 启动与重启 Cron 服务 更改完成后记得启动 (`systemctl start crond`) 和启用 (`systemctl enable crond`) cron 服务以保证其随操作系统一同开启工作。如果有任何改动被应用到了现有的 crontab 记录里边去的话,那么最好也重新加载一遍该服务(`systemctl reload crond`)以便立即反映最新的变更情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值