美文网首页
[RaspberryPi] 计划任务 - Cron

[RaspberryPi] 计划任务 - Cron

作者: Cocoonshu | 来源:发表于2019-03-01 00:50 被阅读0次

    Cron是Unix操作系统上用于配置计划任务的工具,它用于执行一些周期性的命令或者脚本。从每天半夜备份用户的Home目录到每小时记录一次CPU信息都可以用它来执行。

    crontab(cron table)命令可以用来为每个用户编辑计划中或已完成的计划任务列表。每个用户都会一个独立的计划任务列表,包括root用户。

    Cron GUI

    gnome-scheduleCron的一个图形化工具。你可以这样安装:

    sudo apt-get install gnome-schedule
    

    然后从主菜单的计划任务中启动。

    编辑crontab

    用下面的命令来编辑crontab

    crontab -e
    

    选择编辑器

    如果你是第一次使用crontab,它会让你选择一个编辑器来编辑任务列表,如下所示:

    no crontab for Cocoonshu - using an empty one
    
    Select an editor.  To change later, run 'select-editor'.
      1. /bin/nano        <---- easiest
      2. /usr/bin/vim.basic
      3. /usr/bin/vim.tiny
      4. /usr/bin/code
    
    Choose 1-4 [1]: 
    

    如果你没有什么偏好的文本编辑器,则默认推荐nano

    添加一个计划任务

    一个crontab计划任务有6个部分组成:
    分、时、日、月、星期、要执行的命令。
    具体的格式如下:

    # mim hour dom dow cmd
       ┬   ┬    ┬   ┬   ┬ 
       │   │    │   │   │
       │   │    │   │   └─ command: 要执行的命令
       │   │    │   └───── day of week: 配置要执行命令的星期
       │   │    └───────── day of month: 配置要执行命令的月份
       │   └────────────── hour: 配置要执行命令的小时
       └────────────────── minute: 配置要执行命令的分钟
    
    • dow的取值为0,1,2,3,4,5,6,分别是周日、周一、周二、周三、周四、周五、周六
    • dom的取值为1~12,表示每年的1~12月
    • hour的取值为0~23,表示每天的0点~23点
    • min的取值为0~59,表示每小时的0分~59分
    • 每个时间配置表达式可以有一下几种组合配置方式:
      • "-": 为从某个时候到某个时候要执行“cmd”。如dow配置为1-3,则表示从周一到周三要执行“cmd”任务
      • "*": 为“每个”时间单位都要执行。如过m配置为*,则每分钟都要执行一次“cmd”;如果m配置为*/n,则每隔n分钟要执行一次“cmd”任务
      • "/": 为每隔多少时间执行一次。如dom配置为*/3,则表示每隔3个月就要执行一次“cmd”任务;如果dom配置为\5-10/3,则表示从5月到10月之间,每隔3个月执行一次“cmd”任务

    举例说明:

    0 6-12/3 * 12 * /usr/bin/backup
    

    表示在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup

    查看计划任务

    使用下面的命令来查看你当前的计划任务:

    cron -l
    

    在重启时执行任务

    如果你想要在树莓派每次启动是执行一个命令,则使用@reboot来替换上面提到的时间表达式。比如说:

    @reboot python /home/pi/play_audio.py
    

    则可以在计划任务中计划一个启动树莓派时执行play_audio.py python脚本来播放音频的任务。

    非阻塞任务

    计划任务都是阻塞执行的,例如上面所述计划一个@reboot任务时,树莓派在启动时会等待play_audio.py脚本执行完毕后再继续执行接下来的开机流程。如果你不希望计划任务阻塞现有的流程,可以在cmd后添加一个空格 + &,如:

    @reboot python /home/pi/play_audio.py &
    

    相关文章

      网友评论

          本文标题:[RaspberryPi] 计划任务 - Cron

          本文链接:https://www.haomeiwen.com/subject/oaaluqtx.html