shell编程挂载iso镜像文件并配置本地yum源

</pre><p>写了一个脚本,主要做1、挂载本地iso镜像文件2、开机本地iso镜像开机自动挂载3、用iso镜像配置本地yum源</p><pre>
#!/bin/bash
#author:wjf
#date:2015/04/22
#desc:establish a yum  on local rhel6.4

echo "请输入iso镜像完整路径"
read  v_iso_path
echo "请输入镜像要挂载的目录"
read  v_mount_dir

v_curr_date=`date +%Y%m%d%H%M`

mount -t iso9660 -o loop ${v_iso_path} ${v_mount_dir}


v_is_mount=`df -h |grep ${v_iso_path}`
if [ -z "${v_is_mount}" ]
        then
                echo "挂载未成功,请检查挂载过程"
        else
                echo "挂载iso镜像成功,开始配置yum……"
                echo "配置光盘挂载开机自启动"
                echo "备份/etc/fstab文件至/etc/fstab.${v_curr_date}.bak"
                cp /etc/fstab /etc/fstab.${v_curr_date}.bak
                echo "${v_iso_path}  ${v_mount_dir} iso9660  loop  0 0" >>/etc/fstab
                mount -a
                echo -ne "[base]\nname=base\nbaseurl=file://${v_mount_dir}\nenabled=1\ngpgcheck=0\n\n[Server]\nname=Server\nbaseurl=file://${v_mount_dir}/Server\nenabled=1\ngpgcheck=0\n" >/etc/yum.repos.d/local.repo
                yum clear all
                yum update
fi


输出结果

[root@localhost wjf_scripts]# bash iso配置本地yum源.sh 
请输入iso镜像完整路径
/mnt/rhel-server-6.4-x86_64-dvd.iso
请输入镜像要挂载的目录
/mnt/yumiso 
挂载iso镜像成功,开始配置yum……
配置光盘挂载开机自启动
备份/etc/fstab文件至/etc/fstab.201504231045.bak
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
No such command: clear. Please use /usr/bin/yum --help
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Server                   | 3.9 kB     00:00 ... 
base                     | 3.9 kB     00:00 ... 
Setting up Update Process
No Packages marked for Update
[root@localhost wjf_scripts]# 


总结下知识点

1、if [   ]

then

elif [   ]

else

fi

if语句的标准语法

”if “和判断语句之间必须有空格。

必须以”fi“结尾,不然会报错。

2、iso镜像挂载语句

mount  -t  iso9660  -o loop  /mnt/rhel6.4.iso    /mnt/yumiso

光驱挂载的语句为

mount  -t  iso9660  /dev/cdrom  /mnt/testiso

可以看出挂载镜像需要多一个loop的参数。

同样,文件系统挂载涉及的配置文件为/etc/fstab

根据其语法格式,iso镜像的配置行为

/mnt/rhel6.4.iso    /mnt/yumiso  iso9660 loop 0 0

3、yum源配置

yum源自动加载/etc/yum.repos.d目录下所有以.repo结尾的配置文件。

repo配置文件中的格式。

配置文件中行首不能有空格等其他字符,不然会出现解析错误。刚开始为了脚本里面的美观,每行加入了一个空格,结果出现了错误。



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。