自动打包脚本

#!/bin/bash
#descript: auto make iso Script
#date: 20160701
#function area
#<---------------------start---------------------------------------->
#function: check error
function_runcheck(){
    if [ $1 != 0 ];then
        echo "------------------------"
        echo "|Error,please check log|"
        echo "------------------------"
        exit 1
    fi
}
#function: auto color
function_color(){
    if [ "$2" == "red" ];then
        echo -e "[\033[40;31m $1 \033[0m]"
    fi

    if [ "$2" == "green" ];then
        echo -e "[\033[40;32m $1 \033[0m]"
    fi
}
#function: show info
#function_showInfo(){
#
#}
#function: log  time for create this iso
function_create_version(){
    echo "create time at `date +%Y_%m_%d\ %H:%M:%S`" > /home/version
}
#function: create a new.comps.xml.gz by iso source
function_create_comps(){
    cd $ISODIR
    echo "create a new.comps.xml.gz by iso source"
    cp -a /SHIXUN/source/comps.xml $ISODIR
    createrepo -g $ISODIR/comps.xml  $ISODIR
    declare -x discinfo=`head -1 .discinfo`
    createrepo -u "media://$discinfo" -g $ISODIR/comps.xml $ISODIR
    sleep 1
}
#function: create ks.cfg
function_create_kscfg(){
    cd $ISODIR
    echo
    echo -e "will copy the ks.cfg.$1 to /SHIXUN/iso/isolinux/ks.cfg"
    cp -f /SHIXUN/source/ks/ks.cfg.$1 /SHIXUN/iso/isolinux/ks.cfg >/dev/null
    dos2unix /SHIXUN/iso/isolinux/ks.cfg 2>/dev/null
}
#function: create 
function_create_img(){
    function_color Step_One green
    echo
    echo -e "will create a initrd.img and cp the /tmp/initrd.img.bak to /SHIXUN/iso/isolinux/"
    echo -e "please waiting for 1-3 minutes"
    sname=/tmp/initrd.img.bak
    echo -e "check the $sname is exist and remove it"
    test -e $sname && rm -r -f $sname 2>/dev/null
    #into the source dir
    cd /SHIXUN/source/initrd_source/
    #create a new initrd.img.bak
    echo -e "create a new $sname,loading......"
    find . | cpio -c -o | xz -9 --format=lzma >$sname 2>/dev/null 
    sleep 1
    #will copy the $sname to /SHIXUN/iso/isolinux/initrd.img
    chmod 444 $sname
    echo -e "System auto copy the $sname to /SHIXUN/iso/isolinux/initrd.img"
    echo -e "please waiting for 1-2 minutes."
    cp -f $sname /SHIXUN/iso/isolinux/initrd.img 2>/dev/null
    sleep 1
    echo
    echo -e "will create a install.img and cp the /tmp/install.img.bak to /SHIXUN/iso/images/"
    echo -e "please waiting for 1-3 minutes"

    sname=/tmp/install.img.bak
    #check tmp is exist and remove it
    echo -e "check the $sname is exist and remove it"
    test -e $sname && rm -r -f $sname 2>/dev/null
    #into the source dir
    install_source=/SHIXUN/source/install_source/
    #create a new install.img.bak
    echo -e "create a new $sname,loading......"
    mksquashfs $install_source  $sname 2>/dev/null 
    sleep 1
    #will copy the $sname to /SHIXUN/iso/images/install.img
    chmod 664 $sname
    echo -e "System auto copy the $sname to /SHIXUN/iso/images/install.img"
    echo -e "please waiting for 1-2 minutes."
    cp -f $sname /SHIXUN/iso/images/install.img 2>/dev/null
    sleep 1
}
#function: tar 
function_tar(){
    cd $ISODIR
    function_color Step_Two green
    echo -e "**tar all solfts and system configs,please waiting for 10-30 minites"
    echo -e "**loading........"
    sleep 3
    source /etc/profile
    #will tar all softs
    #tomcat
    echo -e "stopping tomcat service"
    if [ -f /etc/init.d/tomcat ]; then
            /etc/init.d/tomcat stop
    fi
    #clean tomcat log 
    echo -e "clean tomcat logs/*"
    rm -r -f /home/tomcat/logs/*
    rm -r -f /home/tomcat/temp/*
    rm -r -f /home/tomcat/work/Catalina/localhost/radius
    #radiusd
    echo -e "stopping radiusd service"
    if [ -f /etc/init.d/radiusd ]; then
            /etc/init.d/radiusd stop
    fi
    #clean mydradiusd log
    echo -e "clean /home/radius/log/*"
    rm -r -f /home/radius/log/*
    #oracle
    echo -e "stopping ora10g service"
    if [ -f /etc/init.d/ora10g ]; then
            /etc/init.d/ora10g stop
    fi
    #clean bash_history
    echo -e "clean the .*history"
    echo "#shixun admin log">/home/radius/bin/console/.bash_history
    echo "#shixun admin log">/home/radius/bin/console/.rc.admin.main_history
    #copy the rc.install
    echo -e "will copy this rc.install."
    if [ -f /SHIXUN/source/rc.install ]; then
            cp -f /SHIXUN/source/rc.install /etc/rc.install
    fi
    #will tar all softs
    if [ "$1"x = "development"x ];then
        tar -czvf $WIRADIUS /SHIXUN/shell /SHIXUN/source /etc/init/tty.conf /etc/passwd /etc/pam.d/login /etc/shadow /etc/group /etc/profile /etc/security/limits.conf /etc/sysctl.conf /etc/issue /etc/issue.net /etc/centos-release  /etc/oratab /etc/oraInst.loc /usr/local/bin/* /etc/init.d/tomcat /etc/init.d/ora10g /etc/init.d/radiusd /etc/sysconfig/i18n /boot/grub/splash.xpm.gz /etc/rc.install /etc/init/start-ttys.conf  /etc/inittab /home/admin /home/oracle /home/radius /home/tomcat /home/java /home/version /ora /etc/crontab  /lib64 /usr/local/rlwrap 
    cp -a /home/oracle_radiusx64.tar.shfs $ISORPMDIR
    fi
    if [ "$1"x = "release"x ];then
        tar -czvf $WIRADIUS /etc/init/tty.conf /etc/passwd /etc/pam.d/login /etc/shadow /etc/group /etc/profile /etc/security/limits.conf /etc/sysctl.conf /etc/issue /etc/issue.net /etc/centos-release  /etc/oratab /etc/oraInst.loc /usr/local/bin/* /etc/init.d/tomcat /etc/init.d/ora10g /etc/init.d/radiusd /etc/sysconfig/i18n /boot/grub/splash.xpm.gz /etc/rc.install /etc/init/start-ttys.conf  /etc/inittab /home/admin /home/oracle /home/radius /home/tomcat /home/java /home/version /ora /etc/crontab  /lib64 /usr/local/rlwrap 
        if [ -e $ISORPMDIR/oracle_radiusx64.tar.shfs ];then
            rm -f $ISORPMDIR/oracle_radiusx64.tar.shfs
        fi
    fi
    sleep 1
}
#function: make iso 
function_createISO(){
    cd $ISODIR
    #will create a new iso
    function_color Step_Three green
    sleep 2
    echo -e "********Create New ISO********"
    if [ "$1"x = "development"x ];then
    mkisofs -o $ISOSAVEDIR/$ISOVERSION -joliet-long -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T $ISODIR/
    fi
    if [ "$1"x = "release"x ];then
    mkisofs -o $ISOSAVEDIR/$ISOVERSION  -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T $ISODIR/
    fi
}
#function: md5
function_md5(){
    cd $ISODIR
    function_color Step_four green
    #md5
    md5sum $ISOSAVEDIR/$ISOVERSION > $ISOSAVEDIR/$ISOMD5
    echo -e "***********The $ISOSAVEDIR/$ISOVERSION Is Create OK And The ISO MD5: $ISOSAVEDIR/$ISOMD5"
    echo -e "***********You can download or copy it by ssh port:10010 ip:192.168.4.2********"
    function_color END! green
    echo
}
#<---------------------end---------------------------------------->
#
##<---------------------Script main------------------------------->
#set  parameter
ISODIR=/SHIXUN/iso
ISOSAVEDIR=/tmp
ISORPMDIR=/SHIXUN/iso/Packages
ISOREPODATA=/SHIXUN/iso/repodata
WIRADIUS=$ISORPMDIR/wiradius.tar.gz
NOWDIR=`pwd`
#Script Start!
if [ "$1"x = "release"x ];then
    ISOBASE=WiRadius_10g_Release_`date +%Y_%m_%d_%H%M%S`
    ISOVERSION="$ISOBASE"_x64.iso
    ISOMD5="$ISOBASE"_x64.md5
    function_create_version
    function_create_comps
    function_create_img
    function_create_kscfg release
    function_tar release
    function_createISO release
    function_md5 
elif [ "$1"x = "development"x ];then
    ISOBASE=WiRadius_10g_Development_`date +%Y_%m_%d_%H%M%S`
    ISOVERSION="$ISOBASE"_x64.iso
    ISOMD5="$ISOBASE"_x64.md5
    function_create_version
    function_create_comps
    function_create_img
    function_create_kscfg development
    function_tar development
    function_createISO development
    function_md5 
else
    echo "error"
fi

cd $NOWDIR
exit 0

 

posted @ 2017-02-14 10:45  喝杯茶  阅读(360)  评论(0编辑  收藏  举报