目录
一.任务的定时:
1. 设定什么时间你要执行操作: at 12:22 | now+1min
2. 然后设定你要操作的东西: rm -rf /mnt/*
3. ctrl+d 将你要延迟操作的任务进行挂起
at -l ##查看延迟任务列表
at -c 任务号 ##查看任务内容
at -r 任务号 ##取消任务执行
注意: 当任务有输出时,输出会以邮件的方式发送给at任务的发起者
mail -u root ##查看超级用户邮件
1 ##查看第一封邮件
q ##退出
> /var/spool/mail/root ##清空邮件
二.任务黑白名单:
/etc/at.deny ##系统中默认存在,在此文件中出现的用户不能执行at /etc/at.allow ##系统中默认不存在,当文件出现,普通用户不能执行at, ##并且只有在名单中的用户才可以使用延迟任务,且/etc/at.deny失效
这里我们在示例在黑名单中添加了用户lee,因此我们切换到lee用户之后,lee用户无法使用at命令来完成延迟任务或者定时任务
三.系统定时任务 :
任务保存的文件: /var/spool/cron/username
1. crontab 时间方式表示
* * * * * ##每分钟
* /2 * * * * ##每两分钟
* /2 09-17 * * * ##早7-晚5每两分钟
* /2 * /2 * * * ##每隔两小时每两分钟
* /2 09-17 3,5 1 5 #一月的三号和五号以及一月的每周五09点到17点每隔两分钟
* /2 09-17 * * 5 ##每周周五早9晚5
2. 系统重置crontab 服务
systemctl start crond.service ##当程序开启时定时任务生效
3. crontab
crontab -u -e root # 指定root用户编写定时文件或
crontab -e -l # 查看定时任务
crontab -e -r # 删除定时任务
【步骤:1.首先检查任务状态systemctl status crond.service 没有开启应当开启状态
2.运行命令crontab -u root -e 用户可以任意指定 ,然后在文件内编写要运行的
3.编写举例 * * * * * touch /mnt/file{2..5}
4.重新开启一个shell查看命令是否生效 】
4.系统级别的cron (文件方式设定定时任务)
vim /etc/cron.d/file
* * * * * username action
* * * * * root rm -rf /mnt/* (可以指定用户)5. crontab 的黑白名单
/etc/cron.deny ##系统中默认存在,在此文件中出现的用户不能执行crontab
/etc/crontab.allow ##系统中默认不存在,需要自己touch,但当这个文件出现,普通用户不能执行crontab
#只有在这个白名单中才可以使用,并且/etc/at.deny失效
##这两个名单都不会影响 /etc/cron.d/目录中定时任务的发起和执行
四:邮件的开启和关闭相关功能 :
【步骤】 1.在我们配置好了软件仓库的前提下 vim /etc/yum.repos.d/westos.repo
2.先安装 dnf install postfix mailx -y软件仓库下载邮箱
3.在打开服务 systemctl enable --now postfix启动邮箱服务
4.0 邮件默认服务 : crontab -e 里面编写 * * * * * /bin/date &> /dev/null表示邮件运行,但是东西都运行到垃圾桶了 (此方式开启了邮箱服务,只是将东西重定向到了垃圾箱)
![]()
4.1 接受对象为空 :vim /etc/crontab 将 MAILTO=root 改成 MAILTO=“” ,这样就是不像任何人发送邮件,但是邮件服务依旧开启 (只是不用了) / 将 MAILTO=“”写入到 crontab -e 中
4.2 关闭邮箱功能 :vim /etc/sysconfig/crond 中的第三行改成 CRONDARGS=-m off 表示将mail服务关闭 / CRONDARGS=-s -m off 表示将邮箱功能关闭,日志功能开启