一、crontab基本用法
1.1、cron服务
cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。
systemctl start crond //启动服务
systemctl stop crond //关闭服务
systemctl restart crond //重启服务
systemctl reload crond //重新载入配置
systemctl status crond //查看服务状态
1.2、crontab参数选项
crontab (选项) (参数)
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。
1.3 、crontab文件的含义
计划任务:可以规定计算机在什么时间做什么事
计划任务的分类
分为: 分 时 日 月 周 五个模块 前面是时间,后面是动作,动作用绝对路径写。
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到之6间的任何整数,星期日为0。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符
星号():代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如/10,如果用在minute字段,表示每十分钟执行一次。
二、示例
date 查看系统时间
2.1、每分钟执行一次command
*/1 * * * * command
2.2、每小时的第2和40分钟执行一次command
2,40 * * * * command
2.3、在下午15点到晚上21点的每小时第20分钟执行一次command
20 15-21 * * * command
2.4 每隔三天的凌晨15点到晚上21点每小时的第20分钟执行一次command
20 15-21 */3 * * command
2.5 每个月的14号的两点执行一次command
0 2 14 * * command
2.6 每个月1号3号5号的三点整执行一次command
0 3 1,3,5 * * command
2.7 每个月5号到8号的三点整执行一次command
0 3 5-8 * * command
【注意】写计划任务的时候一般开两个终端,比较省事,要用绝对路径去写。
绝对路径是什么?
例如: 我要看一下我的reboot命令存储在哪里。
进入到计划任务配置文件之后,把这个路径直接粘到 分时日月周 后面。
怎么去写呢?
crontab -e(编写计划任务)
crontab -l 查看本机的计划任务
crontab -r 删除本机的计划任务 也可以crontab -e 进去dd删除
先把五个位数写上,这样不会乱
要求它15点06的时候重启
计划任务不执行的原因:
1.计划任务本身写错
2.etc/passwd是不是有属性 lsattr /etc/passwd
3.系统的时间不对
4.看看有没有计划任务的进程crond
crond是计划任务本身的守护进程,如果把计划任务的进程给pkill了计划任务就不能执行。
一次性的计划任务
可以不用绝对路径,每一个命令用一行表示。at 是一次性执行的计划任务,而 crontab -e 是循环调度执行任务。 例如要求今天三点重启,用at。每天三点重启,用crontab -e。
yum -y install at 安装at
systemctl restart atd 启动at
vi at.jobs
at 16:30 < at.jobs
id k
id k1
给普通用户创建计划任务
root是可以给普通用户创建计划任务
crontab -u k -e #使用k用户创建
crontab -u k -l #查看用户的计划任务
crontab -r #删除当前用户的计划任务
crontab -u k -r #删除k用户的计划任务
禁止普通用户捣乱使用计划任务 (root用户禁止普通用户使用计划任务)
vi /etc/cron.deny 在这个配置文件里面把k写上
用k用户写计划任务,发现不能写。因为root用户在/etc/cron.deny 把k写进去了。
如果普通用户就想用计划任务的话,就让root用户在etc/cron.deny把k删掉。
【注意】多看书,少玩游戏。