Linux Crontab 定时运行任务 命令详解

一、Crontab 介绍

       Crontal的功能是在指定时间自动执行命令。

/etc/crontab 文件

       在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。
      
如:

[root@a ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly


/etc/cron.deny 和 /etc/cron.allow 文件

/etc/cron.deny 表示不能使用crontab 命令的用户
/etc/cron.allow 表示能使用crontab的用户。
 
如果两个文件同时存在,那么/etc/cron.allow 优先。
如果两个文件都不存在,那么只有超级用户可以安排作业。
 
每个用户都会生成一个自己的crontab 文件。这些文件在/var/spool/cron目录下:
 
如:

[root@a ~]# cd /var/spool/cron
[root@a cron]# ls
oracle  root


我们直接查看这个文件,里面的内容和对应用户显示的crontab -l 一致。

[root@a cron]# cat oracle
00 6 * * * /u02/scripts/del_st_archive.sh >/u02/scripts/del_st_arch.log 2>&1
[root@a cron]# cat root
0 12 * * * /root/bin/sync-clock.sh
[root@a cron]#

二、Crontab使用方法

crontab -l  //查看当前用户下的cron任务

crontab -e  //编辑当前用户的定时任务

crontab -u  linuxso  -e  //编辑用户linuxso的定时任务

键入以上命令都将新建任务并使用vi输入

基本格式:

* * * * * command

*(分) *(时) *(日) *(月) *(周) command(要执行的命令)

例如:

30 21 * * * /mnt/server/httpd/bin/httpd -k restart
#每天21:30重启Apache服务

45 4 1,10,22 * * /mnt/server/httpd/bin/httpd -k restart
#每月1号、10号、22号的4:45重启Apache服务

10 1 * * 6,0 /mnt/server/httpd/bin/httpd -k restart
#每周六、周日1:10重启Apache服务

0,30 18-23 * * * /mnt/server/httpd/bin/httpd -k restart
#每18:00至23:00之间每隔30分钟重启Apache服务

0 23 * * 6 /mnt/server/httpd/bin/httpd -k restart
#每周六23:00重启Apache服务

* */1 * * * /mnt/server/httpd/bin/httpd -k restart
#每隔1小时重启Apache服务

* 23-7/1 * * * /mnt/server/httpd/bin/httpd -k restart
#每天23点至7点间隔1小时重启Apache服务

0 11 4 * mon-wed /mnt/server/httpd/bin/httpd -k restart
#每月4号与每周一至周三的11点重启Apache服务

0 4 1 jan * /mnt/server/httpd/bin/httpd -k restart
#1月1重启Apache服务

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注