树莓派(10):定时任务-crontab

当树莓派被放在角落默默工作顺便吃灰时,我们常常需要对它做一些周期性的、机械性的工作,例如备份、重启等。这样的事情不需要我们亲自动手,只需要在crontab中设定好就能自动定时执行。

crontab自带于多数Linux系统中,并不需要额外安装。它会自动启动crond进程,每分钟检查一次是否有需要执行的任务。

基本使用方法

编辑任务:

crontab -e

第一次在使用这条命令的时候,会提示选择编辑器。

列出任务:

crontab -l

编辑任务

在crontab的任务文件中,有这样的提示:

每个定时任务占单独的一行。一般的定时任务由五个由空格隔开的数字或符号以及要执行的命令组成。由图中描述可以知道,前五项依次是分钟、小时、一月中的日、月份以及星期几。在这五个位置上,除了填写数字和sun、mon之外,还能使用符号:

  • 星号(*):任意值。
  • 逗号(,):用逗号隔开的值,制定一个列表的范围。
  • 短横杠(-):连接两个整数,表示整数范围。
  • 正斜杠(/):表示间隔频率,即“每”。

上面的几个符号可以组合使用。例如*/2 * * * * do sth就表示每两分钟执行一次。

除了定时任务之外,还有一类是开机执行任务。这类任务的格式为:

@reboot do sth

示例

每天凌晨四点重启:

0 4 * * * sudo reboot

每天早上九点执行备份脚本并记录日志:

0 9 * * * sudo /home/wpbkp.sh &>> /home/wpbkp.log &

在开机时治治日常抽风的nginx:

@reboot sudo systemctl reload nginx

在宿舍断电前关机(在1到4月和10到12月的星期天到星期四每天晚上十点五十关机):

50 22 * 1-4,10-12 0-4 sudo shutdown -h now

订阅
提醒我
guest
0 评论
Inline Feedbacks
View all comments