Thursday, November 27, 2025

new lpstat

 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