Linux 计划任务 Crond

一、Linux 系统自有服务 crond

crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,一般操作系统默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

二、计划任务的作用

操作系统不可能24 小时都有人在操作,有些时候想在指定的时间点去执行任务。例如:每天凌晨 2 点去重新启动httpd服务,此时不可能真有人每天夜里 2 点去执行命令,这就可以交给计划任务程序去执行操作了。

三、crontab 命令

选项作用
-llist,列出指定用户的计划任务列表
-eedit,编辑指定用户的计划任务列表,简单来说,计划任务就是一个文件
-uuser,指定的用户名,如果不指定,则表示当前用户
-rremove,删除指定用户的计划任务列表

四、编辑计划任务(!)

使用crontab -e打开计划任务编辑文件后,即可编写我们的自定义计划任务。

计划任务语法,以行为单位,一行即为一个计划任务
分 时 日 月 周 用户名(可省略)  计划任务需要执行的命令

取值范围(常识):
分:0~59
时:0~23
日:1~31
月:1~12
周:0~7,0 和 7 都表示星期天

四个符号:
*:表示取值范围中的每一个数字
-:做连续区间表达式的,要想表示1~7,则可以写成:1-7
/:表示每多少个,例如:想每 10 分钟一次,则可以在分的位置写:*/10
,:表示多个取值,比如想在 1 点,2 点 6 点执行,则可以在时的位置写:1,2,6

在Linux系统中,有些命令不能直接在计划任务中使用,使用后,其也不会生效。如useradd命令。如果想让其生效必须使用完整路径。

案例一:每月1、10、22 日的4:45 重启network 服务

45 4 1,10,22 * * /usr/bin/systemctl restart network

案例二:每周六、周日的1:10 重启network 服务

10 1  * *  6,7 /usr/bin/systemctl restart network

案例三:每天18:00 至23:00 之间每隔30 分钟重启network 服务

*/30 18-23 * * * /usr/bin/systemctl restart network

案例四:每隔两天的上午8 点到11 点的第3 和第15 分钟执行一次重启

3,15  8-11 */2 * * /usr/sbin/reboot

五、crontab 权限

crontab是任何用户都可以创建的计划任务,但是超级管理员可以通过配置来设置某些用户不允许设置计划任务 。

1)黑名单

配置文件位于:/etc/cron.deny 里面写用户名,一行只能写一个
black crontab
使用vim编辑该文件保存退出之后,现在我们切换到 hsforpyp 普通用户,执行crontab -e命令,如下图所示:
not allowed
可以看到,hsforpyp 普通用户不被允许使用 crontab 命令。

2)白名单

/etc/cron.allow (本身不存在,自己创建)

白名单优先级高于黑名单,如果一个用户同时存在两个名单文件中,则会被默认允许创建计划任务。白名单使用频率不高,一般使用黑名单即可。

3)查看计划任务文件保存路径

问:计划任务文件具体保存在哪里呢?
答:/var/spool/cron/用户名文件中,如果使用root用户编辑计划任务,则用户文件名为root

/var/spool/cron

4)查看计划任务日志信息

问:在实际应用中,我们如何查看定时任务运行情况?
答:通过计划任务日志,日志文件位于/var/log/cron

33

六、一次性定时执行任务

☆ 安装at命令
# yum install at -y
☆ 启动底层服务
# systemctl start atd
# systemctl enable atd
☆ 案例演示

案例一:三天后下午5点执行/bin/ls

# at 5pm+3 days
at>/bin/ls >/root/readme.txt
at>按Ctrl+D
# am = 上午、pm = 下午、3 days = 3天

案例二:明天17点,输出时间到指定的文件中

# at 17:00 tomorrow
at>date>/root/readme.txt
at>按Ctrl+D

案例三:使用atq查看没有执行的计划任务

# atq

atq = at + q = at命令 + query查询

案例四:删除指定的计划任务

# atq
# atrm 任务号

atrm = at + rm = at + remove

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值