[RaspberryPi] 计划任务 - Cron

2019-03-01  本文已影响0人  Cocoonshu

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: 配置要执行命令的分钟

举例说明:

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 &
上一篇 下一篇

猜你喜欢

热点阅读