cat > ~/lpstat_history/check_printer_state.sh <<'EOF'
#!/bin/sh
# Super simple & realistic – exactly your manual style
# Author: Abdul Muqeet
HOST=$(hostname)
DIR=~/lpstat_history
PRE="$DIR/${HOST}_PRE.txt"
NOW="$DIR/${HOST}_NOW.txt"
DATE=$(date '+%d-%b-%Y %H:%M:%S')
# ←←← YOUR EXACT MANUAL COMMAND ←←←
lpstat -p | awk '{print $1, $2}' | sort > "$NOW"
# First run = save baseline
if [ ! -f "$PRE" ]; then
cp "$NOW" "$PRE"
echo "Baseline saved at $DATE"
echo "Run the same command again after the activity."
exit 0
fi
# Compare
if diff -q "$PRE" "$NOW" >/dev/null 2>&1; then
# Nothing changed
echo "Printer state is 100% SAME as before – $HOST – $DATE" | \
mailx -s "Printers OK – No change on $HOST" your.email@company.com
echo "Email sent → No change"
else
# Something changed – show only the changed lines
(
echo "Printer state changed on $HOST"
echo "Checked : $DATE"
echo "User : $(whoami)"
echo "========================================"
echo "Changes found:"
echo ""
comm -3 "$PRE" "$NOW" | sed 's/^/ /'
echo ""
echo "— Abdul Muqeet"
) | mailx -s "Printers CHANGED on $HOST" your.email@company.com
echo "Email sent → Changes found (see mail)"
fi
# Save current as new baseline
cp "$NOW" "$PRE"
EOF
chmod 700 ~/lpstat_history/check_printer_state.sh
No comments:
Post a Comment