需要输入两个参数,第一个参数是绝对路径的安装文件iso文件,第二个参数是绝对路径的key文件。可根据实际情况选择安装路径 base_dir 和 install_dir
#!/bin/bash
# 设置安装参数
install_file=$1
key_file=$2
base_dir=/dameng
install_dir=/dameng/dm8
log=/tmp/dm8_install_software.log
time=`date +"%Y%m%d%H%M%S"`
mntdir=/dm${time}
dir_check(){
info=`df -k|grep -v "${base_dir}/"|grep -w "${base_dir}"|wc -l`
if [ $info -eq 0 ];then
echo "`date +"%Y-%m-%d %H:%M:%S"` $base_dir is not mounted"
exit 1
fi
if [ -d $install_dir ];then
info=`ls -l ${install_dir} | awk -F ' ' '{print$2}'`
if [ "$info" != "0" ];then
echo "`date +"%Y-%m-%d %H:%M:%S"` dm software already installed"
exit 1
fi
fi
}
user_check(){
GROUPEXIST=`grep dinstall /etc/group|awk -F: '{print $1}'`
if [ -z ${GROUPEXIST} ]; then
info=`cat /etc/group|awk -F ':' '{print$3}'|grep 1000|wc -l`
if [ $info -eq 0 ]; then
/usr/sbin/groupadd -g 1000 dinstall
if [ $? -eq 0 ]; then
echo "`date +"%Y-%m-%d %H:%M:%S"` add group dinstall ok"
else
echo "`date +"%Y-%m-%d %H:%M:%S"` add group dinstall failed"
exit 1
fi
else
/usr/sbin/groupadd dinstall
if [ $? -eq 0 ]; then
echo "`date +"%Y-%m-%d %H:%M:%S"` add group dinstall ok,but group id is not 1000"
else
echo "`date +"%Y-%m-%d %H:%M:%S"` add group dinstall failed"
exit 1
fi
fi
else
echo "`date +"%Y-%m-%d %H:%M:%S"` group dinstall is ok"
fi
dinstall_group=`cat /etc/group|grep dinstall|awk -F ':' '{print$3}'`
dmdba_pwd=`echo "JVRHQm5qaTkK"|base64 -d`
USEREXIST=`grep dmdba /etc/shadow | awk -F: '{print $1}'`
if [ -z ${USEREXIST} ]; then
/usr/sbin/useradd -g dinstall -m -d /home/dmdba -s /bin/bash -u $dinstall_group dmdba && echo "$dmdba_pwd" | passwd dmdba --stdin &>/dev/null
if [ $? -eq 0 ]; then
echo "`date +"%Y-%m-%d %H:%M:%S"` add user dmdba ok"
else
echo "`date +"%Y-%m-%d %H:%M:%S"` add user dmdba failed"
exit 1
fi
else
echo "`date +"%Y-%m-%d %H:%M:%S"` user dmdba is ok"
fi
}
install_software(){
mkdir -p ${install_dir}
echo "`date +"%Y-%m-%d %H:%M:%S"` mkdir -p ${install_dir}"
mkdir $mntdir
if [ $? == 0 ]; then
echo "`date +"%Y-%m-%d %H:%M:%S"` mkdir $mntdir ok"
else
echo "`date +"%Y-%m-%d %H:%M:%S"` mkdir $mntdir fail"
exit 1
fi
chown dmdba:dinstall -R ${install_dir}
echo "`date +"%Y-%m-%d %H:%M:%S"` chown dmdba:dinstall -R ${install_dir}"
xml_file=/tmp/dm8_install_software.xml
cat > ${xml_file} <
EOF
chown dmdba:dinstall ${xml_file}
echo "`date +"%Y-%m-%d %H:%M:%S"` touch ${xml_file} ok"
mount -o loop ${install_file} $mntdir
if [ $? == 0 ]; then
echo "`date +"%Y-%m-%d %H:%M:%S"` mount iso file ok"
else
echo "`date +"%Y-%m-%d %H:%M:%S"` mount iso file failed"
fi
chown dmdba:dinstall ${key_file}
su - dmdba < ${log} 2>&1
$mntdir/DMInstall.bin -q ${xml_file}
exit
!
if [ $? == 0 ]; then
echo "DM software install execute succussfully"
else
echo "DM software install execute failed"
fi
umount $mntdir
if [ $? == 0 ]; then
echo "`date +"%Y-%m-%d %H:%M:%S"` umount iso file ok"
else
echo "`date +"%Y-%m-%d %H:%M:%S"` umount iso file failed"
fi
rmdir $mntdir
if [ $? == 0 ]; then
echo "`date +"%Y-%m-%d %H:%M:%S"` rmdir $mntdir ok"
else
echo "`date +"%Y-%m-%d %H:%M:%S"` rmdir $mntdir fail"
fi
sh ${install_dir}/script/root/root_installer.sh
if [ $? == 0 ]; then
echo "${install_dir}/script/root/root_installer.sh execute succussfully"
else
echo "${install_dir}/script/root/root_installer.sh execute failed"
exit 1
fi
}
config_bash_profile(){
user_home=`cat /etc/passwd|grep -w "dmdba"|awk -F ':' '{print$6}'` export PATH=$PATH:${install_dir}/bin EOF if [ $? == 0 ]; then } dir_check echo "`date +"%Y-%m-%d %H:%M:%S"` install dm8 software complete"
cat >> ${user_home}/.bash_profile <
stty erase ^H
echo "`date +"%Y-%m-%d %H:%M:%S"` configure ${user_home}/.bash_profile ok"
else
echo "`date +"%Y-%m-%d %H:%M:%S"` configure ${user_home}/.bash_profile failed"
fi
########################################################################
RUID=`/usr/bin/id|awk -F( '{print $1}'|awk -F= '{print $2}'`
if [ ${RUID} != "0" ];then
$ECHO "This script must be executed as root"
exit 1
fi
user_check
install_software
config_bash_profile



