公司网站空间申请,网站建设 地址: 上海石门二路,wordpress 修改子主题,python 仿wordpress第一章 例行性工作
1、单一执行的例行性工作
单一执行的例行性工作#xff1a;仅处理执行一次就结束了 .
1.1 at命令的工作过程 /etc/at.allow#xff1a;里面的用户是可以使用at命令的 --- 但实际上这个allow文件不存在#xff0c;所以指全部的人都可以使用该命令#…第一章 例行性工作
1、单一执行的例行性工作
单一执行的例行性工作仅处理执行一次就结束了 .
1.1 at命令的工作过程 /etc/at.allow里面的用户是可以使用at命令的 --- 但实际上这个allow文件不存在所以指全部的人都可以使用该命令 /etc/at.deny黑名单 注两个文件如果都不存在只有root能使用 相关命令 #at工作调度对应的系统服务
[rootlocalhost ~]# ps -ef | grep at
[rootlocalhost ~]# systemctl status atd --- 查看atd状态做实验前可以直接重启atd方便
[rootlocalhost ~]# systemctl restart atd #atd就相当于是at的守护进程
#at的工作文件存放目录
[rootlocalhost ~]# ll /var/spool/at
#at工作的日志文件
[rootlocalhost ~]# ll /var/log/cron
监测时间watch -n x cat 文件
查看日志tail -f /var/log/cron 1.2 at命令详解 命令格式at [参数] [时间] 参数
-m 当任务完成之后即使没有标准输出将给用户发送邮件
-l atq的别名可列出目前系统上面的所有该用户的at调度
-d 是atrm的别名,可以取消一个在at调度中的工作
-v 使用较明显的时间格式列出at调度中的任务列表
-c 可以列出后面接的该项工作的实际命令内容脚本
-f 从文件中读取作作业
时间格式
HH:MM 在今天的HH小时MM分钟执行如果今天的这个时间点已经过了则明
天执行
HHMM YYYY-MM-DD 强制规定在某年某月的某一天的特殊时刻进行该工作 MMDDYY
now 2 minutes 从现在开始几分钟minutes, hours, days, or weeks 实验例子 #定义三分钟之后显示hello
[rootserver ~]# at now 3 minutes
用命令查看写的命令任务at -l atq去查看
删除单一命令at -d 序号 atrm 序号
写命令按ctrld结束提交2、循环执行的例行性工作crond 循环执行的例行性工作每隔一定的周期就需要执行一次 2.1 crontab的工作过程 /etc/cron.allow #写在该文件的人可以使用cron命令 /etc/cron.deny #黑名单 两个文件如果都不存在只有root能使用 相关命令 #crontab工作调度对应的系统服务
[rootlocalhost ~]# systemctl status crond#crontab工作的日志文件
[rootlocalhost ~]# ll /var/log/cron#用户定义计划任务的文件所在目录
[rootlocalhost ~]# ll /var/spool/cron/2.2 crontab命令详解 [rootlocalhost ~]# crontab --help
Usage:crontab [options] filecrontab [options]crontab -n [hostname]
Options:-u user define user-e edit users crontab --- 编辑用户的循环任务-l list users crontab-r delete users 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计划任务的时间格式
分时日月周0-590-231-311-120-7 注意若存在冲突则是或的关系在周不是*的情况下
在周是*的情况下日期的优先级高一点 当想把IP地址信息写入一个文件里面的时候需要在循环执行任务里面加上路径PATH。 --- 跟系统的计划任务一样 [rootmaster01 ~]# crontab -e no crontab for root - using an empty one crontab: installing new crontab [rootmaster01 ~]# crontab -l * * * * * ip a show ens160 /root/ens160 [rootmaster01 ~]# watch -n 1 ls -l /root/ 发现我们写的任务执行不了 将路径写入到crontab -e里面:现在就可以正常执行任务了 date 月日时分年秒
crontab计划任务的时间格式中的特殊符号
特殊字符含义*代表任何时刻,代表分隔时段- 0-59代表一段时间范围/数字指定时间的间隔频率例如每 3 分钟进行一次*/3
注%在crontab里面有特殊含义如果有命令里面需要使用%需要使用\转义。 #每天早上9点整说good morning
[rootserver ~]# crontab -e
0 9 * * * wall good morning 注wall命令用于向系统当前所有打开的终端上输出信息。 通过wall命令可将信息发送给每位同意接收公众信息的终端机用户若不给予其信息内容则wall命令会从标准输入设备读取数据然后再把所得到的数据传送给所有终端机用户。 2.3 系统的计划任务(对系统所有用户都生效的任务文件) [rootlocalhost ~]# cat /etc/crontab
SHELL/bin/bash
PATH/sbin:/bin:/usr/sbin:/usr/bin
MAILTOroot
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed 若是有很多任务需要一起执行就把这些任务放在一个文件夹里面然后用run-parts写入到/etc/crontab中 例子
[rootmaster01 ~]# bash /root/write.sh
[rootmaster01 ~]# cat /root/write1.sh
同时想要执行这些任务。
将这两个任务放在一个文件里面
[rootmaster01 ~]# mkdir /root/Write --- 创建一个Write文件夹专门放write.sh和write1.sh
[rootmaster01 ~]# mv write.sh write1.sh /root/Write
[rootmaster01 ~]# vim /etc/crontab
* * * * * root run-parts /root/Write
完成课堂练习
2.3.1实验一定义三分钟之后显示hello at now 3 minutes
at wall hello 2.3.2实验二 : 每天早上9点整说good morning crontab -e
00 09 * * * wall good morning 注释 wall命令用于向系统当前所有打开的终端上输出信息。 通过wall命令可将信息发送给每位同意接收公众信息的终端机用户若不给予其信息内容则wall命令会从标准输入设备读取数据然后再把所得到的数据传送给所有终端机用户。 2.3.3实验三指定某些用户不可以执行计划任务 /etc/at.deny
/etc/cron.deny 2.3.4实验四系统级别例行性任务 [rootlocalhost ~]# vim /etc/crontab 2.3.5实验五创建一个以当前时间的文件循环执行的工作例如当前时间为11:48文件为file-11-48.txt date命令date %R date %H%M注意记得加转义字符\不然识别不了就执行不了任务。 2.3.6实验六写一个循环任务直接将一个write.sh文件的内容追加到/root/file 步骤
1.创建一个write.sh文件并写入内容echo hello /root/file
2.[rootmaster01 ~]# bash /root/write.sh ---执行一次
3.[rootmaster01 ~]# cat /root/file --- 可以看到file文件里面已经有内容了
hello
4.[rootmaster01 ~]# vim /etc/crontab --- 将该任务写进系统计划任务里面
* * * * * root bash /root/write.sh