⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mac

📁 嵌入式linux双机热备份倒换处理代码
💻
字号:
#!/bin/shIFCONFIG=/sbin/ifconfigIFUP=/sbin/ifupIFDOWN=/sbin/ifdownUSAGE="usage: $0 IFACE MAC-ADDR {start | stop | status}";CAT=/bin/catSLEEP=/bin/sleepCONF=/etc/ha/ha.confGREP=/bin/grepLOG=/var/log/ha-logDATE=/bin/dateSCRIPTDIR=/etc/ha/scriptsCUT=/usr/bin/cutUNAME=/bin/unameSED=/bin/sedRM=/bin/rmcase $3 instop)	if [ ! -f /var/run/heartbeat.MAC ]; then	  echo "MAC already stopped"	  exit 0;	fi	HW=`cat /var/run/heartbeat.MAC`	$IFDOWN $1	$SLEEP 1	$IFCONFIG $1 hw ether $HW	RC=$?	$SLEEP 1	$IFUP $1	if [ "$RC" -eq 0 ]; then		/bin/rm -f /var/run/heartbeat.MAC	else		exit 1	fi	;;start)	$SLEEP 10	# lecture du fichier de conf avec strip des caract鑢es dangeureux	PRIVATE_ADDR=`$GREP -x -E "PRIVATE_ADDR=[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" $CONF`	if [ "$PRIVATE_ADDR" == "" ]; then		echo "HA : Erreur dans le fichier de configuration ! (PRIVATE_ADDR)" >> $LOG		exit 1	fi	export $PRIVATE_ADDR	PRIVATE_BCAST=`$GREP -x -E "PRIVATE_BCAST=[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" $CONF`	if [ "$PRIVATE_BCAST" == "" ]; then		echo "HA : Erreur dans le fichier de configuration ! (PRIVATE_BCAST)" >> $LOG		exit 1	fi	export $PRIVATE_BCAST	PRIVATE_IF=`$GREP -x -E "PRIVATE_IF=[a-z]{1,3}[0-9]+:?[0-9]*" $CONF`	if [ "$PRIVATE_IF" == "" ]; then		echo "HA : Erreur dans le fichier de configuration  (PRIVATE_IF)!" >> $LOG		exit 1	fi	export $PRIVATE_IF	SERVICE_ADDR=`$GREP -x -E "SERVICE_ADDR=[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" $CONF`	if [ "$SERVICE_ADDR" == "" ]; then		echo "HA : Erreur dans le fichier de configuration ! (SERVICE_ADDR)" >> $LOG		exit 1	fi	export $SERVICE_ADDR	SERVICE_IF=`$GREP -x -E "SERVICE_IF=[a-z]{1,3}[0-9]+:?[0-9]*" $CONF`	if [ "$SERVICE_IF" == "" ]; then		echo "HA : Erreur dans le fichier de configuration ! (SERVICE_IF)" >> $LOG		exit 1	fi	export $SERVICE_IF	MODE=`$GREP -x -E "MODE=\w+$" $CONF`	export $MODE	if [ "$MODE" != "master" ] && [ "$MODE" != "slave" ]; then		echo "HA : Erreur dans le fichier de configuration ! (MODE)" >> $LOG		exit 1	fi	SERVICE_MAC=`$GREP -x -E "SERVICE_MAC=[a-zA-Z0-9]{2}:[a-zA-Z0-9]{2}:[a-zA-Z0-9]{2}:[a-zA-Z0-9]{2}:[a-zA-Z0-9]{2}:[a-zA-Z0-9]{2}" $CONF`	if [ "$SERVICE_MAC" == "" ]; then		echo "HA : Erreur dans le fichier de configuration ! (SERVICE_MAC)" >> $LOG		exit 1	fi	export $SERVICE_MAC			BASE_IF=`echo $SERVICE_IF | $CUT -d ":" -f1`	# Mise en place de la nouvelle adresse MAC		if [ -f /var/run/heartbeat.MAC ]; then		echo "MAC already set"		exit 1;	fi	SHW=`$IFCONFIG $1 | $GREP HWaddr | $SED "s/.*HWaddr //"`	$SLEEP 1	$IFDOWN $1	$SLEEP 1	$IFCONFIG $1 hw ether $2	RC=$?	$SLEEP 1	$IFUP $1	if [ "$RC" -eq "0" ]; then		echo $SHW > /var/run/heartbeat.MAC	else		exit 1	fi		# Envoi d'un paquet ARP gratuit pour signaler l'@ MAC associ閑 a l'ip de service	$SCRIPTDIR/arp -i $BASE_IF -d $SERVICE_ADDR -r $SERVICE_MAC -s $SERVICE_ADDR -t ff:ff:ff:ff:ff:ff -n 2 2>&1 1>/dev/null	if [ $? -ne 0 ]; then		echo "HA : Erreur lors de l'envoi du paquet ARP gratuit pour l'ip de service" >> $LOG	fi	# Si l'interface physique est la meme pour l'ip prive et l'ip de service	# On envoie aussi un ARP pour l'ip priv

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -