centos使用crontab定时执行python脚本

centos使用crontab定时执行python脚本

1,安装

yum install crontabs

2,使用

2.1,开始编辑

首先进入crontab的编辑模式,使用如下命令:

crontab -e

进入编辑模式之后,

按下键盘上的a开始编辑,

使用上下左右按钮移动光标。直接在原有内容的后面回车,在新的一行上写自己的内容。

具体语法格式:

运行时间 + 命令 [+ 日志]

下面一一列出语法和注意事项:

2.2,语法格式

  • 运行时间

    需要5组符号,从左到右以此表示:分 时 日 月 星期

    符号可以使用数字,和特殊符号。

    • 数字不用赘述了,需要注意的是星期中,1~6表示周一到周日,而周日还可以用 7 表示

    • 特殊符号:

      符号含义
      *表示任意值 如: 30 12 * * * * 表示每天12:30
      ,代表多个时间段分隔的意思,比如 30 10 1,2 * * 就代表,每月1,2日10:30
      -代表时间范围之内的意思,比如 30 10-15 * * * 代表,10点到15点的30分都执行命令
      /n代表每隔n单位时间执行一次的意思,比如 */30 * * * * 就代表,每隔 30分钟执行一次
  • 命令

    命令就是简单的执行pyton脚本的命令:

    python(可能需要版本号) + 脚本绝对地址

    注意这里要使用绝对地址,且文件后面要加后缀(不加能不能运行我没试过,或许可以)

    我用corntab定时执行python脚本时,python命令要使用绝对路径,具体原因我也不知道。大家日志中如果出现:python:comman not defined的报错时也可以试一下。所以,测试能不能用最方便的方法就是保存日志了。

    查看自己python的位置可以使用whereis命令:

    whereis python
    

    找到自己的python位置,到时候正确输入就好。

  • 日志

    >后加上你想要保存日志的文件的绝对地址,注意后面还要加上

    2>&1 &	
    

注意后面不要加'(撇号)

2.3,我的代码

我的需求是每天凌晨:00:03执行python脚本(/root/web/automatic/report.py)并将日志保存到(/root/web/automatic/log.log)

03 0 * * * /usr/local/bin/python3.7 /root/web/automatic/report.py > /root/web/automatic/log.log 2>&1 &

注意命令最后不要学最开始的一行命令后面加上'(撇号)

我这里的python位置使用了绝对地址,且后面加了版本号,原因是我的系统里有三个版本的python(系统自带两个版本的python…),网上找教程想把默认python版本改为3.7,但是没成功。最后只能用这个方法了。倒也不是不能用,就是比较麻烦(pip命令也要使用pip3.7 。。。),有类似问题的可以试试这个办法…但是感觉还是修改默认版本比较优雅点。不知道有没有大神指教…

3,保存退出

作为一个没系统学过linux的菜鸟,当时编辑完我都不知道怎么保存退出,一通 ctrl + c折腾半天没有用,硬是保存不了。最后终于找到正确打开方式了:

编辑完成后,按两次ctrl + c

按提示输入:qa

再按:wq即可保存退出

4,测试

最后可以通过

corntab -l

命令来查看当前的文件,检查是否修改成功。可以通过先将命令定时的时间设置为几分钟后,在日志中查看是否正常运行(python中要有print,或者报错也会有内容,否则成功运行后日志是空的,但是日志没有内容还是无法保证运行成功。所以建议脚本中加一些print,方便测试)。保证正常运行后,再将命令时间修改为自己原本想要设置的时间。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值