PDF Cups für linux Terminalserver / nomaschine Drucker auf Client umleiten
Beschreibung:
Druckumleitung auf Terminalserver / nomaschine funktioniert nicht.
Wir können aber vom Client auf ein Verzeichnis vom Terminalserver zugreifen zum beispiel per sftp oder nomachine Verzeichnisumleitung.
Mittels CUPS PDF werden alle Dateien im Homeverzeichnis im Verzeichnis PDF gespeichert.
Auf dem Client läuft ein Script was diesen ordner beobachtet und wenn PDFs drin sind diese dann an den angebenen Druckewr sendet.
Durchführung:
Auf dem Server:
Cups printer installieren
sudo apt-get install printer-driver-cups-pdf
Alle Dokumente werden unter
~/pdf
abgespeichert. Vom Client aus dieses Verzeichnis mounten. Via sftp oder nomachines Laufwerkdurchreiche selbst, nextcloud
oder oder oder....
Auf dem Client:
Dem Autoprint script Namen den Benutzer dran hängen
sudo mkdir -p /usr/local/bin
sudo nano /usr/local/bin/auto-print-<benutzername>.sh
Inhalt:
Die Variablen Watch Dir und Printer Name anpassen
#!/bin/bash
# --- Konfiguration ---
WATCH_DIR="/home/<benutzername>/Schreibtisch/Stamm/home/<benutzername-terminalserver>/PDF" # Oder /var/spool/cups-pdf/duffy je nach Setup
PRINTER_NAME="TOSHIBA" # Dein CUPS-Druckername (mit 'lpstat -p' prüfen)
# --- Endlosschleife ---
while true; do
for file in "$WATCH_DIR"/*.pdf; do
[ -e "$file" ] || continue # Kein PDF vorhanden? Dann weiter
echo "Drucke: $file"
lp -d "$PRINTER_NAME" "$file" && rm -f "$file"
done
sleep 5 # alle 5 Sekunden prüfen
done
Ausführbar machen
sudo chmod +x /usr/local/bin/auto-print.sh
Systemd erstellen für den jeweiligen benutzer
sudo nano /etc/systemd/system/auto-print-<benutzername>.service
Inhalt:
Auch hier im Dateinamen den Benutzer anpassen
[Unit]
Description=Automatischer PDF-Drucker
After=network.target
[Service]
ExecStart=/usr/local/bin/auto-print-<benutzername>.sh
Restart=always
User=duffy
Environment=HOME=/home/<benutzername>
WorkingDirectory=/home/<benutzername>
[Install]
WantedBy=multi-user.target
Service aktibieren und starten, auch hier den benutzernamen wieder anpassen
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable --now auto-print-<benutzername>.service