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