【RedHat】创建第一个Shell脚本——生成本地yum源和国内阿里云源

Shell脚本是一种用来批量执行一系列命令的脚本文件,毋庸置疑就是为了方便偷懒,执行一个Shell脚本就能完成所有指令。

要想写一个脚本,需要做以下三件事:

  • 写一个脚本
  • 允许Shell执行它
  • 把它放到Shell能找到的地方

写一个脚本–>需要文本编辑器才能写–>可以用系统自带的vi或者vim编辑器,或者自行选择使用

前期:加载CD/DVD ISO文件

点击右下角光盘标识,有如下显示就表示连接了ISO文件

在这里插入图片描述
点击设置,则可以显示正在使用rhel9的ISO文件

在这里插入图片描述

(一)搭建本地yum仓库的Shell脚本(简易版)

  • 这里将repo.sh 文件创建在root目录下,记住脚本的路径为/root。
vim repo.sh  	#采用vim文本编辑器创建并编辑repo.sh文件
##############################################################################

#DESCRIPTION:建立本地YUM仓库
#NOTES:
#1、新建目录
#2、配置本地YUMISO文件(挂载)
#3、配置本地YUM源文件local.repo 
#4、清除历史YUM源缓存
#5、建立新的YUM源缓存
#6、测试本地YUM源
#AUTHOR:Ley 
#CREATED2024/3/23

###############################################################################
#!/bin/bash
mkdir -p /media/rhel9
umount -f /dev/sr0
mount /dev/sr0 /media/rhel9
df -h
rm -rf /etc/yum.repos.d/*.repo
echo '[rhel_BaseOS]
name=rhel_BaseOS
baseurl=file:///media/rhel9/BaseOS
gpgcheck=0
[rhel_Appstream]
name=rhel_Appstream
baseurl=file:///media/rhel9/AppStream
gpgcheck=0' > /etc/yum.repos.d/rhel9.repo
cat /etc/yum.repos.d/rhel9.repo
systemctl daemon-reload
yum clean all
yum makecache
yum install httpd
echo '/dev/sr0        /media/rhel9    iso9660 defaults        0       0' >> /etc/fstab

##############################################################################
#脚本是写给人看的,所以我们在写脚本时一般都需要注释,在脚本的开头,就需简单介绍脚本的作用和功能,让别人能轻松看懂。
#每个公司企业有不同的格式,这里只是一个举例格式,也可以按照自己的方式写注释

#DESCRIPTION:建立本地YUM仓库
#NOTES:
#1、新建目录
#2、配置本地YUMISO文件(挂载)
#3、配置本地YUM源文件local.repo 
#4、清除历史YUM源缓存
#5、建立新的YUM源缓存
#6、测试本地YUM源
#AUTHOR:Ley 
#CREATED2024/3/23

###############################################################################
#脚本解释器
#!/bin/bash
#脚本内容:

#创建挂载目录
mkdir -p /media/rhel9
#取消/dev/sr0的挂载		
umount -f /dev/sr0
#将/dev/sr0挂载至/media/rhel9目录		
mount /dev/sr0 /media/rhel9	
#查看挂载结果是否挂载成功			
df -h
#删除/etc/yum.repos.d目录下的所有.repo文件		
rm -rf /etc/yum.repos.d/*.repo	
#使用echo命令创建rhel9.repo文件并将''内容写入/etc/yum.repos.d/rhel9.repo文件中		
echo '[rhel_BaseOS]
name=rhel_BaseOS
baseurl=file:///media/rhel9/BaseOS
gpgcheck=0
[rhel_Appstream]
name=rhel_Appstream
baseurl=file:///media/rhel9/AppStream
gpgcheck=0' > /etc/yum.repos.d/rhel9.repo
#查看rhel9.repo文件内容
cat /etc/yum.repos.d/rhel9.repo
#更新被修改的配置文件信息
systemctl daemon-reload
#清除历史YUM源缓存
yum clean all
#检查yum源文件信息是否有误,并建立新的YUM源缓存
yum makecache
#测试本地yum源
yum install httpd
#修改/etc/fstab文件,设置开机自动挂载
echo '/dev/sr0        /media/rhel9    iso9660 defaults        0       0' >> /etc/fstab

编辑完repo.sh 文件后,增加repo.sh脚本的可执行权限,并将其执行

[root@localhost ~]# chmod +x repo.sh
[root@localhost ~]# ./repo.sh

执行repo.sh脚本的输出结果如下:

# /dev/sr0设备没有被挂载
umount: /dev/sr0: not mounted.  
#成功将/dev/sr0挂载到/media/rhel9目录
mount: /media/rhel9: WARNING: source write-protected, mounted read-only.
#df -h 显示挂载信息
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        4.0M     0  4.0M   0% /dev
tmpfs           1.8G     0  1.8G   0% /dev/shm
tmpfs           726M  9.7M  716M   2% /run
/dev/nvme0n1p3   15G  4.9G   11G  33% /
/dev/nvme0n1p1  495M  349M  146M  71% /boot
tmpfs           363M   96K  363M   1% /run/user/1000
/dev/sr0        8.0G  8.0G     0 100% /media/rhel9   #从这里可以看到挂载成功
#显示配置好的本地YUM源文件内容
[rhel_BaseOS]
name=rhel_BaseOS
baseurl=file:///media/rhel9/BaseOS
gpgcheck=0
[rhel_Appstream]
name=rhel_Appstream
baseurl=file:///media/rhel9/AppStream
gpgcheck=0
#清除历史YUM源缓存
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.

Last metadata expiration check: 0:00:03 ago on Sat 23 Mar 2024 05:39:05 PM CST.
#检查yum源文件信息是否有误,并建立新的YUM源缓存
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.

rhel_BaseOS                                                                                                       2.7 MB/s | 2.7 kB     00:00    
rhel_Appstream                                                                                                    2.7 MB/s | 2.8 kB     00:00    
Last metadata expiration check: 0:00:01 ago on Sat 23 Mar 2024 05:39:05 PM CST.
Metadata cache created.
#测试yum仓库,下载httpd,测试成功,httpd已下载
Package httpd-2.4.57-8.el9.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

在这里插入图片描述
在这里插入图片描述

(二)配置国内yum源的shell脚本

在root目录下新建一个alirepo.sh脚本

##############################################################################
#DESCRIPTION:配置国内阿里云源
#NOTES:
#1、配置aliyun_yum.repo文件
#2、建立新的YUM源缓存
#6、测试国内镜像源YUM源
#AUTHOR:Ley 
#CREATED2024/3/24

###############################################################################
#!/bin/bash
echo '[ali_baseos]
name=ali_baseos
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/os/
gpgcheck=0

[ali_appstream]
name=ali_appstream
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/AppStream/x86_64/os/
gpgcheck=0' > /etc/yum.repos.d/aliyun_yum.repo
yum makecache 1>/dev/null   #将输出结果丢进垃圾桶
yum -y update 1>/dev/null
~                                  
# chmod +x alirepo.sh  #增加可执行权限
# ./alirepo.sh      #执行,无输出结果

相关推荐

  1. redhat yum配置

    2024-03-27 10:30:02       11 阅读
  2. linux--redhat系统Yum配置

    2024-03-27 10:30:02       15 阅读
  3. 本地yum配置

    2024-03-27 10:30:02       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-27 10:30:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-27 10:30:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-27 10:30:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-27 10:30:02       18 阅读

热门阅读

  1. 捉虫日常:R包下载成功加载失败?

    2024-03-27 10:30:02       19 阅读
  2. @Autowired与@Resource区别

    2024-03-27 10:30:02       19 阅读
  3. Python基于 BaseHTTPRequestHandler 创建简单Web服务

    2024-03-27 10:30:02       17 阅读
  4. XSS伪协议

    2024-03-27 10:30:02       18 阅读
  5. 网络入门基础

    2024-03-27 10:30:02       17 阅读
  6. 前端理论总结(js)——reduce相关应用方法

    2024-03-27 10:30:02       17 阅读
  7. Go语言base64流式编码在收尾时的一个小坑

    2024-03-27 10:30:02       17 阅读
  8. 正则表达式:深入理解与应用

    2024-03-27 10:30:02       15 阅读
  9. CentOS 7 安装 Git

    2024-03-27 10:30:02       18 阅读
  10. 11. Linux中进程控制细节

    2024-03-27 10:30:02       17 阅读