当树莓派被放在角落默默工作顺便吃灰时,我们常常需要对它做一些周期性的、机械性的工作,例如备份、重启等。这样的事情不需要我们亲自动手,只需要在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
树莓派关机之后无法更新时间,也就没办法在设置的时间进行开机。请问你是怎么解决的?
cron应当只能在系统运行的时候定时执行任务,而且树莓派在关机的情况下应该是没有办法自己启动的。如果有这样的需求,可能需要借助别的工具。
你好,貌似我的评论没有成功
哈哈哈哈哈哈哈,第一次评论的时候都需要我手动批准的。不过我好像晚了很久才看见……