教你咋用crontab

2019-06-02 16:26:55 浏览数 (1)

crontab定时任务命令

通过crontab命令,我们可以在固定的间隔时间执行指定的系统指令或shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。

Linux任务调度的工作主要分为两类:

系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存。 个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有更新,这些工作可以由每个用户自行设置。我设置的是每周一到周五定时发送邮件。

系统级任务调度主要完成系统的一些维护操作,用户级任务调度主要完成用户自定义的一些任务,可以将用户级任务调度放到系统级任务调度来完成(不建议这么做),但是反过来却不行,root用户的任务调度操作可以通过”crontab–uroot–e”来设置,也可以将调度任务直接写入/etc/crontab文件,需要注意的是,如果要定义一个定时重启系统的任务,就必须将任务放到/etc/crontab文件,即使在root用户下创建一个定时重启系统的任务也是无效的。

命令格式

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

说明: -u user:是指设定指定user的时程表,这个前提是你必须要有其权限(比如说是root)才能够指定他人的时程表。如果不指定user,使用crontab就会用在全局root下。 -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。 -r :删除目前的定时服务。 -l :查看目前的定时服务。

时程表基本格式

* * * * * command 分 时 日 月 周 命令

  • 第1列分钟0~59
  • 第2列小时0~23(0表示子夜)
  • 第3列日1~31
  • 第4列月1~12
  • 第5列星期0~7(0和7表示星期天)
  • 第6列是要运行的命令

举例:

脚本位置:/search/odin/mailauto/sele.py 我要设置每周一到周五下午两点执行该脚本,命令如下:

00 14 * * 1-5 python3 /search/odin/mailauto/sele.py

使用命令crontab–e,打开crontab文件,将命令保存。 之后重启crontab服务就生效了,重启命令:

/usr/sbinservicecrond restart

使用实例

实例1:每两个小时重启一次apache

0 */2 * * * /sbin/servicehttpd restart

实例2:每天7:50开启ssh服务

50 7 * * * /sbin/servicesshd start

实例3:每天22:50关闭ssh服务

50 22 * * * /sbin/servicesshd stop

实例4:每月1号和15号检查/home磁盘

0 0 1,15* *fsck/home

实例5:每小时的第一分执行/home/bruce/backup这个文件

1 * * * * /home/bruce/backup

实例6:每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。

00 03 * * 1-5 find /home "*.xxx" -mtime 4 -execrm{} ;

实例7:意思是每月的1、11、21、31日是的6:30执行一次ls命令

30 6 */10 * *ls

实例8:每1分钟执行一次command

* * * * * command

实例9:每小时的第3和第15分钟执行

3,15 * * * * command

实例10:在上午8点到11点的第3和第15分钟执行

3,15 8-11 * * * command

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

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

实例12:每个星期一的上午8点到11点的第3和第15分钟执行

3,15 8-11 * * 1 command

0 人点赞