#!/bin/sh internet_gw=torreunc internet_gw_ip=10.5.24.12 # corremos un scan frecuente porque encontramos que las radios a veces quedan en un estado donde creen que pueden levanar MCS superior a 7 cuando no es así y el throughput se reduce a un goteo. Un scan las vuelve a su estado normal. El kill es porque a veces el sacn queda colgado. Mientras esté habilitado este cron, no hace falta chequear reset_deaf_phys porque al escanear se levantan las interfaces 'bobas'. Escanea en un par de frecuencias para que el scan sea rapido. Escanear solamente en la propia frecuencia no arregla el problema. sed "\| \* \* \* .*regular scan.*|d" -i /etc/crontabs/root echo "*/5 * * * * killall iw; logger -t workarounds 'regular scan on wlan1'; iw wlan1-adhoc scan freq 5745 5825 &" >> /etc/crontabs/root echo "*/5 * * * * killall iw; logger -t workarounds 'regular scan on wlan0'; iw wlan0-adhoc scan freq 2412 2457 &" >> /etc/crontabs/root # si dnsmasq está muerto, lo reiniciamos. Chequeamos que haya acceso a Internet antes de intentar resolver. sed "\| \* \* \* .*dnsmasq is alive.*|d" -i /etc/crontabs/root echo "*/8 * * * * if ping -c5 -w10 8.8.8.8; then if nslookup google.com 127.0.0.1 &>/dev/null; then logger -t workarounds 'OK. dnsmasq is alive'; else logger -t workarounds '*dnsmasq* FAIL. name resolution unsuccessful. Restarting the process'; /etc/init.d/dnsmasq stop; kill -9 `cat /var/run/dnsmasq/dnsmasq*.pid`; /etc/init.d/dnsmasq start; logger -t workarounds 'restarted zombie dnsmasq'; fi; else logger -t workarounds 'skipping dnsmasq check because Internet is unreachable'; fi" >> /etc/crontabs/root # cada 3hs, si falla ping a la salida a internet, rebooteamos. Es el último recurso para no quedar desconectados del nodo si queda en un estado inaccesible. sed "\| \* \* \* .*Iniciando reboot.*|d" -i /etc/crontabs/root echo "7 */3 * * * if ping -c 10 -W 10 8.8.8.8 &> /dev/null; then logger -t workarounds 'ping c/3hs a 8.8.8.8 OK'; else logger -t workarounds '*ping c/3hs* a Internet FAIL. Iniciando reboot'; logread > /root/debug && /sbin/reboot; fi" >> /etc/crontabs/root