72 lines
2.3 KiB
Bash
Executable File
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
|