[步骤] Rocky Linux & RHEL 自定义 YUM 源的制作

步骤一:制作自定义 YUM 源

1.1 安装从软件源下载安装包和依赖包到本地的工具

# yum install yum-utils -y

(注意:这里假设的情况是本系统可以正常使用 YUM 安装软件)

1.2 获取某软件的安装包和此软件的依赖包

# yumdownloader --resolve --destdir /tmp/ansible ansible

(补充:这里以将 ansible 安装包和 ansible 的依赖包下载到本地的 /tmp/ansible 目录为例)

(注意:这里假设的情况是本系统可以正常使用 YUM 安装软件)

1.3 获取生成 YUM 源的工具软件包

# yumdownloader --resolve --destdir /tmp/ansible createrepo

(补充:这里以将 createrepo 安装包和 createrepo 的依赖包下载到本地的 /tmp/ansible 目录为例)

(注意:这里假设的情况是本系统可以正常使用 YUM 安装软件)

1.4 制作 YUM 源

1.4.1 进入到软件的安装包、依赖包和生成 YUM 源的工具软件包所在的目录
# cd /tmp/ansible

(补充:这里以进入到目录 /tmp/ansible 为例)

1.4.2 安装生成 YUM 源的工具
# rpm -ivh deltarpm & rpm -ivh python-deltarpm & rpm -ivh createrepo


补充:这里安装的软件包有
1) deltarpm
2) python-deltarpm
3) createrepo

1.4.3 进入到上一级目录
# cd ../
1.4.4 创建 ansible 的 YUM 源
# createrepo ansible

(补充:这里以用 ansible 目录里的软件包创建 YUM 源为例)

步骤二:使用自定义 YUM 源

2.1 创建新的 repo 文件

# vim /etc/yum.repos.d/ansible.repo

创建以下内容:

[ansible]
name=ansible
baseurl=file:///tmp/ansible
gpgcheck=0
enabled=1


补充:这里以
1) 文件名为 ansible
2) 文件标题为 ansible
3) YUM 源的软件包位置在 /tmp/ansible
4) 不进行 gpgcheck 检测
5) 启用此 YUM 源
为例

2.2 使用自定义 YUM 源安装软件

# yum install ansible -y

(补充:这里以安装 ansible 软件为例)

[命令] Linux 命令 tput 的使用 (设置光标和文本的属性)

正文:

内容一:tput 的简单使用案例

1.1 使用案例一:清屏

# tput clear

1.2 显示当前命令行宽度

# tput cols

内容二:tput 的光标设置案例

2.1 使用案例二:让光标可见和不可见

2.1.1 让光标不可见
# tput civis
2.1.2 让光标可见
# tput cnorm

2.2 保存当前光标的位置

# tput sc

2.3 将光标条跳转到第某行的第某列

# tput cup 20 30

(补充:这里以将光标跳转到第 20 行的第 30 列为例)

2.4 显示输出结果

# tput rc

内容三:tput 的颜色设置案例

3.1 tput 的颜色设置选项

1) 0,黑色
2) 1,蓝色
3) 2,绿色
4) 3,青色
5) 4,红色
6) 5,洋红色
7) 6,黄色
8) 7,白色

3.2 tput 的颜色设置案例

3.2.1 设置字体颜色
# tput setaf 1

(补充:这里以把字体设置成蓝色为例)

3.2.2 设置背景颜色
# tput setab 4

(补充:这里以把背景设置成红色为例)

3.3.3 同时设置字体的颜色和背景的颜色
# tput setaf setab

(补充:这里以把字体设置成蓝色把背景设置成红色为例)

内容四:tput 的字体格式设置案例

4.1 设置字体加粗

# tput bold

4.2 设置字体有下划线

# tput underline

内容五:tput 的组合设置案例

5.1 在位置第某行的第某列输出信息

# tput sc ; tput cup 23 45 ; echo “Output this location is 23/45” ; tput rc


补充:
1) 这里的 tput sc 是保存当前的光标位置
2) 这里的 tput cup 23 45 是将光标移动到第 23 行的第 45 列
3) 这里的 echo “Output this location is 23/45” 是输出内容 “Output this location is 23/45”
4) 这里的 tput rc 是将光标回到刚刚保存的光标位置
5)这里以在第 23 行的第 45 列输出信息 “Output this location is 23/45” 为例

参考文献:

tput

[步骤] RHEL Relax-and-Recover (ReaR) 的使用 (备份系统)

注意:

默认情况下 ReaR 创建的备份只恢复存储的布局和启动加载器,不恢复实际的用户数据和系统文件

正文:

步骤一:安装 Relax-and-Recover (ReaR)

# yum install rear

步骤二:配置 Relax-and-Recover (ReaR)

2.1 案例一:配置 Relax-and-Recover (ReaR) (同时产生 2 份备份文件)

# vim /etc/rear/local.conf

创建以下内容:

......
OUTPUT=ISO
OUTPUT_URL=file:///tmp/rescue_system/


补充:这里以
1) 以 ISO 的格式存储备份 (我们可以选择 ISO 格式或 USB 格式,分别用于 ISO 引导或 USB 引导)
2) 将备份存储在本地 /tmp/rescue_system/ 目录为例


注意:这样的设置会创建 2 个备份文件:
1) 第 1 个配置文件会在用户设置的本地目录 /tmp/rescue_system//rear-localhost.iso 里
2) 第 2 个配置文件会在 Relax-and-Recover (ReaR) 默认的本地目录 /var/lib/rear/output/ 里

2.1 案例二:配置 Relax-and-Recover (ReaR) (只产生 1 份备份文件)

# vim /etc/rear/local.conf

创建以下内容:

......
OUTPUT=ISO
BACKUP=NETFS
OUTPUT_URL=null
BACKUP_URL="iso:///tmp/rescue_system/"
ISO_DIR="output location"


补充:这里以
1) 以 ISO 的格式存储备份 (我们可以选择 ISO 格式或 USB 格式,分别用于 ISO 引导或 USB 引导)
2) 将备份存储在本地 /tmp/rescue_system/ 目录为例

步骤三:创建救援系统

# rear -v mkrescue
......
Wrote ISO image: /var/lib/rear/output/rear-rhel8.iso (125M)
Copying resulting files to file location


注意:当出现以下内容时,则代表备份成功
……
Wrote ISO image: /var/lib/rear/output/rear-rhel8.iso (125M)
Copying resulting files to file location

参考文献:

https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-relax-and-recover_rear

[内容] Linux ls 命令输出结果的解析

内容一:ls 命令输出结果

# ls
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu

(补充:这里以显示文件名为 mingyuzhu 的文件)

内容二:ls 命令输出结果简介

2.1 第 1 个字母 (输出结果的第 1 段)

# ls
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
|

1) – 普通文件 (file)
2) b 块设备 (block device)
3) c 字符串 (char device)
4) d 目录 (directory)
5) l 链接文件 (link file)
6) p 管道文件 (pipe file)
7) s 套接字文件 (socket)

2.2 第 2 个到第 4 个字母 (输出结果的第 2 段)

# ls
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
 |||
2.2.1 第 2 个字母 (输出结果的第 2 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
 |

1) – 所属主没有读权限
2) r 所属主有读权限 (read)

2.2.2 第 3 个字母 (输出结果的第 2 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
  |

1) – 所属主没有写权限
2) w 所属主有写权限 (write)

2.2.3 第 4 个字母 (输出结果的第 2 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
   |

1) – 所属主没有执行权限
2) x 所属主有执行权限 (execute)
3) s 所属主有执行权限 (execute),且让所有的用户都可以执行此文件 (Set UID)
4) S 所属主没有执行权限,但让所有的用户都可以执行此文件 (Set UID)

2.3 第 5 个到第 7 个字母 (输出结果的第 3 段)

drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
    |||
2.3.1 第 5 个字母 (输出结果的第 3 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
    |

1) – 所属组没有读权限
2) r 所属组有读权限 (read)

2.3.2 第 6 个字母 (输出结果的第 3 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
     |

1) – 所属组没有写权限
2) w 所属组有写权限 (write)

2.3.3 第 7 个字母 (输出结果的第 3 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
      |

1) – 所属组没有执行权限
2) x 所属组有执行权限 (execute)
3) s 所属组有执行权限 (execute),且让所有的用户在此目录下创建的目录的所属组都和此目录相同 (Set GID)
4) S 所属组没有执行权限,且让所有的用户在此目录下创建的目录的所属组都和此目录相同 (Set UID)

(注意:目录的执行权限代表可以进入这个目录)

2.4 第 8 个到第 10 个字母 (输出结果的第 4 段)

drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
       |||
2.4.1 第 8 个字母 (输出结果的第 4 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
       |

1) – 其他用户没有读权限
2) r 其他用户有读权限 (read)

2.4.2 第 9 个字母 (输出结果的第 4 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
        |

1) – 其他用户没有写权限
2) w 其他用户有写权限 (write)

2.4.3 第 10 个字母 (输出结果的第 4 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
         |

1) – 其他用户没有执行权限
2) x 其他用户有执行权限 (execute)
3) s 所属组有执行权限 (execute),且只有创建此文件的用户和 root 用户可以删除 (Sticky Bit)
4) S 所属组没有执行权限,且只有创建此文件的用户和 root 用户可以删除 (Sticky Bit)

2.5 第 11 个字母 (输出结果的第 5 段)

drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
           ||

1) 如果是文件,则代表此文件的链接数

(注意:此链接数包含软链接数和硬链接数)

2) 如果是目录,则代表此目录内的目录数

(注意:此最低值为 2,因为每个目录都至少包含 . (1 个点代表当前目录) 和 .. (2 个点代表此目录第上级目录) 这 2 个隐藏目录)

2.6 第 11 个到第 12 个字母 (输出结果的第 5 段)

drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
              ||||||||| |||||||||
2.6.1 第 11 个字母 (输出结果的第 5 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
              |||||||||

此项目的所属主

(补充:这里的所属主显示的是 mingyuzhu)

2.6.2 第 12 个字母 (输出结果的第 5 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
                        |||||||||

此项目的所属组

(补充:这里的所属组显示的是 mingyuzhu)

2.7 第 13 个字母 (输出结果的第 6 段)

drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
                                  ||||

此项目的大小

(补充:这里显示的大小是 4.0K)

2.8 第 14 个到第 16 个字母 (输出结果的第 7 段)

drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
                                       ||| || |||||
2.8.1 第 14 个字母 (输出结果的第 7 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
                                       |||

文件最后修改的月份

2.8.2 第 15 个字母 (输出结果的第 7 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
                                           ||

文件最后修改的日期

2.8.3 第 16 个字母 (输出结果的第 7 段)
drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
                                              |||||

文件最后修改的时间

2.9 第 17 个字母 (输出结果的第 8 段)

drwxr-x--- 21 mingyuzhu mingyuzhu 4.0K Aug 29 14:34 mingyuzhu
                                                    |||||||||

文件名