Linux系统中的定时任务及延时任务

1.系统延时任务

 at 11:46/now+1min         ##设定任务执行时间/延时1分钟
  at> touch westos{1..3}         ##任务动作
  at> <EOT> << CTRL +D         ##用ctrl+D发起任务

  at -l                   ##查看任务列表
  at -c 任务号             ##查看任务内容
  at -r 任务号             ##取消任务执行

2.at任务的黑白名单

at任务的黑名单/etc/at.deny   ## 系统中默认存在,在此文件中出现的用户不能执行at命令
at任务的白名单/etc/at.allow  ## 系统中默认不存在,当该文件出现,普通用户不能执行at命令

                                                 ##只有在名单中的用户和超级用户可以执行at命令,并且/etc/at.deny失效

要想添加黑白名单  vim /etc/at.deny  |  /etc/at.allow
###############3.系统定时任务####################

系统中控制定时任务crontab的服务为crond.service,当这一服务开启时定时任务生效。
定时任务保存文件/var/spool/cron/username中。

分钟 小时 日期 月份 周数
*            *        *       *       *                 ##每分钟
*/2 * * * *                 ##每两分钟
*/2 09-17 * * *             ##早7-晚5点内每两分钟
*/2 */2 * * *                 ##每隔2小时每两分钟
*/2 09-17 3,5 1 5             ##1月份3号和5号,每周周五,早9-晚5点,每两分钟
*/2 09-17 * * 5             ##每周周五早9-晚5点每两分钟

crontab 命令

crontab -e -u         ##建立指定用户的定时任务(普通用户不能指定用户,只有超级用户可以指定用户)
crontab -l -u                ##列出指定用户的定时任务列表
crontab -r -u                ##取消指定用户的定时任务执行

实验crontab 命令:

通过watch -n 1 ls -lR /mnt进行监控,看看设置是否成立
 rm -fr /mnt/*   ##清空目录方便监控
 systemctl status crond.service    ##查看服务crond.service是否为开启状态

[root@westosb ~]# crontab -u root -e    ####建立root用户的定时任务
no crontab for root - using an empty one
crontab: installing new crontab
[root@westosb ~]# crontab -l      ##查看任务列表
 */2 * * * * touch ff{1..6}
[root@westosb ~]#  crontab -l  -u root
 */2 * * * * touch ff{1..6}
[root@westosb ~]# crontab -r  -u root   ##删除任务
[root@westosb ~]#  crontab -l  -u root
no crontab for root

 监控信息:

crontab的黑名单/etc/cron.deny     ##系统中默认存在,在此文件中出现的用户不能执行crontab
crontab的白名单/etc/cron.allow    ##系统中默认不存在,当文件出现,普通用户不能执行crontab,只有在名单中的用户可以执行crontab,并且黑名单/etc/cron.deny失效

注意: 这两个名单都不会影响/etc/cron.d/目录中定时任务的发起及执行

3种方法避免接收邮件,浪费系统存储空间

注意: 当延时任务有输出时,输出会以邮件的形式发送给at任务的发起者,为了看到发送的邮件,我们需要用到提供邮件发送服务的postfix和提供邮件查看服务mailx,配置虚拟机westosa的软件源指向文件(这里使用真实主机中的软件仓库),安装postfix和mailx,启动postfix服务

 dnf install postfix mailx -y    ##安装postfix和mailx

 systemctl enable --now postfix.service     ##启动postfix服务
方法1:
 

 vim /var/spool/cron/root  ##屏蔽定时任务的输出
//
* * * * * /bin/date &> /dev/null
//
  169  systemctl restart crond.service
  170  > /var/spool/mail/root
  171  mail

方法2:关闭邮件发送功能   
crontab的发起者不会接收到有输出的定时任务发送的邮件

vim /etc/sysconfig/crond
//
CRONDARGS=-s -m off
//
systemctl restart crond.service
mail

方法3:
 

 vim /etc/crontab
  //
  MAILTO=""    ##设置接收用户为空,无人接受
  //
  crontab -e -u root
  //
  MAILTO=""     ##添加此行到定时任务中
  * * * * * /bin/date
  //
  systemctl restart crond.service

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值