This repository contains usefull shell scripts for daily use.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.9 KiB

#!/bin/sh
#################################################################
# Script to send the IP address of a host to you using a #
# Telegram bot. This script also adds a cron job, so that the #
# bot nofifies you with every boot. #
# #
# Author: Maximilian Stiefel #
# Last modified: 26. April 2018 #
# CLI usage: ./send_telegram_dynamic_ip bot chat #
# Required PKGs: mail #
# #
#################################################################
#################################################################
# Vars #
#################################################################
HOST=$(hostname)
FILE=`realpath $0`
NU_PARAMS=2
#################################################################
# Action #
#################################################################
# Check if the expected number of parameters is given.
if [ $# != $NU_PARAMS ]
then
echo "Error: Illegal number of parameters."
exit 1;
fi
# Get bot token and chat id.
BOT=$1
CHAT_ID=$2
URL="https://api.telegram.org/bot$BOT/sendMessage"
ENTRY="@reboot $FILE $BOT $CHAT_ID"
# Wait until we are online.
while ! wget -q --spider http://google.com ; do true; done
# Get private IP.
CURRENT_IP=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/')
MESSAGE="Hej! Ha en trevlig dag. IP adressen av $HOST är $CURRENT_IP."
# Instruct bot.
curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE" > /dev/null
echo "Message sent."
# Grep returns zero if entry is found.
if ! crontab -l | grep -q "$ENTRY" ; then
crontab -l > cron
echo "$ENTRY" >> cron
crontab cron
rm cron
echo "Added $ENTRY"
echo "to crontab."
else
echo "Crontab entry $ENTRY"
echo "already exists."
fi
exit 0;