【Linux学习】任务计划

任务计划

使用cron实现任务计划

root用户可以修改/etc/crontab文件可以实现任务计划,而普通用户无法修改此文件。crond守护进程可以在无需人工干预的情况下,根据设置的时间和日期组合来调度执行重复任务。

systemctl start crond.service #启动crond服务
systemctl enable crond.service #设置开机自启动

/etc/crontab文件说明

/etc/crontab文件是cron的默认配置文件。

SHELL=/bin/bash #使用哪个shell来执行
PATH=/sbin:/bin:/usr/sbin:/usr/bin #定义用来执行命令的路径
MAILTO=root #输出被邮寄给该出定义的用户名
#文件中的每一行表示一项任务,格式如下:
minute(分钟)  hour(小时)  day(日期)  month(月份)  day of week(星期)  user-name(执行命令的用户)  command(执行的命令或shell脚本)

举例:
30 21 * * * root /root/backup.sh #在每天晚上的21:30执行/root/backup.sh文件

/etc/cron.d目录

除了通过修改/etc/crontab文件实现任务计划外,还可以在/etc/cron.d目录中创建文件来实现。
语法规则和/etc/crontab文件一样。

使用crontab命令实现任务计划

root用户以外的可以使用crontab命令配置cron任务,所有用户定义的crontab都被保存在/var/spool/cron目录中,并使用创建它们的用户身份来执行。

crontab [选项] [文件]
-u <用户名> 用户名,如果使用自己的用户名登录,则不需要使用该选项
-e 编辑用户的crontab
-l 列出用户的crontab中的内容
-r 删除用户的crontab
例:
#编辑前需要设置EDITOR环境变量告诉crontab使用哪个编辑器编辑crontab
#编辑用户主目录下的.bash_profile文件,加入export EDITOR=vi
crontab -e #使用编辑器编辑任务计划命令
crontab -l #列出自己的crontab

控制crontab

/etc/cron.allow和/etc/cron.deny文件用来限制用户对crontab的使用。这两个文件的格式都是每行一个用户。如果控制文件被修改了,crond守护进程不需要重启。如果/etc/cron.allow文件存在,那么其中列出的用户才可以使用crontab,并且/etc/cron.deny文件会被忽略。如果该文件不存在,则在/etc/cron.deny文件列出的用户都被禁止使用crontab。

默认只有/etc/cron.deny文件,需要自己手工创建/etc/cron.allow文件。

使用at实现任务计划

cron用来调度重复的任务,而at被用来在指定的时间内调度一次性的任务。

systemctl start atd #启动atd服务

at [选项] [时间参数]
-f <脚本文件>:要提交的脚本文件
-l:列出当前所有等待运行的作用。
-d:清除某个作业,需要提供相应的作业标示ID
-t <时间>:在指定时间提交作业

例:
at now -f /root/script
at -l #列出所有作业

使用anacron实现任务计划

anacron不是取代cron的,它的功能在于处理非24小时一直启动的Linux系统的cron的执行,以天、周、月为单位或是在开机后立刻运行anacron操作,他会去检查计算机停机期间应该运行但并没有运行的cron任务,并将该任务执行一遍后,anacron就自动停止了。

anacron通过分析现在的时间与时间记录文件所记载的上次执行时间,两者比较后如果发现差异,会代表在某些时候没有进行cron,此时就会检查。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值