Dies ist eine alte Version des Dokuments!
PDF-Automatisierung mit Bash & Cron – Raspberry Pi & DokuWiki
In diesem Mini-Kurs richtest du eine automatische PDF-Erzeugung für dein DokuWiki ein – ganz ohne manuelles Klicken. Das PDF wird täglich erstellt und auf deiner SD-Karte gespeichert. Außerdem wird automatisch eine Wiki-Übersichtsseite aktualisiert.
Schritt 1: Kombiniertes Bash-Skript für PDF-Export & Wiki-Übersicht erstellen
sudo nano /home/pi/pdf_export.sh
Inhalt:
#!/bin/bash # PDF-Export + Wiki-Übersicht aktualisieren DATUM=$(date +%F) PDF_ZIEL="/home/pi/pdf_exports/kursmaterial_${DATUM}.pdf" PDF_URL="http://localhost/doku.php?do=export_pdfbook&id=start" ZIELDATEI="/var/www/html/data/pages/pdfs/start.txt" # PDF erzeugen wget -O "$PDF_ZIEL" "$PDF_URL" # Übersichtsseite im Wiki schreiben { echo "====== PDF-Downloadübersicht ======" echo "" echo "Hier findest du automatisch erzeugte PDFs deines Raspberry-Kurs-Wikis:" echo "" echo " * [[file:/home/pi/pdf_exports/kursmaterial_${DATUM}.pdf|📄 Kursmaterial vom ${DATUM}]]" echo "" echo "→ Diese Seite wird täglich automatisch aktualisiert." } > "$ZIELDATEI" # Rechte setzen chown www-data:www-data "$ZIELDATEI" chmod 664 "$ZIELDATEI"
Ausführbar machen:
chmod +x /home/pi/pdf_export.sh
Schritt 2: Zielverzeichnis für PDF-Dateien anlegen
mkdir -p /home/pi/pdf_exports
Schritt 3: Rechte korrekt setzen (HTML-Verzeichnis & PDF-Zielordner)
pi zur Gruppe www-data hinzufügen
sudo usermod -aG www-data pi
Besitzer & Gruppe für das Webverzeichnis setzen
sudo chown -R www-data:www-data /var/www/html
Rechte für Ordner (setgid aktiviert)
sudo find /var/www/html -type d -exec chmod 2775 {} \;
Rechte für Dateien
sudo find /var/www/html -type f -exec chmod 664 {} \;
setgid auf Webverzeichnis setzen
sudo chmod g+s /var/www/html
Ergebnis: Du kannst als <code>pi</code> direkt PDF-Dateien schreiben, Skripte anlegen oder Wiki-Dateien ändern – ohne <code>sudo</code>.
Schritt 4: Eigene PDF-Vorlage für dw2pdf einrichten
Template-Ordner anlegen
sudo mkdir -p /var/www/html/lib/plugins/dw2pdf/tpl/odp
Deckblatt (cover.html)
Pfad:
/var/www/html/lib/plugins/dw2pdf/tpl/odp/cover.html
<html> <head> <style> pre { font-family: monospace; white-space: pre-wrap; text-align: center; font-size: 14pt; } </style> </head> <body> <pre> ██████╗ ██████╗ ███████╗ ██╔══██╗██╔══██╗██╔════╝ ██████╔╝██████╔╝█████╗ ██╔═══╝ ██╔═══╝ ██╔══╝ ██║ ██║ ███████╗ ╚═╝ ╚═╝ ╚══════╝ PDF-Kursmaterial </pre> </body> </html>
Kopfzeile (header_even.html & header_odd.html)
Fußzeile (footer_even.html & footer_odd.html)
<div style="text-align:center; font-size:8pt; color:#999;"> © Olaf Droste Products, Immermannstr. 31, 44147 Dortmund </div>
Vorlage aktivieren
→ Admin → PDF Export → Template: odp
Schritt 5: Cronjob für täglichen PDF-Export & Seitenupdate einrichten
crontab -e
Einfügen:
0 0 * * * /home/pi/pdf_export.sh
Schritt 6: PHP mbstring-Erweiterung installieren
sudo apt install php-mbstring -y sudo systemctl restart apache2
Schritt 7: Testen
/home/pi/pdf_export.sh
→ Prüfe:
- Liegt eine neue PDF im Ordner
/home/pi/pdf_exports/
?
- Ist die Seite
pdfs:start
im Wiki automatisch aktualisiert?
Tipp: Du kannst die PDFs später auch automatisch per PHP oder FTP bereitstellen.