标签:linux
如何让系统定时的完成任务,如何让系统再过一段时间自主的完成某项任务,如下将对系统定时和延时做详细介绍。
####一、at命令####
at命令基本用法
at -l ##列出延迟任务
at -r 任务id ##删除此id任务
at -m ##让无输出的命令不产生邮件
at -c 任务id ##查看此id 延迟任务的执行动作
at -f 文件 ##用文件内容记录的命令作为延迟任务的执行命令
at定时任务,用watch -n 1 任务执行位置 监控
在一分钟后执行 touch /mnt/file{1..5},按ctrl d 结束
查看将要执行的任务id
删除将要执行的任务id,终止任务执行,atq 任务id
清空日志 > /var/spool/mail/root mailq
at -m 不产生邮件
用student用户编辑文件
用文件内容作为延迟任务的自行
查看延迟任务id at -l
查看延迟任务执行的动作 at -c 任务id
2.at命令的使用监控
默认系统中全部用户都有执行at命令的权力那么如何设定at命令的黑白的名单
##用户黑户单
默认情况下,系统中是不存在黑白名单的,这个名单的路径
/etc/at.deny ##用户黑名单,此名单默认为空,并且在白名单不存在时生效用户
默认情况下,student用户可使用at 命令
黑名单中禁止student用户登录
student用户被禁止使用at命令
3.at命令的白名单
默认情况下系统是不存在at白名单用户的
但是当白名单出现时,at命令将会让名单中的用户及root用户使用
其他用户不能执行at命令
在白名单中添加student用户
root用户可使用at命令
student用户可使用at命令
class用户不能使用at命令
####二、cron####
在约定的时间执行特定的任务
这个程序是由crond.service 服务提供
写入程序的时间是永久保存的
##设定方式
crontab -e -u 用户名称(可以不写)
分钟 小时 天 月 周 事件
30 7 * * * rm -fr /mnt/* ##每天7:30删除/mnt/的所有内容
30 7 3,16 * * rm -fr /mnt/* ##每月的3号和16号7:30删除/mnt/的所有内容
30 7 3-16 * * rm -fr /mnt/* ##每月的3号到16号7:30删除/mnt/的所有内容
30 7 3,16 2 3 rm -fr /mnt/* ##2月的3号和16号以及二月的每个周三的7:30删除/mnt/的所有内容
*/30 * * * 1-5 rm -fr /mnt/* ##周一到周五每隔30分钟的7:30删除/mnt/的所有内容
开启服务 systenctl start crond.service
写入程序 crontab -e
crontab -l ##列出当前用户的cron任务
crontab -r##删除当前crontab任务
/var/spool/cron/* ##cront任务记录文件存放的位置
也可以根据存放位置进行查看
监控 watch -n 1 ‘ls -l /mnt/‘
2.cron的黑白名单
默认情况下系统只存在黑名单,当白名单被建立,黑名单失效
##黑名单
/etc/cron.deny ##在此名单中的用户不能执行crontab
class用户写入黑名单
class 不能执行crontab
student用户可执行
##白名单
/etc/cron.allow ##用户白名单,当此名单出现,除root用户及名单中的用户其他用户不能使用crontab命令
白名单中写入student
student用户可使用crontab
class用户不能使用crontab命令
3.文件方式定义crontab
vim /etc/spool/cron/用户名称 ##以某个用户身份执行cron,文件名称必须和用户名称一致
分 时 天 月 周 动作
vim /etc/cron.d/文件 ##设定多个用户身份执行cron
<分> <时> <天> <月> <周> <用户> <动作>
在/mnt/执行某个动作,给/mnt/加上可执行权限
以student用户执行cron
watch -n 1 ‘ls -l /mnt/‘
用追加的方式导入
以脚本的形式执行cron vim cron.sh
运行脚本
监控可得,脚本命令执行成功
/etc/cron.d/文件,有一些管理把我们每月,每周,每天,每小时要执行的文件分别放入不同的文件中来执行
标签:linux
原文地址:http://13363488.blog.51cto.com/13353488/1978289