Warning: session_write_close(): write failed: No space left on device (28) in /var/www/wiki/doku.php on line 121
Warning: session_write_close(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/sessions) in /var/www/wiki/doku.php on line 121
#!/bin/bash
function adt() {
adt_num=$1
adt_etat=$2
adt_nom=$3
ip4_nexthop=$4
ip4_public=$5
dev=eth1
SELF=$(basename $0)
INFO="logger -p notice -t $SELF --"
CRIT="logger -p crit -t $SELF --"
echo "$ip4_public ${adt_nom}.pub4 adt$adt_num" >> /etc/hosts.adt
echo "$ip4_nexthop ${adt_nom}.gw4 hop$adt_num" >> /etc/hosts.adt
case $adt_etat in
actif)
regex="^$ip4_public via [0-9.]+ dev $dev"
ip route get $ip4_public | grep -qE "$regex"
res=$?
out=$(ip route replace $ip4_public via $ip4_nexthop dev $dev)
res2=$?
if [ $res2 -eq 0 ]; then
if [ $res -eq 1 ]; then
$INFO "Accès ajouté : adt $*"
fi
else
$CRIT "ERREUR : adt $adt_num $adt_etat $adt_nom : pb remplacement route : '$out'"
fi
;;
resilie)
out=$(ip route delete $ip4_public 2>&1)
res=$?
case $res in
0) $INFO "Accès supprimé : adt $*" ;;
2) : ;; # Route non trouvée, routage déjà supprimé
*) $CRIT "ERREUR : adt $adt_num $adt_etat $adt_nom : pb suppression route : '$out'" ;;
esac
;;
*)
$CRIT "ERREUR : adt $adt_num $adt_etat $adt_nom : '$adt_etat' n'est pas un état reconnu"
;;
esac
}
function main() {
> /etc/hosts.adt
sysctl -w net.ipv4.ip_forward=1
source /root/config_adt.sh
cat /etc/hosts.system /etc/hosts.adt > /etc/hosts
}
main