一、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服务