智传网优云课堂,专注分享IT技术
与IT技术爱好者一起共同学习进步

Linux计划任务之crontab命令实用案例

1. crontab简介

Linux计划任务有两个常用工具:at与crontab。at用于一次性执行,crontab表示循环执行,一般来说,有crontab就不需要使用at,而且绝大多数的Linux发行版都默认自带crontab,不一定自带at,比如CentOS最小化安装,at是没有集成在内的,需要管理员人工安装。

2: 启动crontab

crontab程序依赖crond服务,先启动服务。一般来说,crontab是系统自带并且已经设置好开机启动的状态了。

2.1 CentOS 6:

[root@zcwyou ~]# service crond start

2.2 CentOS 7:

[root@zcwyou ~]# systemctl start crond

3.当前用户建立计划任务:

命令:

[root@zcwyou ~]# crontab -e 

自动进入vi模式,由操作者写入计划任务

语法:

* * * * * command

比如,每天凌晨2点执行一次脚本文件:/root/zcwyou.sh

* 2 * * * /root/zcwyou.sh

退出vi
:wq

Linux使用contab配置计划任务

第一个星号表示分钟,范围:0-59
第二个星号表示小时,范围0-23
第三个星号表示日,范围1-31
第四个星号表示月,范围1-12
第五个星号表示一周中的星期几,范围0-6,0表示周日
第六个星号表示要执行的任务或者命令。由于crond的中PATH变量与shell中的变量不一致,所以指定命令时,路径必须为绝对路径。否则,很有可能因找不到路径而执行失败。

*本身表示匹配任意数字,每个星号字段内容里,还可以再细分,用3个符号表示:

  1. 英文符号/表示每隔多长时间,例如每隔4分钟执行一次id命令:*/4 * * * * /usr/bin/id
  2. 英文符号,表示时间点A和时间点B,例如每小时的第20分钟和40分钟分别执行一次id命令:20,40 * * * * /usr/bin/id
  3. 英文符号-表示时间点A到时间点B,例如每周2到周4凌晨3点执行一次id命令:3 * * * 2-4 /usr/bin/id

crond的PATH变量:

[root@zcwyou ~]# head -3 /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

Linux查看contab配置文件

SHELL中的PATH变量:

[root@zcwyou ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

两个变量并不一样,所以命令路径必须为绝对路径。

计划任务保存在/var/spool/cron,文件名为用户名

[root@zcwyou ~]# ll /var/spool/cron/
总用量 4
-rw-------. 1 root root 28 10月 10 11:56 root

4. 系统管理员为其他用户ocr指定任务

[root@zcwyou ~]# crontab -e -u ocr

5. 查看定时任务:crontab -l

[root@zcwyou ~]# crontab -l
* * */1 * * /root/zcwyou.sh

linux查看contab定时任务

6.删除定时任务:

[root@zcwyou ~]# crontab -r

7.限制用户使用crontab,一个用户占一行。

允许用户列表:
/etc/cron.allow
禁止用户列表:
/etc/cron.deny

默认情况下,allow列表文件是不存在的,deny列表文件是存在但内容为空。
如果allow列表文件存在,则表示,只有在列表中的用户才能使用crontab。

赞(0)
分享到: 更多 (0)

学习QQ群:557371664

关注微信公众号自助视频学习

评论 抢沙发

评论前必须登录!