(一)延时任务
一.at命令的基本用法
1.基本格式
[[email protected] mnt]# at now+1min ##at +指定时间(时时:分分)/ at + now+数字min
at> touch /mnt/file1 ##输入希望执行的命令
at> <EOT> ##ctrl+d 执行
job 1 at Wed Nov 1 22:17:00 2017
2.at -l #列出延迟任务id
3.at -r 任务id #删除此id的任务
4.at -c 任务id #查看此id的延迟任务的执行动作
5.at -f 文件 #用文件内记录的命令作为延迟任务的执行命令
6.at -m #让无是出的命令产生邮件
7.at -M #让有输出的命令不产生邮件
二.at命令的使用控制
默认系统中全部用户都有执行at命令的权力那么如何设定at命令的黑白名单:
1.用户黑名单
默认情况下,系统中是存在用户黑名单的
(1)这个名单的路径
/etc/at.deny ##用户黑名单,此名单默认为空,并且在白名单不存在时生效
vim /etc/at.deny
student ##student使用at命令的权力被禁止
[[email protected] ~]$ at now+1min
You do not have permission to use at. ##student不能执行at命令
2.at命令的白名单
默认系统中是不存在at的白名单的,但是当白名单出现,系统用除名单中出现的用户以及root外其他用户均不能执行at命令
(1)[[email protected] mnt]# touch /etc/at.allow ##建立用户白名单,当白名单出现,黑名单失效 [[email protected] mnt]# su - student Last login: Wed Nov 1 22:54:25 CST 2017 on pts/2 [[email protected] ~]$ at 22:55 You do not have permission to use at. [[email protected] ~]$ exit logout [[email protected] mnt]# su - kiosk Last login: Wed Nov 1 23:00:50 CST 2017 on pts/2 [[email protected] ~]$ at 22:55 You do not have permission to use at. (2) [[email protected] mnt]# vim /etc/at.allow #在白名单中添加用户,那么student用户可以执行at [[email protected] mnt]# cat /etc/at.allow student [[email protected] mnt]# su - student Last login: Wed Nov 1 23:01:16 CST 2017 on pts/2 [[email protected] ~]$ at 23:02 at> <EOT> job 11 at Thu Nov 2 23:02:00 2017 [[email protected] ~]$ exit logout [[email protected] mnt]# su - kiosk Last login: Wed Nov 1 23:01:42 CST 2017 on pts/2 [[email protected] ~]$ at 23:23 You do not have permission to use at. #student执行at成功,但测试kiosk依然不可以
(二)定时任务
一.cron基础用法
1.这个程序是由crond.service 服务提供
2.写入程序的时间和事件是永久保存的
3.cron设定方式
crontab -e -u 用户名称(可以不写)
格式
分钟 小时 天 月 周 事件
58 06 * * * rm -fr /mnt/* #每天6:58分删除mnt中的所有内容
58 06 1,15 * * rm -fr /mnt/* #每月1号和每月15号的6:58分删除mnt中的所有内容
58 06 1-15 * * rm -fr /mnt/* #每月1号到每月15号的6:58分删除mnt中的所有内容
58 06 1,15 3 * rm -fr /mnt/* #3月1号和15号的6:58分删除mnt中的所有内容
58 06 1,15 3 3 rm -fr /mnt/* #3月1号和15号以及3月的所有周三
58 06-17 * * * rm -fr /mnt/* #6-17点,每个小时的58分
*/30 06-17 * * 1-5 rm -fr /mnt/* #周一到周五的早上6点到下午5点每隔半小时执行
4.crontab -l ##列出当前用户的cron任务
5.crontab -r ##删除当前用户的cron任务
6./var/spool/cron/* ##cron任务记录文件存放位置
二.cron的黑白名单
默认情况下,系统中只存在黑名单,当白名单被建立,黑名单失效
1.黑名单
[[email protected] ~]# vim /etc/cron.deny ##在此名单中的用户不能执行crontab
You have new mail in /var/spool/mail/root
[[email protected] ~]# cat /etc/cron.deny
student ##student用户不能执行crontab
[[email protected] ~]# su - student
Last login: Wed Nov 1 23:29:18 CST 2017 on pts/2
[[email protected] ~]$ crontab -e
You (student) are not allowed to use this program (crontab) ##student执行crontab被禁止
See crontab(1) for more information
2.白名单
[[email protected] ~]# touch /etc/cron.allow #建立白名单,当此名单出现,除root用户及名单中的用户其他用户不能执行crontab
[[email protected] ~]# su - student
Last login: Thu Nov 2 09:12:46 CST 2017 on pts/1
[[email protected] ~]$ crontab -e
You (student) are not allowed to use this program (crontab)
See crontab(1) for more information
[[email protected] ~]$ exit
logout
[[email protected] ~]# su - kiosk
Last login: Thu Nov 2 06:52:53 CST 2017 on :0
Last failed login: Thu Nov 2 09:02:45 CST 2017 from :0 on :0
There was 1 failed login attempt since the last successful login.
[[email protected] ~]$ crontab -e
You (kiosk) are not allowed to use this program (crontab)
See crontab(1) for more information
[[email protected] ~]$ exit
logout
[[email protected] ~]# vim /etc/cron.allow
You have new mail in /var/spool/mail/root
[[email protected] ~]# cat /etc/cron.allow
student #student可以执行crontab
[[email protected] ~]# su - student
Last login: Thu Nov 2 09:15:52 CST 2017 on pts/1
[[email protected] ~]$ crontab -e #测试 student可以执行
no crontab for student - using an empty one
crontab: installing new crontab
[[email protected] ~]$ exit
logout
[[email protected] ~]# su - kiosk
Last login: Thu Nov 2 09:16:07 CST 2017 on pts/1
[[email protected] ~]$ crontab -e #测试 kiosk仍然不可以执行
You (kiosk) are not allowed to use this program (crontab)
See crontab(1) for more information
三.文件方式定义crontab
1.vim /var/spool/cron/用户名称 #以某个用户身份执行cron,文件民称必须和用户名称一致
格式:
分 时 天 月 周 动作
2.vim /etc/cron.d/文件
#设定多个用户身份执行cron
格式:
<分> <时> <天> <月> <周> <用户> <动作>
或直接多行录入
四.系统中的cron任务
1./etc/cron.daily/ ##系统每天做执行的程序
2./etc/cron.hourly/ ##系统每小时执行的程序
3./etc/cron.monthly/ ##系统每月执行的程序
4./etc/cron.weekly/
##系统每星期执行的程序