计划任务
定时任务,也叫例行性工作调度
我们需要让linux系统按我们指定的时间规则自动的处理某些作业,例如在
某个时间点执行某个脚本,周期性的备份数据,这时候就可以制定任务计
划了。任务计划分为一次性和周期性两类。
注意事项: 如果想要使用定时任务,首先要确保自己系统的时间格式,我们
使用的是东八区时间,也就是北京时间,可以运行下边这条命令确认。
一次性: 就是这次做完以后就没有的那一种
at :at 是个可以处理仅执行一次就结束调度的指令,不过要执行 at 时,
必须要有 atd 这个服务 的支持才行。在某些新版的 distributions 中,atd
可能默认并没有启动,那么 at 这个指令就会失效呢!不过我们的 CentOS
默认是启动的!
周期行性,就是每隔一定的周期要来办的事项;
crontab :crontab 这个指令所设置的工作将会循环的一直进行下去! 可
循环的时间为分钟、小时、每周、每月或每年等。
crontab 除了可以使用指令执行外,亦可编辑 /etc/crontab 来支持。 至于
让 crontab 可以生效的服务则是 crond 这个服务喔!
一次性计划任务
atd的启动与at运行的方式
要使用单一工作调度时,我们的 Linux 系统上面必须要有负责这个调度的
服务,那就是 atd 这个玩意儿。 不过并非所有的Linux distributions 都默
认会把他打开的,所以呢,某些时刻我们必须要手动将他启用才行
[root@base ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai
/etc/localtime
at的运行方式
一次性任务计划即执行完一次后就没有了的那种,可以通过at或batch命
令生成。计划内容会以文件的形式写入/var/spool/at目录中,一个任务计划
对应一个文件,系统的服务进程atd(at daemon)会读取这些文件并执行。
某任务执行完毕后,其对应的文件也会被自动删除。
为安全起见,我们通常需要编辑/etc/at.allow(白名单)
或/etc/at.deny(黑名单)以允许或拒绝某些特定用户制定任务计划,这
两个文件对at和batch命令都适用
⑴直接在文件中输入用户名,一行一个用户
⑵若这两个文件都不存在,默认只有root可以使用at和batch命令
⑶/etc/at.allow若存在但没有任何内容,表示允许的用户为空,意即拒
绝所有用户(root除外),同样/etc/at.deny若没有任何内容,则表示
放行所有用户。
⑷为避免混乱,/etc/at.allow和/etc/at.deny通常不同时使用。但若两
者都存在且有矛盾的地方,以/etc/at.allow优先。
使用方法:
生成一次性任务计划
用法:at [option]... [TIME]
~]# yum install at
~]# systemctl restart atd
~]# systemctl enable atd
~]# systemctl status atd
● atd.service - Job spooling tools
Loaded: loaded (/usr/lib/systemd/system/atd.service;
enabled; vendor preset: enabled)
Active: active (running) since 一 2019-06-17 11:04:22
CST; 9s ago
Main PID: 47922 (atd)
at命令后不能为空,必须接选项或参数
常用选项:
任务计划创建格式:
at TIME
> COMMAND1
> COMMAND2
...
> 按Ctrl+D结束,结束符为EOT
TIME格式:
HH:MM 如14:30
HH:MM YYYY-MM-DD 如14:30 2015-10-07
HH:MM[am|pm] [Month] [Date] 如02:30pm October 07
HH:MM[am|pm] + number [minutes|hours|days|weeks] 如
14:30 + 2 weeks
now + #UNIT 如now + 5minutes
noon,midnight,teatime,tomrrow
其它命令:
atq:查看待执行任务列表,相当
12. 计划任务(crontab)
最新推荐文章于 2025-03-12 09:00:00 发布