树莓派添加定时任务

定时执行启动

QQ截图20170125201501.png

执行命令:

Bash
sudo nano /etc/crontab

 

QQ截图20170125201643.png

 

其中排列意思为:

Bash
#    m    h    dom    mon    dow    user    command
#  分    时    日    月      周    用户    命令
#
#       m:表示分钟1~59 每分钟用*或者 */1表示
#       h:表示小时1~23(0表示0点)
#     dom:表示日期1~31
#     mon:表示月份1~12
#     dow:标识号星期0~6(0表示星期天)
#    user:表示执行命令的用户
# command:表示要执行的命令
#
#   * 代表任意数值

 

例程如下:

Bash
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
#上面的例子表示每晚的21:30重启apache。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
#上面的例子表示每月1、10、22日的4 : 45重启apache。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
#上面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
#上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
#上面的例子表示每星期六的11 : 00 pm重启apache。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart
#每一小时重启apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
#晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
#每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
#一月一号的4点重启apache

Crontab命令详解

Bash
#使用权限 : 所有使用者
#使用方式 :
crontab file [-u user]-用指定的文件替代目前的crontab。
crontab-[-u user]-用标准输入替代目前的crontab.
crontab-1[user]-列出用户目前的crontab.
crontab-e[user]-编辑用户目前的crontab.
crontab-d[user]-删除用户目前的crontab.
crontab-c dir- 指定crontab的目录。
crontab文件的格式:M H D m d cmd.

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

posted @ 2018-08-06 21:47  xiangzhuo  阅读(1238)  评论(0编辑  收藏  举报