该脚本主要实现了以下几个功能:
- 检查光盘(设备名
sr0)是否已经挂载到系统中。 - 如果光盘未挂载,将其挂载到
/mnt目录。 - 备份
/etc/yum.repos.d目录下的所有.repo文件到新建的repo.bak目录中。 - 创建一个名为
haha.repo的本地 yum 源配置文件,指向挂载光盘中的BaseOS和AppStream目录,并设置gpgcheck为 0(即不进行 GPG 校验)。 - 清理 yum 缓存并重新生成 yum 缓存,以使其生效新的 yum 源配置。
检查光盘挂载状态
#!/bin/bash
echo "---正在检查光盘是否挂载---"
df | grep "sr0" &> /dev/null
if [ $? -eq 0 ];then
echo "---光盘已挂载---"
else
echo "---光盘未挂载,正在挂载光盘---"
mount /dev/sr0 /mnt >> /dev/null
fi
- 首先,脚本输出提示信息
---正在检查光盘是否挂载---。 - 然后通过
df | grep "sr0"命令来检查文件系统信息(df)中是否包含光盘设备名sr0的相关记录。将这个命令的输出重定向到/dev/null(&> /dev/null),即丢弃其输出内容(标准输出和标准错误输出都丢弃)。 - 通过检查上一个命令的退出状态码(
$?)来判断光盘是否挂载。如果退出状态码为 0,说明df | grep "sr0"命令执行成功,也就是找到了光盘已挂载的记录,此时输出---光盘已挂载---;否则,输出---光盘未挂载,正在挂载光盘---,并执行mount /dev/cdrom /mnt命令将光盘设备(/dev/cdrom)挂载到/mnt目录,同样将挂载命令的输出重定向到/dev/null以隐藏可能的挂载提示信息
备份 yum 源配置文件:
cd /etc/yum.repos.d
mkdir repo.bak
mv *.repo repo.bak
echo "---备份已完成---"
- 切换到
/etc/yum.repos.d目录,这是存放 yum 源配置文件的默认目录。 - 创建一个名为
repo.bak的新目录,用于存放备份的 yum 源配置文件。 - 使用
mv *.repo repo.bak命令将该目录下所有以.repo结尾的文件移动到新建的repo.bak目录中,完成备份操作,并输出---备份已完成---
创建新的本地 yum 源配置文件:
echo "[base]
name=base
baseurl=file:///mnt/BaseOS
gpgcheck=0
[app]
name=appstream
baseurl=file:///mnt/AppStream
gpgcheck=0" >haha.repo
- 使用
echo命令输出一段文本内容,这段内容是按照 yum 源配置文件的格式书写的。定义了两个 yum 源仓库:[base]仓库:名称为base,其baseurl指向挂载光盘的/mnt/BaseOS目录,并且设置gpgcheck为 0,表示不进行 GPG 校验。[app]仓库:名称为appstream,baseurl指向挂载光盘的/mnt/AppStream目录,同样gpgcheck为 0。
- 将上述输出内容重定向到一个新创建的文件
haha.repo中,从而创建了新的本地 yum 源配置文件。
清理并重新生成 yum 缓存:
yum clean all >> /dev/null
yum makecache
echo "---本地yum源搭建完成---"
cd - >> /dev/null
- 首先执行
yum clean all命令清理 yum 现有的所有缓存信息,将其输出重定向到/dev/null以隐藏清理过程中的输出信息。 - 接着执行
yum makecache命令重新生成 yum 缓存,使其能够识别新创建的本地 yum 源配置。 - 最后输出
---本地yum源搭建完成---提示信息,表示整个本地 yum 源搭建过程结束,并通过cd -命令返回之前所在的目录(即切换到执行脚本时所在的原始目录),同样将该命令的输出重定向到/dev/null
#!/bin/bash
echo "---正在检查光盘是否挂载---"
df | grep "sr0" &> /dev/null
if [ $? -eq 0 ];then
echo "---光盘已挂载---"
else
echo "---光盘未挂载,正在挂载光盘---"
mount /dev/sr0 /mnt >> /dev/null
fi
cd /etc/yum.repos.d
mkdir repo.bak
mv *.repo repo.bak
echo "---备份已完成---"
echo "[base]
name=base
baseurl=file:///mnt/BaseOS
gpgcheck=0
[app]
name=appstream
baseurl=file:///mnt/AppStream
gpgcheck=0" >haha.repo
yum clean all >> /dev/null
yum makecache
echo "---本地yum源搭建完成---"
cd - >> /dev/null
测试:

1348

被折叠的 条评论
为什么被折叠?



