自動創建本地yum源腳本

  今天呢,將之前的腳本慢慢整理一下,原因我也不多說了,慢慢將之前拉下的腳本都慢慢寫一下,好好練習下。廢話不多說,詳見下面的源碼。

這個腳本不是太難,不過想寫好不容易,我搞了差不多半天,測試了好幾次,然後確認沒有問題後,將其發上來,供大家參考,源碼在附件上,大家可以下下來參考下。

 

#!/bin/bash

main () {  #首先這個main函數,沒什麼可說的,包含其他函數,看着比較順,僅此

clean      #而已,當然,你也可以將其放在後面,不過需要注意的是,最後調用

ready      #的時候,一定注意將main放在後面,也就是說的,先聲明在引用,如

mountiso   #本腳本中,我將最後的調用放在了最後面。

copy

repo

config

}

YUMDIR=/var/yum      #定義本地的rpm包得存放位置,可以自己做調整

SOURCEISO=/dev/cdrom #光盤鏡像的目錄

DESTISO=/media/cdrom #光盤鏡像掛載的目標路徑

clean() {            #clean函數很簡單,主要就是創建掛載點加上簡單的判斷

if [ -e $DESTISO ];then

sleep 1

else

echo "$DESTISO is't exit,create it now"

mkdir ${DESTISO}

fi

}

ready() {          #ready函數主要是確保此目錄沒有被掛載其他文件,如遠程

if cat /etc/mtab |grep "${DESTISO}" &> /dev/null;then  #掛載NFS等等

  fuser -km ${DESTISO}                   

umount ${SOURCEISO} #或者是光盤已經掛載到其他位置

fi

if [ -e $YUMDIR ];then #創建本地rpm存放目錄,加上簡單判斷而已

sleep 1

else 

echo "$YUMDIR isn't exit,creat it now"

mkdir $YUMDIR

fi

}

mountiso(){           #這個就是簡單的判斷,看看能不能掛載成功。

mount ${SOURCEISO} $DESTISO &> /dev/null   #不成功,則判斷爲沒有插入光盤

if [ $? -ne 0 ];then

echo "Please mount the cdrom first,and then try this scripts again"

echo "clean the directory what you just created...."

rm -rf $YUMDIR

exit

fi

}

copy(){           #copy函數很簡單就是將相關的rpm包拷貝到本地rpm存放位置

echo "--------------------------------------------------"

echo "now,copy the iso,Please wait for a few time......."

echo "--------------------------------------------------"

sleep 2

cp -r $DESTISO/* $YUMDIR

echo "copy ok,umount the ISO: "

umount $DESTISO

}

repo(){     #檢查當前是否已經安裝createrepo,和創建yum_repository的

rpm -ql createrepo &> /dev/null                   #xml-rpm-metadata

if [ $? -ne 0 ];then

cd /var/yum/Server

rpm -ivh createrepo*.rpm &> /dev/null

fi

echo "Now,create config file,Please wait some time....."

createrepo -g /var/yum/Server/repodata/comps-rhel5-server-core.xml /var/yum/Server/ &> /dev/null

createrepo -g /var/yum/VT/repodata/comps-rhel5-vt.xml /var/yum/VT/ &> /dev/null

createrepo -g /var/yum/Cluster/repodata/comps-rhel5-cluster.xml /var/yum/Cluster/ &> /dev/null

createrepo -g /var/yum/ClusterStorage/repodata/comps-rhel5-cluster-st.xml /var/yum/ClusterStorage/ &> /dev/null

}

config(){            #配置yum的配置文件

touch /etc/yum.repos.d/local.repo

cat > /etc/yum.repos.d/local.repo << EOF

[base]

name=Server

baseurl=file://${YUMDIR}/Server

gpgcheck=0

 

[VT]

name=VT

baseurl=file://${YUMDIR}/VT

gpgcheck=0

 

[Cluster]

name=Cluster

baseurl=file://${YUMDIR}/Cluster

gpgcheck=0

 

[ClusterStorage]

name=ClusterStorage

baseurl=file://${YUMDIR}/ClusterStorage

gpgcheck=0

 

EOF

echo " the local yum is already build"

}

main

sleep 2                                    

echo "now,test the local yum is ok ?"    #進行簡單的測試清理yum緩存和重建

yum clean all &> /dev/null &&yum grouplist

至此,腳本已經完成了,你可以自己測試下,當然了,可能有些地方寫的有點問題,歡迎指出,共同進步,腳本源碼在附件中,大家可以下載。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章