详解Linux系统定时任务

at

atd的使用

systemctl restart atd    #重新启动atd这个服务
systemctl enable atd   #开机自启动
systemctl status atd    #查看atd状态

at的访问控制
1、如果系统中有/etc/at.allow文件,
那么只有写入/etc/at.allow文件(白名单)中的用户可以使用at命令(/etc/at.deny文件会被忽略,也就是这个的优先级更高) ,系统默认没有这个文件
2、如果系统中没有/etc/at.allow文件,只有/etc/at.deny文件,那么写入/etc/at.deny文件,一个账号写一行(黑名单)
中的用户不能使用at命令。但是对root不起作用
3、如果系统中这两个文件都不存在,那么只有root用户可以使用at命令
at的运行方式
事实上,我们使用at这个命令来产生所以运行的任务,并将这个任务写入/var/spool/at目录里面,该任务便能等待atd这个任务的使用与执行
at的优点
由于系统at计划任务的使用,系统会将at独立出bash环境,直接交给系统的atd程序来接管,因此当我们执行完at后就可以脱机了
batch系统有空时才执行计划任务
其实batch是at来执行命令的,只不过加了一些控制参数,它在cpu任务负载小于0.8时才执行我们的工作任务
**at [选项] 时间 **
选项:
-m:当at工作完成后,无论是否有输出,都用email通知执行at命令的用户
-c 工作号:显示该at工作的实际内容

时间:
HH:MM 如:05:30
HH:MM YYYY-MM-DD 如:02:30 2019-07-25
HH:MM[am|pm] [month] [date] 如:02:30 July 25
HH:MM[am|pm] + [minutes|hours|days|weeks] 如:now + 5 minutes

在两分钟之后执行hello.sh脚本
at now +2 minutes
at>/root/hello.sh >> /root/hello.log

在指定的时间重启
at 02:00 2019-10-5
at>/bin/sync
at>/sbin/shutdown -r now

atq:查询当前服务器上的at工作
atrm[工作号]:删除指定的at任务

循环执行的定时任务crontab

由crond这个系统服务来控制,当用户使用crontab这个命令来建立计划任务后,该项任务就会被记录到/var/spool/cron/中
crontab [选项]
选项:
-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务
crontab -e :
进入crontab编辑界面,会打开vim编辑你的工作
*****执行的任务
*号含义
第一个数字代表分钟
第二个数字代表小时
第三个数字代表日期
第四个数字代表月份
第五个数字代表周

系统的配置文件
/etc/crontab
/etc/cron.d/*
/var/spool/cron/*
这三个地方中,和系统的运行有关系的是,前两个文件,另外一个是和用户自己的任务有关系的配置文件,就是放在/var/spool/cron/*里面的文件

总结

个人化得操作使用crontab -e
系统维护管理使用vim /etc/crontab
自己开发软件最好使用vim /etc/cron.d/newfile,如果你是想要自己开发软件,那当然最好就是使用全新的配置文件

一些注意事项

  1. 取消不必要的输出,丢到/dev/null 里面
  2. 资源分配不均的问题要防止
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值