Crontab 命令/新建任务/更新任务/日志

1. 简介
通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。

2. 命令格式

crontab [-u user] file crontab [-u user] [ -e | -l | -r ]

3. 命令参数
-u user:用来设定某个用户的crontab服务;
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。

4. 文件格式
分 时 日 月 星期 要运行的命令
分钟0~59
小时0~23(0表示子夜)
日1~31
月1~12
星期0~7(0和7表示星期天)
要运行的命令
中间以空格隔开

5. 命令实例
每1分钟执行一次myCommand。*号之间用空格隔开

* * * * * myCommand

在上午13点到16点的第3和第15分钟执行

3,15 13-16 * * * myCommand

每隔两天的上午8点到11点的第3和第15分钟执行

3,15 8-11 */2  *  * myCommand

每周一上午8点到11点的第3和第15分钟执行

3,15 8-11 * * 1 myCommand

每月1、10、22日的3 : 37重启smb

37 3 1,10,22 * * /etc/init.d/smb restart

每星期六的晚上11 : 00 pm重启smb

0 23 * * 6 /etc/init.d/smb restart

每一小时执行一次myCommand

* */1 * * * myCommand

晚上11点到早上7点之间,每隔一小时执行一次myCommand

0 23-7 * * * myCommand

6. 创建一个新的crontab文件
创建一个名为usercron的文件,其中user是用户名,例如, bishopcron。在该文件中加入如下的内容。

# (put your own initials here)echo the date to the console every
# 15minutes between 6pm and 6am
0,15,30,45 18-06 * * * vi /home/bishop/test.py

注意添加注释,方便查看具体任务信息

7. 启动crontab
查看crontab 是否启动成功,检测crontab 服务是否启动:

/etc/init.d/crond status 

没启动则要用下面命令:

/etc/init.d/crond start

重启crond服务,命令为:

使用 /etc/init.d/crond restart

8. 加入crontab
crontab bishopcron 创建完成或者更新脚本内容之后更新定时作业

9. 查看日志
更新crontab文件以后,Linux系统会提示形如“You have mail in /var/xxx/mail/xxxx”的内容。
这时,可以使用tail命令跟踪“/var/xxx/mail/xxxx crontab_file_name”路径下crontab文件的执行日志。可以看到相关的报错或者执行信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章