仅进行一次的工作任务分配: at
首先需要有负责任务分配的服务,就是atd
启动该服务或守护程序的命令是:
/etc/init.d/atd restart
其次考虑到安全性并非所有人都可以进行at工作任务分配,我们可以利用/etc/at.allow或者/etc/at.deny这两个文件来进行限制
/etc/at.allow: 只有该文件中的用户才能使用
/etc/at.deny: 只有不在该文件中的用户才能使用
一般只需要/etc/at.deny文件存在即可
语法:
at TIME
TIME可以有多种格式:
HH:MM
HH:MM YYYY-MM-DD
HH:MM[am|pm] [MONTH] [DAY]
HH:MM[am|pm] + number [minutes | hours | days | weeks ]
范例:
#再过五分钟后关机
at now + 5 minutes
at> /bin/sync
at> /bin/sync
at> /sbin/shutdown -h now
at> EOF(按[Ctrl] + d)
job x at 2008-12-25 10:38
查询当前主机有多少at工作任务分配的命令: atq
删除某个工作任务分配的命令atrm job-number
循环执行的例行性命令: crontab
语法:
crontab [-l | -e | -r]
-e: 编辑crontab的工作内容
-l: 查看crontab的工作内容
-r: 删除所有crontab的工作内容
范例:
#每天12:00发送邮件给simplyzhao用户
crontab -e
#此时进入vi编辑状态,每项工作占一行
0 12 * * * mail simplyzhao -s "12:00 theme" < /home/simplyzhao/.bashrc
#分 时 日 月 周 命令
时间参数的含义
分钟 小时 日期 月份 周
0-59 0-23 1-31 1-12 0-7
*: 任何时间都接收
, : 分隔时段,例如每天3:00与6:00表示为: 0 3,6 * * * command
- : 表示范围,例如8点到12点之间每小时的20分做一项工作: 20 8-12 * * * command
n/: 每隔n单位时间,例如每隔5五分进行: */5 * * * * command
系统级设置
直接编辑/etc/crontab文件
通常,cron服务的最低检查限制是"分钟",所以cron会每分钟去读取一次/etc/crontab或者/var/spool/cron中的数据
另外系统已经存在一些定期执行的文件,例如cron.daily, cron.hourly等等,也可以直接将符合条件的工作直接放在这些目录中