RHCE---第一章:例行性工作(任务计划)

第一章:例行性工作(任务计划)

RHCSA复习:

命令回顾:
pwd   ----#打印当前路径目录
/root

touch命令:
touch a b c   ---创建a b c 三个文件在当前路径下

cd命令:
cd .    --------匹配当前目录
cd ..       -------匹配上一级目录

ctrl+c :终止当前命令
ctrl+l 或 clear :清屏

文件类型:
l:链接文件;
c:字符设备文件;
p:进程文件
s:可作为套接字文件

ls /    -----列出/目录下的文件(只列出文件名)
ls -l /   ------以长格式列出/目录下的文件(文件名及其他详细内容)
ll /     ----- ls -l / 的简介格式(显示根目录下所有的文件及属性)
ll -d /  #显示/目录文件及属性

在进入vim模式对文件进行编写或修改时,可以通过i/I,s/S,o/O,a/A任意一个字符进入插入模式,在插入模式中,通过键盘左上角的Esc键退出插入模式进入命令模式。
dd:删除光标所在行
yy:复制光标所在行
p:粘贴复制的行内容
NG:跳转到文件第N行(1G:跳转到文件第一行)

mkdir命令:
mkdir :创建目录文件(格式:mkdir 目录文件路径)
	创建多级目录:mkdir 多级目录文件路径 -pv
mkdir  /{1,2,3}    ----创建目录文件

mv移动命令:
mv a /1      -----将a文件移动到根目录下的1文件中

cp复制命令:
cp b /2       ------将b文件复制到根目录下的2文件中

rm删除命令:
rm -r /3       ------删除根目录下的3文件(需要确认是否删除)
rm -rf /2      ------强制删除,删除根目录下的2文件
rm -rf /       ------删除根目录下的所有文件,慎重选择删除

find查找命令:
find / -name 123  : 查找根目录下含有文件123的所有文件路径

用户命令的增删改查:
useradd zhangsan               -----添加zhangsan用户
usermod -l xiaosan zhangsan    -----修改zhangsan的用户为xiaosan
userdel -r xiaosan             -----删除xiaosan用户及xiaosan用户下的所有内容(-r是递归)
id 用户名                       -----查找用户是否存在
添加用户时,只能在管理员模式下进行,且只能一个用户一个用户的添加,不能同时添加多个用户。

修改文件权限:
[root@localhost ~]# touch a
[root@localhost ~]# ll a
-rw-r--r--. 1 root root 0 Oct 14 14:51 a
[root@localhost ~]# chmod 755 a
[root@localhost ~]# ll a
-rwxr-xr-x. 1 root root 0 Oct 14 14:51 a
[root@localhost ~]# chmod u=r a 
[root@localhost ~]# ll a
-r--r-xr-x. 1 root root 0 Oct 14 14:51 a
[root@localhost ~]# chmod ugo=rw a
[root@localhost ~]# ll a
-rw-rw-rw-. 1 root root 0 Oct 14 14:51 a
[root@localhost ~]# chmod a=rw a
[root@localhost ~]# ll a
-rw-rw-rw-. 1 root root 0 Oct 14 14:51 a

安装软件–直接基于rpm包进行安装

1,安装包的安装方式:本地源(或网络源)

/dev/cdrom -----> /dev/sr0

#mount /dev/sr0 /mnt ------挂载

在这里插入图片描述

2,dnf-3 <---- dnf <---- yum /etcyum.repos.d/*.repo

在这里插入图片描述

# dnf install lrzsz -y

一,单一执行的例行性工作

单一执行的例行性工作:仅处理执行一次就结束了

1,at配置文件

  • /etc/at.allow,写在该文件的人可以使用at命令

  • /etc/at.deny,黑名单

  • 两个文件如果都不存在,只有root能使用

#at工作调度对应的系统服务
[root@localhost ~]# ps -ef | grep at
[root@localhost ~]# systemctl status atd
#at的工作文件存放目录
[root@localhost ~]# ll  /var/spool/at
#at工作的日志文件
[root@localhost ~]# ll /var/log/cron
at命令执行过程分析
  • 第一步:寻找/etc/at.allow (白名单)是否存在,写在该文件中用户才可执行at命令
  • 第二步:若/etc/at.allow不存在,则寻找/etc/at.deny(黑名单)文件,写在该文件中的用户不能使用at命令
  • 第三步:若两个文件都不存在则只有root用户可以使用at命令
  • 注意:若拒绝某用户使用at命令则可以将用户名写入到/etc/at.deny中

2,at命令详解

命令格式:at [参数] [时间]

在这里插入图片描述

参数:
-V 显示版本
-m 当任务完成之后,即使没有标准输出,将给用户发送邮件
-l atq的别名,可列出目前系统上面的所有该用户的at调度
-d atrm的别名,可以取消一个在at调度中的工作
-v 使用较明显的时间格式,列出at调度中的任务列表
-c 可以列出后面接的该项工作的实际命令内容(脚本)
-f 从文件中读取作业
时间格式:
HH:MM  在今天的HH小时MM分钟执行,如果今天的这个时间点已经过了,则明 
天执行
HH:MM YYYY-MM-DD  强制规定在某年某月的某一天的特殊时刻进行该工作  MMDDYY
now + 2 minutes 从现在开始几分钟minutes, hours, days, or weeks

在这里插入图片描述

#定义三分钟之后显示hello
[root@server ~]# at now + 3 minutes

wall广播命令:

在这里插入图片描述

[root@localhost ~]# vim job1         --------创建一个任务
    touch at_file
    mkdir /test
[root@localhost ~]# at 12:12 2024-10-15 -f job1
warning: commands will be executed using /bin/sh
job 3 at Tue Oct 15 12:12:00 2024

注意:由于at执行程序只有一次,所以at的时间是24小时制

[root@localhost ~]# atq
3	Tue Oct 15 12:12:00 2024 a root
[root@localhost ~]# at -c 3    ------查看任务3的内容
.........
${SHELL:-/bin/sh} << 'marcinDELIMITER72794e31'
touch at_file
mkdir /test

在这里插入图片描述

二,循环执行的例行性工作crond

crontabs程序名 ---> crond程序进程 ---> crontab命令用法

crontab在编辑工作时类似于vim命令模式。

[root@localhost ~]# rpm -qa  | grep crontab
crontabs-1.11-27.20190603git.el9_0.noarch
[root@localhost ~]# crontab -e -u zhou     -------使用用户zhou进行例行性工作编辑
  • crond 是 Linux 下用来周期地执行某种任务或等待处理某些事件的一个守护进程,在安装完成操作系统后,默认会安装 crond 服务工具,且 crond 服务默认就是自启动的,若需要安装则执行如下命令:
[root@server ~]# yum  install  crontabs    # 安装,注意包名
[root@server ~]# systemctl status  crond   # 查看状态
  • crond 进程每分钟会定期检查是否有要执行的任务,如果有,则会自动执行该任务,crontab 命令需要 crond 服务支持

  • linux 任务调度的工作主要分为以下两类:

    • 系统执行的工作**:**系统周期性所要执行的工作,如备份系统数据、清理缓存
    • 个人执行的工作:某个用户定期要做的工作,例如每隔 10 分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
1, crontab的工作过程
  • 当系统中有 /etc/cron.allow 文件时,只有写入此文件的用户可以使用 crontab 命令,没有写入的用户不能使用 crontab 命令。同样,如果有此文件,/etc/cron.deny 文件会被忽略,因为 /etc/cron.allow 文件的优先级更高
  • 当系统中只有 /etc/cron.deny 文件时,写入此文件的用户不能使用 crontab 命令,没有写入文件的用户可以使用 crontab 命令
  • 两个文件如果都不存在,只有root能使用
  • crontab 执行的每一项工作都会被 记录到 /var/log/cron 这个日志文件中
  • 当用户使用 crontab 新建工作之后,该项工作就会被记录到 /var/spool/cron/目录里面
#crontab工作调度对应的系统服务
[root@localhost ~]# systemctl status crond
#crontab工作的日志文件
[root@localhost ~]# ll /var/log/cron
#用户定义计划任务的文件所在目录
[root@localhost ~]# ll /var/spool/cron/

2, crontab命令详解
crontab  [-u  user]  [-l| -r | -e]  

执行crontab 命令就是在修改 /var/spool/cron 中的定时任务文件。

循环执行的例行性工作:每隔一定的周期就需要执行一次

[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计划任务的时间格式:

0-590-231-311-120-7 0/7

date:月日时分年.秒

crontab计划任务的时间格式中的特殊符号:

特殊字符含义
*代表任何时刻
,代表分隔时段
- 0-59代表一段时间范围
/数字指定时间的间隔频率,例如每 3 分钟进行一次,*/3

注:%在crontab里面有特殊含义,如果有命令里面需要使用%,需要使用\转义。

#每天早上9点整说good morning
[root@server ~]# crontab -e
0 9 * * * wall "good morning"

注:wall命令用于向系统当前所有打开的终端上输出信息。
通过wall命令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall命令会从标准输入设备读取数据,然后再把所得到的数据传送给所有终端机用户。

定时邮件发送任务:

  • 设置邮件发送告警功能,每1分钟发送一封邮件

  • 安装邮件服务

[root@server ~]# yum  install  mailx  -y
  • 配置邮件服务
[root@server ~]# vim  /etc/mail.rc
# 最后一行添加以下内容:
set  from=lxx1065372838@163.com
set  smtp=smtp.163.com
set  smtp-auth-user=lxx1065372838@163.com
set  smtp-auth-password=HUamwakqNSvYwQDe
set  smtp-auth=login
# 注意:该文件输入完毕有的系统需要强制保存退出,输入wq!
  • 测试邮件服务
[root@server ~]# echo 123 | mail -s "123" lxx1065372838@163.com
  • 设置定时任务
[root@server ~]# crontab  -e
MAILTO=lxx1065372838@163.com
* * * * * echo "警告" | mail -v -s "test " lxx1065372838@163.com 
书写定时任务的注意事项
  • 6 个字段都不能为空,如果不确定则使用*表示任意时间
  • crontab命令任务的最小时间单位为分钟,最大有效时间为月,如:2024年某时执行、3点30分30秒这样的时间日期无法被识别
  • 定义时间时,日期和星期最好不要一起出现,由于都是以天为单位,非常让管理员混淆
  • 在定时任务中不能,不管是写命令还是在脚本中写命令,最好都用绝对路径,相对路径有时会报错
3 ,系统的计划任务(对系统所有用户都生效的任务文件)
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# 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) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

当需要同一时间执行多个脚本时,可以将这多个脚本放在一个目录下,然后使用run-parts来执行。

run-parts:该命令可将后面接的“目录”内的所有文件找出来执行。

可唤醒停机期间的工作任务

anacron 可以处理关机状态时未执行的计划任务,anacron不能指定何时执行某项任务,而是以天为单位或是在开机后立刻进入anacron的操作(/etc/anacrontab)。它会去检测停机期间应该进行但是并没有进行的crontab任务,并将该任务执行一遍,然后anacron就会自动停止了

作业1
1. 每分钟执行命令
2. 每小时执行
3. 每天凌晨3点半和12点半执行脚本
4. 每隔6小时,相当于6,12,18,24点半执行脚本
5. 30代表半点,8-18/2表示早上8点到下午18点之间每隔2小时执行脚本
6. 每天晚上9点30重启nginx
7. 每月1和10号凌晨4点45执行脚本
8. 每周六和周日凌晨1点10分执行命令
9. 每天18点到23点之间,且每隔30分钟执行一次
10. 每隔一小时执行一次
11. 在4月份的周一到周三的上午11点执行脚本
12. 每天早上7点到上午11点且每2小时执行一次
13. 每天6点执行脚本
14. 每周六凌晨4点执行
15. 每周六凌晨4点05执行
16. 每天8:40执行
17. 在每天10:31且每隔2小时执行一次
18. 每周一到周五2:00执行
19. 每周一到周五8:00和9:00执行
20. 每天10:00,16:00执行

答案:
1.  */1 * * * * cmd
2.  0 * * * * cmd
3.  30 3,12 * * * cmd
4.  30 6,12,18,24 * * * cmd
5.  30 8-18/2 * * * cmd
6.  30 21 * * * /usr/bin/systemctl restart nginx
7.  45 4 1,10 * * cmd
8.  10 1 * * 6,0 cmd
9.  0,30 18-23 * * * cmd
10.  0 */1 * * * cmd
11.  0 11 * 4 1-3 cmd
12.  0 7-11/2 * * * cmd
13.  0 6 * * * cmd
14.  0 4 * * 6 cmd
15.  5 4 * * 6 cmd
16.  40 8 * * * cmd
17.  31 10/2 * * * cmd
18.  0 2 * * 1-5 cmd
19.  0 8,9 * * 1-5 cmd
20.  0 10,16 * * * cmd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值