概述、
cron守护进程支持crontab和at,可以通过这2个程序实现定时任务
执行一次:at
循环执行:crontab
crontab
crontab执行定时任务步骤,
1、按照crontab文件格式创建用户的crontab文件
2、使用crontab命令向cron提交用户的crontab文件
3、cron将用户提交的crontab文件内容添加到/var/spool/cron/目录下 与当前用户同名的文件中
[root@localhost bin]# 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
[root@localhost bin]#
/etc/cron.deny 设定黑名单,阻止特定的用户使用crontab
[btsp@Filesvr0 ~]$ crontab -l
0 2 * * * /home/btsp/get51dat/getdat.sh >> /home/btsp/get51dat/getdat.log 2>&1
分时日月周----5个时间域
分钟,0-59
小时,0-23
日,1-31
月,1-12
星期,0-6,0代表周日
*代表任何时刻都接受 0 2 * * * 每天的凌晨2点
,进行分隔 0 2,6 * * * 每天的凌晨2点,6点
-代表一段时间范围 0 2-6 * * * 每天的2点到6点,即2、3、4、5、6
/n代表每隔n个单位间隔 */5 * * * * 每5分钟执行一次
crontab [-u] USERNAME [-elr]
[-l]显示定时任务
[-e]编辑定时任务
[-r]删除定时任务
修改单项定时任务,使用crontab -e 即可
删除定时任务,使用crontab -r 即可 #谨慎使用! 删除/var/spool/cron/[当前用户名]
修改/etc/crontab要注意语法格式:
25 00 * * 0 /usr/local/bin/backup.sh 错误写法
25 00 * * 0 root /usr/local/bin/backup.sh 正确写法
二、一次性定时任务at
向at提交定时任务,at分配唯一的作业号,进入at队列等待,执行后退出队列
at的操作:
at -l或atq 显示等待执行的队列
at -r job_number 取消未运行的任务
at -f script_file -m time
三、程序后台运行&:
1、命令末尾加上&
2、nohup +命令行 +& 退出账户之后,程序继续在背景执行,预设输出结果重定向到nohup.out