1 changed files with 57 additions and 0 deletions
			
			
		@ -0,0 +1,57 @@ | 
				
			|||
#!/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:        						# | 
				
			|||
# 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'/') | 
				
			|||
SUBJECT="IP of $HOST: $CURRENT_IP" | 
				
			|||
MESSAGE="Hej! Ha en trevlig dag. IP adressen du ville veta ä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; | 
				
			|||
					Loading…
					
					
				
		Reference in new issue