Linux定时执行任务

定时执行任务
  • Linux定时任务:contrab
    • ubuntu

      判断cron服务有没有启动,命令:

      ps -ef | grep cron

      启动命令:sudo service cron start

      关闭命令:sudo service cron stop

      重启命令:sudo service cron restart

      重新载入配置文件:sudo service cron reload

    • centos

      ps -ef|grep crond

      启动: systemctl start crond

      关闭: systemctl stop crond

      重启: systemctl restart crond

    • 编辑crontab

      命令:crontab -e

      第一次编辑crontab,会让我们选择使用的编辑器,一般选择第三个vim

      如果选错了,可以执行sudo select-editor 重新选择

      进入编辑页面就可以添加执行的任务,如* * * * * python3 /root/test.py &> /root/log.txt

    • 查看crontab任务

      命令:crontab -l

      会列出当前用户添加的所有任务

    • 清空crontab任务

      命令:crontab -r

      删除当前用户设置的所有任务

    • 配置说明

      • 1-10 */2 * * * python3 /etc/a.py

      • crontab中的每一行代表一个定期执行的任务,分为6个部分。前5个部分表示何时执行命令,最后一个部分表示执行的命令。

      • 每个部分以空格分隔,除了最后一个部分(命令)可以在内部使用空格之外,其他部分都不能使用空格。

      • 前5个部分分别代表:分钟,小时,天,月,星期,每个部分的取值范围如下:

        • 分钟 0 - 59
        • 小时 0 - 23
        • 天 1 - 31
        • 月 1 - 12
        • 星期 0 - 6 0表示星期天
      • 除了这些固定值外,还可以配合星号(*),逗号(,),短横线(-)和斜线(/)来表示一些其他的含义:

        • 星号:表示任意值,比如在小时部分填写* 代表任意小时(每小时)

        • 逗号:可以允许在一个部分中填写多个值,比如在分钟部分填写1,3 表示一分钟和三分钟

        • 斜线:一般配合* 使用,代表每隔多长时间,比如在小时部分填写*/2 代表每隔两小时。所以*/1 和 * 没有区别

        • 短横线:表示范围,比如在分钟部分填写1-10 代表从第一分钟到第十分钟

    • 例子:

      #每天早上7点
      0 7 * * * 
      
      #在12 月内, 每天的早上6 点到12 点中,每隔3个小时执行一次
      0 6-12/3  * 12 *
       
      #周一到周五每天下午5:00
      0 17 * * 1-5
      
      #每月每天的午夜0 点20 分, 2 点20 分, 4 点20 分...
      20 0-23/2 * * *
      
      #每小时的第10和第15分钟
      10,15 * * * *
      
      # 每分钟执行一次
      * * * * * 
      
      # 每周1的凌晨1点
      0 1 * * 1 
      
centos的计划任务
  • 查看系统的计划任务有没有开启: 命令ps -ef|grep crond

  • 如果没有开启,执行 systemctl start crond

  • 把 脚本 添加到 计划任务中, 命令 crontab -e, 那么会打开 vim 编辑器进行编辑

    • 比如 每一分钟 执行 一次 脚本, 代码如下

      * * * * * python3 /root/demo.py &> /root/log.txt
      
      # 注意: 执行的脚本 必须写 绝对 路径
      # 重定向 错误的 脚本 也必须 写 绝对路径
      
  • 终止这个脚本执行的方式

    • 如果终止所有脚本执行, 执行命令: crontab -r
    • 如果只想 终止这一个 脚本 , 那么 就 通过 crontab -e,进入到 vim 编辑器, 把这一行 定时 任务删除,保存即可
  • 查看 有哪些 定时任务, 命令 crontab -l

  • 注意: 定时任务的规则,默认的最小单位是 每分钟, 如果 是 小于 每分钟执行, 只能去通过 改变代码实现,一般的做法是 写循环,并且的循环中 sleep . 比如 每秒执行一次,代码是

    import time
    for i in range(60):
        ....
        time.sleep(1)
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值