Files
StateGrid/generate.sh
Qin Bo 2235771f09 Initial commit
Signed-off-by: Qin Bo <bqin@linx-info.com>
2014-02-19 09:07:55 +08:00

72 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
export LANG=c
ROOT_UID=0
E_ROOT=2
if [ $UID -ne $ROOT_UID ];then
echo "You must run this script use root ..."
exit $E_ROOT
fi
GRUB_FILE=/boot/grub/menu.lst
MAC=$(ifconfig eth0 | grep HWaddr | awk '{print $5}')
value=$(echo $MAC | awk -F':' '{print $1,$2,$3,$4,$5,$6}')
linx_serial=$(./linx_sn/generate_serial $value )
serial=$(echo $linx_serial | awk '{print $4}')
#判断rocky4.2.35和rocky4.2.39,因为这两个版本中/boot/grub/menu.lst文件中序列号的位置不同
flag_4_2_39=`grep '4.2.39' /etc/issue|awk '{print $5}'`
if [ -z ${flag_4_2_39} ];then
for i in $(grep -n 'linx_serial' $GRUB_FILE | awk 'BEGIN{OFS="|"}{print $1,$5,$6}')
do
original_sn=$(echo $i | cut -d'|' -f2 | awk -F'=' '{print $2}')
line=$(echo $i | cut -d':' -f1)
if [ ${original_sn}!=" " ];then
sed -i "${line}s@linx_serial=${original_sn}@linx_serial=@" $GRUB_FILE
if [ $(echo $i |grep 'rootflag') ];then
sed -i "${line}s@linx_serial=@linx_serial=${serial}@" $GRUB_FILE
else
sed -i "${line}s@linx_serial=@linx_serial=${serial} rootflags=data=writeback@" $GRUB_FILE
fi
else
if [ $(echo $i |grep 'rootflag') ];then
sed -i "${line}s@linx_serial=@linx_serial=${serial}@" $GRUB_FILE
else
sed -i "${line}s@linx_serial=@linx_serial=${serial} rootflags=data=writeback@" $GRUB_FILE
fi
fi
done
else
for i in `grep -n 'linx_serial' $GRUB_FILE | awk 'BEGIN{OFS="|"}{print $1,$4}'`
do
original_sn=$(echo $i | cut -d'|' -f2 | awk -F'=' '{print $2}')
line=$(echo $i | cut -d':' -f1)
if [ ${original_sn}!=" " ];then
sed -i "${line}s@linx_serial=${original_sn}@linx_serial=@" $GRUB_FILE
if [ $(echo $i |grep 'rootflag') ];then
sed -i "${line}s@linx_serial=@linx_serial=${serial}@" $GRUB_FILE
else
sed -i "${line}s@linx_serial=@linx_serial=${serial} rootflags=data=writeback@" $GRUB_FILE
fi
else
if [ $(echo $i |grep 'rootflag') ];then
sed -i "${line}s@linx_serial=@linx_serial=${serial}@" $GRUB_FILE
else
sed -i "${line}s@linx_serial=@linx_serial=${serial} rootflags=data=writeback@" $GRUB_FILE
fi
fi
done
fi
sed -i "s#default 0#default 1#g" $GRUB_FILE
rm /boot/grub/grub.conf
cp /boot/grub/menu.lst /boot/grub/grub.conf
chown sysadmin.sysadmin /boot/grub/menu.lst
chown sysadmin.sysadmin /boot/grub/grub.conf
echo "$linx_serial| `date` " >> ./linx_sn/linx_list