树莓派定时任务

11/28/2018 22:41 下午 posted in  Raspbian

https://www.kawabangga.com/posts/1398

Linux下有一个定时运行的程序命令叫“crontab”,是任务调度的crond常驻命令,是Linux系统下的定时任务触发器 。
限制用户使用crontab的文件有:/etc/cron.allow /etc/cron.deny 。
当使用crontab建立工作排程后,将被记录到/var/spool/cron里。
cron执行的每一项工作都被记录到/varlog/cron里去。
crontab参数:
-u:只有root才可能,帮其他用户建立或移除工作排程。
-l:查阅crontab的工作内容
-r:移除所有的crontab的工作内容,移除一项,用-e编辑。
每项工作有六个字段分别是:
分钟 小时 日期 月份 周 指令
0-59 0-23 1-31 1-12 0-7 指令 #0和7都代表星期天
辅助特殊字符:

  • (星号)代表任何时刻
    ,(逗号)代表分隔时候。如3点与6点 就是3,6
    -(减号)代表一段时间范围内。如:3点到6点 就是3-6
    /n(斜线)n代表数字,即每隔n单位。如每隔五分钟,/5
    以下我们举个例子,比如每晚定时23:50分需要关机
    1.编辑crontab 任务:
    $crontab -e
    2.再文件的最后一行添加以下这行内容:
    50 23 * * * /sbin/shutdown -h now

注:50 23 代表 每天的23:50,执行的命令就是“shutdown -h now”

crontab命令
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

使用说明
只有root用户和crontab文件的所有者才能编辑定时任务,因此如果以pi用户登录,不要忘记加上sudo。-e参数表示编辑(edit)。
sudo crontab -e
进入编辑以后需要按照一定的格式写入所需执行的命令和重复的时间。格式如下:
m h dom mon dow command
依次是分钟(minute)、小时(hour)、几号(day of month)、月份(month)、星期几(day of week)、命令。
时间可以是一个数字,表示在这个时刻执行,也可以是星号(*),表示不做限制、在任意时刻都执行。
查看所有的定时任务可以使用-l参数,表示列出(list)的含义
crontab -l

用法举例
每天0点1分执行贴吧签到脚本
1 0 * * * python qiandao.py
在每周日的7点更新系统
0 7 * * 1 apt-get update && sudo apt-get upgrade -y