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