#!/bin/bash # Script arguments # argument 1 - package number, i.e. 012345670001234567 # argument 2 - mail address for package status updates nr=$1 to=$2 # Swedish post perma-link link="http://server.logistik.posten.se/servlet/PacTrack" link="$link?lang=GB&xslURL=/xsl/pactrack/standard.xsl&kolliid=$1" # Script saves status updates into temp dir cd /tmp/ # Send the mail # argument 1 - subject # argument 2 - message function send_mail() { # arg1 subject echo "$2" | mail -s "$1" \ -a "MIME-Version: 1.0" \ -a "Content-Type: text/html" \ "$to" } # Download package latest status wget "$link" -q -O post-status.new if [ $? -ne 0 ]; then error="Could not download package status." echo "$error Mail sent." send_mail "Package $nr status error" "$error" exit fi # Make sure both current and previous status file exists touch post-status.new touch post-status.old # Check if there is a difference in two last status sizes new_size=$(stat -c%s post-status.new) old_size=$(stat -c%s post-status.old) if [ $new_size -ne $old_size ]; then echo "Package status updated. Mail sent." send_mail "Package $nr status updated" "`cat post-status.new`" fi # Save the status cp post-status.new post-status.old
crontab -e
*/15 * * * * /usr/local/bin/post-check 012345670001234567 your@mail.com