CUPS printing

Canon‑queue opnieuw inschakelen

sudo cupsenable Canon_Pro_300
sudo cupsaccept Canon_Pro_300

weekly_print.sh

Wekelijks onderhoudsprint om de inkt van de Canon_Pro_300 niet in te laten drogen en inktverspilling tegen te gaan.

#!/bin/bash
#
# Weekly maintenance print voor Canon Pro 300
# Met foutdetectie, queue-checks en logging voor cron
#

set -euo pipefail

# Log alles naar stdout/stderr zodat cron het mailt
echo "=== Weekly print gestart: $(date) ==="

PRINTER="Canon_Pro_300"
FILE="/home/serveradmin/canon_pro_300/maintenance.png"

# 1. Bestaat het bestand?
if [[ ! -f "$FILE" ]]; then
    echo "ERROR: Bestand ontbreekt: $FILE" >&2
    exit 1
fi

# 2. Queue-status controleren
QUEUE_STATUS=$(lpstat -p "$PRINTER" 2>&1 || true)

echo "Queue-status:"
echo "$QUEUE_STATUS"

if echo "$QUEUE_STATUS" | grep -q "disabled"; then
    echo "WARN: Printerqueue is disabled, poging tot inschakelen..."
    sudo cupsenable "$PRINTER" || {
        echo "ERROR: Kon queue niet inschakelen." >&2
        exit 1
    }
    sudo cupsaccept "$PRINTER" || {
        echo "ERROR: Kon queue niet accepteren." >&2
        exit 1
    }
    echo "Queue opnieuw ingeschakeld."
fi

# 3. Test of lp beschikbaar is
if ! command -v lp >/dev/null 2>&1; then
    echo "ERROR: lp command niet gevonden in PATH." >&2
    exit 1
fi

# 4. Printopdracht uitvoeren
echo "Printopdracht uitvoeren..."
if ! lp -d "$PRINTER" "$FILE"; then
    echo "ERROR: lp faalde bij het versturen van de printopdracht." >&2
    exit 1
fi

echo "Printopdracht succesvol verstuurd."

# 5. Queue opnieuw controleren
POST_STATUS=$(lpstat -p "$PRINTER" 2>&1 || true)
echo "Queue-status na print:"
echo "$POST_STATUS"

if echo "$POST_STATUS" | grep -q "disabled"; then
    echo "ERROR: Queue is disabled geraakt na het printen. Filter-crash vermoedelijk." >&2
    exit 1
fi

echo "=== Weekly print voltooid: $(date) ==="

cronjob

crontab -e
MAILTO="theo.langstraat@delta.nl"

0 8 * * 1 /bin/bash /home/serveradmin/canon_pro_300/weekly_print.sh