shell脚本一键搭建本地yum源

该脚本主要实现了以下几个功能:

  1. 检查光盘(设备名 sr0)是否已经挂载到系统中。
  2. 如果光盘未挂载,将其挂载到 /mnt 目录。
  3. 备份 /etc/yum.repos.d 目录下的所有 .repo 文件到新建的 repo.bak 目录中。
  4. 创建一个名为 haha.repo 的本地 yum 源配置文件,指向挂载光盘中的 BaseOS 和 AppStream 目录,并设置 gpgcheck 为 0(即不进行 GPG 校验)。
  5. 清理 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] 仓库:名称为 appstreambaseurl 指向挂载光盘的 /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

测试:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值