Apocalipsis: Servicio de actualización /etc/hosts

Pongo aquí la primera versión de este script que sirve para actualizar las entradas de /etc/hosts con la IP de eth0 o mejor dicho eno1 o algo aún más exótico…según la nomenclatura actual.
Esto va a servir tanto a la navegación local que a dnsmasq en un futuro cuando montaremos una red wifi para casa.
Esta parte de la red wifi todavía no la he tocas, pero se que se va a necesitar, así que me adelanto un poco:

Es script está en su primera esbozo así que va a cambiar pronto. No si quiera lo he probado en un ambiente de testing. así que hay que tomarlo con pinzas

#!/bin/bash

# Hosts IP update
# Apocalipisi 1.9
# 2023-01-26 - maxlinux2000@gmail.com

echo "Espero 30 segundos para que la tarjetas ethernet tenga la dirección IP"
sleep 30

RAMDISK="/dev/shm"
mkdir $RAMDISK/hosts-update
RAMDISK="$RAMDISK/hosts-update"

NetCard=$(ifconfig | head -n1 | cut -d ':' -f1)

IP=$(ip a | grep -A1 "$NetCard"  | grep inet | cut -d ' ' -f6 | cut -d '/' -f1)

if [ -z "$IP" ]; then
   echo "Network downn"
   IP="127.0.0.1"
else
   echo IP=$IP
fi

Hostname=$(cat /etc/hostname)
##MailDomain=$(cat /etc/postfix/sni | grep "$Hostname" | cut -d ' ' -f1 | cut -d '.' -f 2,3 | uniq)
#ls /etc/nginx/conf.d/*.$Hostname.conf > $RAMDISK/sities

ls /etc/nginx/conf.d/*.conf |\
 grep -v "yunohost_admin.conf" |\
 grep -v "ssowat.conf" |\
 grep -v "global.conf" > $RAMDISK/sities

:> $RAMDISK/hosts1
#:> $RAMDISK/hosts2
for a in $(cat $RAMDISK/sities); do
    site=$(basename $a | sed 's|.conf||')
    echo "$IP	$site" >> $RAMDISK/hosts1
#    echo "$site" >> $RAMDISK/hosts2
done

:> $RAMDISK/hosts3
for site in $(cat $RAMDISK/sities); do
    cat /etc/hosts | grep -v "$site" >> $RAMDISK/hosts3
    mv $RAMDISK/hosts3 /etc/hosts
done

cat $RAMDISK/hosts1 >> /etc/hosts

rm $RAMDISK/hosts1
rm $RAMDISK/sities
service dnsmasq restart

Comentarios cerrados.