linux计划任务分为两种:
1、临时计划任务,从标准输入或一个指定的文件读取命令,这些命令在以后某个时间用 /bin/sh 执行。
命令:at
用法:at 选项 时间
选项
-l :查看at的任务列表 at -l
-c :查看at任务的内容,用法:at -c 任务编号
-d:删除at任务 at -d 任务编号
退出at编辑模式,ctrl+d
示例:[root@localhost ~]# at 10:00
at> mkdir /dir1
at> <EOT>
配置文件/etc/at.deny拒绝用户登录,/etc/at.allow 允用户登录许
vim /etc/at.deny
tom
[root@localhost /]# su - tom
[tom@localhost ~]$ at 12:00
You do not have permission to use at.
[tom@localhost ~]$ exit
登出
[root@localhost /]# su - harry
[harry@localhost ~]$ at 12:00
at>
########################################################
2、crond 循环性计划任务 周期性计划任务
crontab 命令来管理计划任务
语法:
crontab 选项
-e:编辑计划任务
-u:指定用户
-l:查看计划任务
-r:删除计划任务(将全部计划任务删除)
注意:
1、crond服务任务循环时间最少精确到分钟,不能再少了
2、crontab编辑时,变量不生效
crontab -e 进入了计划任务编辑模式,模式类似vim,使用vim方式直接编辑即可。
* * * * * 命令
分 时 日 月 周 任务
0-59 0-23 1-31 1-12 0-7
#特殊符号
*:表示每一天/任意一天
,:逗号,表示分隔时间。比如每天的3点2分和6点2分时候执行脚本1.sh 2 3,6 * * * 1.sh
-减号:表示连续的时间。 每天3点至6点,每小时的第2分钟,执行脚本 2 3-6 * * * 1.sh
/斜线:表示每隔多长时间。 每两个小时 第2分钟。 2 */2 * * * 1.sh
例子:
#每天的11:34分时候。在根目录下创建一个file10
34 11 * * * /usr/bin/touch /file10
#每7天 凌晨2:10分,执行脚本2.sh
10 2 */7 * * /2.sh
#每周一的,早上6:10 执行脚本 /2.sh
10 6 * * 1
#每5分钟执行一次
*/5 * * * *
#每天9:30分时候,以当前时间(年月日),创建一个文件
vim 1.sh
#!/bin/bash #shell解释器是bash
touch /opt/$(date +%Y%m%d) #内容