Folgendes Script druckt aus einem Verzeichnis „zu_drucken“ in der OwnCloud eines Benutzers automatisch Dateien aus, wenn diese dorthin gespeichert werden. Nach dem erfolgreichen Drucken werden die Dateien gelöscht. Für das Script muss CUPS installiert sein.
#! /bin/bash # # owncloud.sh als cronjob installieren # # folgende Variablen anpassen benutzerliste="zell schoen dorn schneider mueller" drucker="PDF-Printer" ######################################### datadir="/var/www/owncloud/data/" for benutzer in $benutzerliste ; do printdir="$datadir$benutzer/files/zu_drucken" for datei in $printdir/* ; do # echo "$datei wird gedruckt ..." /usr/bin/lp -d $drucker -U $benutzer $datei && rm $datei done done exit 0
Das Script unter /usr/bin
ablegen und ausführbar machen. Dann muss das Script als Cronjob eingerichtet werden, z.B. mit Ausführung alle 2 Minuten:
# crontab -e
*/2 * * * * /usr/bin/owncloudprint.sh
Im Script die Variablen „benutzerliste“ und „drucker“ anpassen.
Das Script druckte beim Testen problemlos .txt, .pdf und .bmp-Dateien aus.
Problem: Die Dateien werden nach dem Drucken zwar im data-Verzeichis gelöscht, erscheinen aber trotzdem in OwnCloud, da ihr Eintrag noch in der OwnCloud-Datenbank vorhanden ist.
Lösung: In der Config-Datei /var/www/owncloud/config/config.php
folgende Option ergänzen:
<?php $CONFIG = array ( ... 'filesystem_check_changes' => 1, );
zur → owncloud