Canon Pro 300

Onderhouds afbeelding

Minimale afbeelding die alle kleuren even aanraakt met een lichte intensiteit om het inkt verbruik tot een minimum te beperken.

#!/bin/bash

# Outputbestand
OUT="/home/serveradmin/canon_pro_300/maintenance.png"

WIDTH=1000
HEIGHT=1000
BOX=118
GAP=50

# Kleuren
PBK="#EDEDED"
MBK="#E8E8E8"
C="#CCFFFF"
M="#FFCCFF"
Y="#FFFFCC"
PC="#D6F2FF"
PM="#FFD6F2"
R="#FFE5E5"
G="#E5FFE5"
CO="#F7F7F7"
GRID="#F5F5F5"

# Begin met witte achtergrond
convert -size ${WIDTH}x${HEIGHT} xc:white "$OUT"

# Rasterlijnen (verticale + horizontale)
for ((i=0; i<WIDTH; i+=50)); do
    convert "$OUT" -stroke "$GRID" -strokewidth 1 -draw "line $i,0 $i,$HEIGHT" "$OUT"
done

for ((j=0; j<HEIGHT; j+=50)); do
    convert "$OUT" -stroke "$GRID" -strokewidth 1 -draw "line 0,$j $WIDTH,$j" "$OUT"
done

# Kleurvakjes tekenen
convert "$OUT" \
    -fill "$PBK" -draw "rectangle $GAP,$GAP $((GAP+BOX)),$((GAP+BOX))" \
    -fill "$MBK" -draw "rectangle $((GAP*2+BOX)),$GAP $((GAP*2+BOX*2)),$((GAP+BOX))" \
    -fill "$C"   -draw "rectangle $((GAP*3+BOX*2)),$GAP $((GAP*3+BOX*3)),$((GAP+BOX))" \
    -fill "$M"   -draw "rectangle $((GAP*4+BOX*3)),$GAP $((GAP*4+BOX*4)),$((GAP+BOX))" \
    -fill "$Y"   -draw "rectangle $((GAP*5+BOX*4)),$GAP $((GAP*5+BOX*5)),$((GAP+BOX))" \
    \
    -fill "$PC" -draw "rectangle $GAP,$((GAP*2+BOX)) $((GAP+BOX)),$((GAP*2+BOX*2))" \
    -fill "$PM" -draw "rectangle $((GAP*2+BOX)),$((GAP*2+BOX)) $((GAP*2+BOX*2)),$((GAP*2+BOX*2))" \
    -fill "$R"  -draw "rectangle $((GAP*3+BOX*2)),$((GAP*2+BOX)) $((GAP*3+BOX*3)),$((GAP*2+BOX*2))" \
    -fill "$G"  -draw "rectangle $((GAP*4+BOX*3)),$((GAP*2+BOX)) $((GAP*4+BOX*4)),$((GAP*2+BOX*2))" \
    -fill "$CO" -draw "rectangle $((GAP*5+BOX*4)),$((GAP*2+BOX)) $((GAP*5+BOX*5)),$((GAP*2+BOX*2))" \
    "$OUT"

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