crontab命令——Linux计划任务
linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。
crontab命令:
crontab是Linux用来定期执行程序的命令。crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
基本语法:
# crontab [-u] {选项}
目标计划任务为当前用户时可省略[-u]
选项 | 含义 |
---|---|
-l | list,列出用户的计划任务表 |
-e | edit,使用vim编辑用户指定的计划任务列表(文件) |
-u | user,指定的用户名,如果不指定则表示当前用户 |
-r | remove,删除指定用户的计划任务列表 |
一,列出用户的计划任务
案例1:列出当前的用户计划任务
案例2:列出用户admin的计划任务列表
二,编辑计划任务
输入# crontab -e (进入计划任务编辑文件)
,即可对计划任务进行添加,修改,删除操作
案例1:为当前用户添加计划任务
每分钟向/root/time.log文件中追加当前系统时间
crontab -e
进入编辑界面后输入:
* * * * * echo $(date) >> /root/time.log
结果使用tail -f time.log
命令动态获查看time.log文件内容案例2:为指定添加计划任务
为用户admin添加计划任务,每天12点钟向文件hello.log中输入hello
crontab -u admin -e
输入:
* 12 * * * echo hello >>hello.log
三,crontab计划任务时间设置
crontab计划任务格式为时间+命令,时间又依次为分,时,日,月,周五个字段。每个字段间用空格格开,即:
分 时 日 月 周 要执行的命令
分:0~59
时:0~23
日:1~31
月:1~12
周:0~7,这里0和7都代表周日
命令可以是系统命令,也可以是编写的脚本
可使用字符:
符号 | 作用 |
---|---|
* | 所有可能字段 |
, | 指定字段,例如,"1,2,3 " |
- | 指定范围,例如,"1-3 " |
/ | 指定时间间隔,例," */10 ",在分钟字段表示每十分钟执行一次 |
四,时间设置实例:
每分钟执行一次
* * * * * 命令
每天12点和18点各输出一次hello
0 12,18 * * * echo "hello"
每天十四点到十六点每30分钟执行一次ls
*/30 * 14-16 * * /bin/ls
每月的1,3,5日的0点重启一次httpd服务
0 0 1,3,5 * * /sbin/service httpd restart
每周1到周5的7:20开启ssh服务
20 7 * * 1-5 /sbin/service sshd start