概述、

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