Linux Crontab 定时任务

时间:2023-01-19 08:01:53

crontab文件:

-bash: vat: command not found
[hadoop@master1 etc]$ cat crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
/etc/cron.deny
记录不允许使用 crontab的命令

/var/spool/cron/
存放所有用户的 crontab文件,以用户名命名

/etc/crontab
调度各种管理和维护任务

/etc/cron.d/
存放任何要执行的 crontab文件或脚本

我们还可以把脚本放在 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly 目录中,让它每小时/天/周/月执行一次
常用命令:
crontab [-u username] -e|-l|-r      编辑|遍历|删除
service crond status
service crond start service crond stop ntsysv 查看是否设置为开机启动 chkconfig -level 35 crond on 加入开机自动启动

我们用 crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。操作符有:

星号(*):   取值范围内的所有数字
正斜线(/): 每过多少个数字
中杠(-):   从x 到 y
逗号(,):  散列数字

常见实例:


 1. * * * * * command        (每分钟执行一次command)
 2. 3,8 * * * * command      (每小时的第3和第8分钟执行)
 3. 3,8 8-11 * * * command    (上午8点到11点的第3和第8分钟执行)
 4. 3,8 8-11 */2 * * command   (每隔2天的上午8点到11点的第3和第8分钟执行)
 5. 3,8 8-11 * * 1 command      (每周一的上午8点到11点的第3分钟和第8分钟执行)
 6. 30 21 * * * /etc/init.d/smb restart  (每晚的21:30重启smb)
 7. 45 4 1,10,22 * * /etc/init.d/smb restart  (每月1、10、22日的04:45重启smb)
 8. 10 1 * * 6,0 /etc/init.d/smb restart  (每周六、日的01:10重启smb)
 9. 0,30 18-23 * * * /etc/init.d/smb restart  (每天18:00至23:00之间每隔30分钟重启smb)
 10. * 23-7/1 * * * /etc/init.d/smb restart  (晚上11点到早上7点之间,每隔一小时重启smb)