Notificación Telegram al inicio
Un sencillo script que te manda una notificación al Telegram cada vez que inicia el router, con un minimo de informacion.
El script lo guardo en /jffs/scripts/post-mount
El script del ejemplo, hace algunas comprobaciones y tareas, la primera monta la swap, la segunda añade al cron una tarea que cada 12h libera la ram y otra tarea de meter un script que notifica cada 2h el estado del router con información mas detallada, espera 10 segundos y realiza un ping a la DNS de Cloudflare, comprueba si ha salido bien el ping y te manda un mensaje al telegram, no antes comprueba si la swap esta montada, de no ser asi, cambia el mensaje a enviar, para hacerlo mientras estaba comiendo, ni tan mal.
#!/bin/sh
echo "Montando swap..."
swapon /tmp/mnt/sda1/file.swp
echo "Add Free RAM to cron..."
cru a freeram "0 */12 * * * /bin/sync && /bin/echo 3 > /proc/sys/vm/drop_caches"
echo "Add Telegram to cron..."
cru a telegram "0 */2 * * * sh /jffs/scripts/status.sh"
sleep 10
/bin/ping -c2 "1.1.1.1" > /dev/null 2>&1
if [ $? -ne 0 ]
then
exit 0
else
unset $MODEL_NAME
unset $SWAP
unset $BANNER
unset $TEMP_CPU
MODEL_NAME=$(nvram get wps_device_name)
SWAP=$(free | grep Swap | awk '{ printf("%.0f", $2 / 1024) }')
TEMP_CPU=$(cat /sys/class/thermal/thermal_zone0/temp | awk '{printf("%.0f\n", $1 / 1000) }')
TELEGRAM_AUTH="/jffs/telegram.env"
TOKEN=$(cat $TELEGRAM_AUTH | grep "TOKEN" | awk -F "=" '{print $2}')
CHATID=$(cat $TELEGRAM_AUTH | grep "CHAT_ID" | awk -F "=" '{print $2}')
API_TELEGRAM="https://api.telegram.org/bot$TOKEN/sendMessage?parse_mode=HTML"
function sendMessage()
{
curl -s -X POST $API_TELEGRAM \
-d chat_id=$CHATID \
-d text="$(printf "<b>$BANNER</b>\n\n \
CPU: $TEMP_CPUº\n \
Swap: $SWAP Mb\n")" > /dev/null 2>&1
}
if [ "$SWAP" != "0" ]
then
BANNER="✅ $MODEL_NAME"
sendMessage
else
BANNER="❌ $MODEL_NAME"
sendMessage
fi
fi
Last updated
Was this helpful?