RHCE---Linux的计划任务
- 开源代码
- 2025-08-18 15:24:01

文章目录
目录
文章目录
前言
一.单一执行的例行性工作
at 命令
二.循环执行的例行性工作
crontab 命令
课后作业:
思维导图
前言
如果想要让自己设计的备份程序可以自动地在系统下面运行,而不需要手动来启动它,这是该如何处理?这些任务可以分为【单一】任务和【循环】任务,在系统内又是哪些服务在负责?有的工作是例行性的,而有些任务是临时发生的。但是计算机不在身边这时就可以使用计划任务(corntable)来实现。
一.单一执行的例行性工作
仅执行一次,执行过后自动删除
at 命令概述:
at命令是Linux下的一种任务调度工具,可以让用户在指定的时间运行一次命令,或在指定时间段内运行周期性的任务。其作用可以概括为:
在指定的时间运行一次命令,比如设定好一个时间,在那个时间运行备份脚本。
在指定时间段内运行周期性的任务,比如设定好在每天的某个时间运行任务。
做一些定时任务或者负载抑制等处理,比如利用 at 命令来分散高峰时间段内用户的大量请求。
总之,at命令可以帮助我们方便地完成一些定时任务,提高工作效率。
at 命令详解
命令格式:at [参数] [时间]
参数: -m 当任务完成之后,即使没有标准输出,将给用户发送邮件 -l atq的别名,可列出目前系统上面的所有该用户的at调度 -d atrm的别名,可以取消一个在at调度中的工作 -v 使用较明显的时间格式,列出at调度中的任务列表 -c 可以列出后面接的该项工作的实际命令内容 -f 从文件中读取作作业 时间格式: HH:MM 在今天的HH小时MM分钟执行,如果今天的这个时间点已经过了,则明 天执行 HH:MM YYYY-MM-DD 强制规定在某年某月的某一天的特殊时刻进行该工作 now + 2 minutes 从现在开始几分钟minutes, hours, days, or weeksat命令的工作过程
/etc/at.allow 写在该文件的人可以使用at命令/etc/at.deny 写在黑名单中的人不可用两个文件都不存在,只有root能使用root 会将计划任务记录在 /var/spool/at/ 目录中 通过查看该目录下的目录文件 spool
查询计划任务。
root 用户如何设置例行性文件的指令使得系统在固定的时间干什么事情?
#设置任务执行的时间为22:49 [root@localhost ~]at 22:49 warning: commands will be executed using /bin/sh #设置执行的内容为打印hello at> wall hello #执行此命令 at> 按Ctr+D查看/var/spool/at/ 目录查询计划任务
[root@localhost ~]# ll /var/spool/at/ 总用量 4 -rwx------. 1 root root 3305 9月 20 10:47 a0000101af20c9 drwx------. 2 root root 6 4月 4 2022 spool拓展配置
#定义三分钟之后显示hello [root@server ~]# at now + 3 minutes任务执行结束后自动删除
二.循环执行的例行性工作每隔一定的周期就需要执行一次
crontab 命令概述:
Crontab是一种在Linux系统上运行自动任务的时间管理工具。通过使用Crontab命令,用户可以在指定的时间间隔内周期性地运行命令或脚本。Crontab命令支持的时间粒度为分钟、小时、日、月、星期,用户可以根据自己的需要灵活地设置定时任务。
crontab 命令详解:
[root@localhost ~]# crontab --help crontab: invalid option -- '-' crontab: usage error: unrecognized option Usage: crontab [options] file crontab [options] crontab -n [hostname] Options: -u <user> define user -e edit user's crontab -l list user's crontab -r delete user's crontab -i prompt before deleting -n <host> set host in cluster to run users' crontabs -c get host in cluster to run users' crontabs -s selinux context -V print version and exit -x <mask> enable debugging crontab -e:编辑当前用户的定时任务列表 crontab -l:列出当前用户的所有定时任务 crontab -r:删除当前用户的所有定时任务 /数字指定时间的间隔频率,例如每 3 分钟进行一次,*/3*代表任何时刻,代表分隔时段-代表一段时间范围crontab 命令工作过程
/etc/cron.allow,写在该文件的人可以使用crontab命令
/etc/cron.deny,黑名单
两个文件如果都不存在,只有root能使用
如何每天创建一个普通文件?
使用touch命令创建普通文件 date命令显示时间,结合可得:
显示当前日期:date +F
··反单引号:代表优先执行,否则date +F将被认为是touch命令参数
#创建一个2023-9-20的文件 [root@localhost ~]# touch `date +%F`.txt成功创建文件
如何每天自动创建文件?
下图是计划任务的格式
#编辑执行计划的内容 [root@localhost ~]# crontab -e #查看编辑计划的内容 [root@localhost ~]# crontab -l * * * * * wall hello #删除执行计划 [root@localhost ~]# crontab -r #每分钟创建一个和时间有关系的文件 [root@localhost ~]# crontab -e #写入任务计划的内容 * * * * * touch /root/ `date +\%H+%M`.txt 注:% 在crontab 循环列表中有特殊含义,需要转译 %注:% 在crontab 循环列表中有特殊含义,需要转译 %
在%前加 \
由于没有执行计划因此查看系统日志
[root@localhost ~]#tail -f /var/log/cron 课后作业:1.atd和crond两个任务管理程序的区别 2.指定在每周周一09:00将时间写入testmail.txt文件中 3.指定在每天凌晨4:00将该时间点之前的系统日志信息(/var/log/messages )备份到目录下/backup,备份后日志文件名显示格式logfileYY-MM-DD-HH-MM 4、配置ntp时间服务器,确保客户端主机能和服务主机同步时间
作业1:区别如上文章所述
作业2 :
#创建一个第一天作业目录day1 [root@timeserver ~]# mkdir day1 #在day1目录中创建文件 testmail.txt [root@timeserver day1]# touch testmail.txt #使用crontab命令循环执行任务 [root@timeserver day1]# crontab -e #编辑如下内容 0 9 * * 1 date >> /root/day1/testmail.txt 为方便测试将要求改为了 每周五20:23将时间写入文件要求3:
#在day1目录下创建backup目录 [root@timeserver day1]mkdir backup #指定时间备份文件 [root@timeserver day1]crontab -e #编辑以下内容 0 4 * * * cp /var/log/messages /root/day1/backup/logfile`date +\%Y-\%m-\%d-\%H-\%M`注: 此处需要使用 反引号` ` 和反斜杠 \ 转译
要求4:时间服务器配置文章
思维导图
RHCE---Linux的计划任务由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“RHCE---Linux的计划任务”