centos7中crontab定时执行python脚本不生效

问题: 最近在项目中遇到crontab中定时执行python脚本不生效,但是手动直接运行python脚本能够正常执行。

系统环境: centos7

python安装路径:/root/anaconda3/bin/python

python脚本:/data/test/sftp.py

crontab中添加定时任务:0 * * * * python /data/test/sftp.py

问题原因
主要是crontab的运行目录和py脚本运行目录不一样(直接执行和通过任务执行,程序的执行环境不同),更改python脚本头的目录,直接指定当前系统中Python的目录:!/root/anaconda3/bin/python,具体根据自己的目录更改查看python的安装目录(可以用 which python 命令进行查看)

若以上设置了依旧执行不成功,可以尝试下面的方式执行python:

0 * * * *  cd /data/test/ && /root/anaconda3/bin/python sftp.py

方法二:可以通过在 /etc/cron.d 下新建一个文件,去指定定时任务执行目录的方式去设置定时任务。
如,在 /etc/cron.d/ 下新建一个 sftp_py 的文件,内容如下:

SHELL=/bin/bash
PATH=/root/anaconda3/bin
MAILTO=root
HOME=/data/test
0 * * * * root python sftp.py
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是 CentOS7 上利用 crontab 定时执行 Python 脚本的详细流程: 1. 编写 Python 脚本 在你的 CentOS7 ,打开一个文本编辑器,比如 vim,然后编写一个 Python 脚本,比如: ```python #!/usr/bin/env python3 print("Hello, world!") ``` 保存并退出。 2. 给 Python 脚本添加执行权限 在终端,运行以下命令,给 Python 脚本添加执行权限: ```bash chmod +x /path/to/your/python/script.py ``` 3. 打开 crontab 编辑器 在终端,运行以下命令,打开 crontab 编辑器: ```bash crontab -e ``` 4. 编写 crontab 定时任务 在 crontab 编辑器,编写以下内容: ``` * * * * * /path/to/your/python/script.py > /dev/null 2>&1 ``` 其,`* * * * *` 表示每分钟都执行一次,你可以根据自己的需求修改。`/path/to/your/python/script.py` 是你的 Python 脚本的路径,记得用实际路径替换。`> /dev/null 2>&1` 表示将输出重定向到空设备,避免产生无用的输出信息。 5. 保存并退出 crontab 编辑器 在 crontab 编辑器,按下 `Ctrl` + `X`,然后输入 `Y`,最后按下 `Enter` 保存并退出。 6. 查看 crontab 任务 在终端,运行以下命令,查看当前用户的 crontab 任务: ```bash crontab -l ``` 你应该能看到你刚刚添加的 crontab 任务。 7. 检查定时任务是否执行 等待一分钟左右,然后查看你的 Python 脚本是否被执行。你可以在 Python 脚本添加一些输出语句,方便你检查是否执行成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jepson2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值