Maximilian Stiefel
7 years ago
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