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.
🧰 Schritt 1: Bash-Skript erstellen
Lege ein neues Skript an, das dein gesamtes Kursmaterial und die PDF-Übersicht automatisch exportiert:
sudo nano /home/pi/pdf_export.sh
Inhalt:
#!/bin/bash # PDF-Export-Skript für DokuWiki mit dw2pdf # Aktuelles Datum DATUM=$(date +%F) # Zielverzeichnisse ZIEL_KURS="/home/pi/pdf_exports/kursmaterial_${DATUM}.pdf" ZIEL_OVERVIEW="/home/pi/pdf_exports/uebersicht_${DATUM}.pdf" # Export-URLs URL_KURS="http://localhost/doku.php?do=export_pdfbook&id=start" URL_OVERVIEW="http://localhost/doku.php?do=export_pdfbook&id=pdfs:start" # PDF-Generierung wget -O "$ZIEL_KURS" "$URL_KURS" wget -O "$ZIEL_OVERVIEW" "$URL_OVERVIEW"
Dann ausführbar machen:
chmod +x /home/pi/pdf_export.sh
🧰 Schritt 2: Rechte korrekt setzen (HTML-Verzeichnis & PDF-Zielordner)
Damit der Webserver (www-data) und dein Pi-Nutzer (pi) beide auf das Webverzeichnis und den PDF-Ordner zugreifen können, richten wir gemeinsame Rechte ein. So sparst du dir künftig manuelles Rechte-Setzen im Terminal, und kannst direkt in FileZilla Ordner/Dateien anlegen und löschen.
➕ Füge <code>pi</code> zur Gruppe <code>www-data</code> hinzu
sudo usermod -aG www-data pi
📁 Setze Besitzer und Gruppe für das Webverzeichnis
sudo chown -R www-data:www-data /var/www/html
🔐 Vergib passende Rechte für alle Ordner
find /var/www/html -type d -exec chmod 2775 {} \;
📄 Und für alle Dateien
find /var/www/html -type f -exec chmod 664 {} \;
⚙️ Setze das setgid-Bit (Gruppenerhalt bei neuen Dateien)
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>.
📦 Jetzt einmal neu einloggen oder den Raspberry Pi neustarten, damit die neuen Gruppenrechte aktiv sind.
🧰 Schritt 3: Zielverzeichnis für PDF-Dateien anlegen
mkdir -p /home/pi/pdf_exports
🧰 Schritt 4: PDF-Vorlage einrichten (minimalistisch, ASCII-kompatibel)
Verzeichnis 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> body { background: #ffffff; font-family: monospace; display: flex; align-items: center; justify-content: center; height: 100vh; font-size: 16pt; } pre { text-align: center; } </style> </head> <body> <pre> ____ ____ _____ ____ _ ____ _ _ _ __ | _ \| _ \| ____| _ \ / \ | _ \| | | | |/ / | | | | | | | _| | |_) | / _ \ | | | | | | | ' / | |_| | |_| | |___| _ < / ___ \| |_| | |_| | . \ |____/|____/|_____|_| \_/_/ \_\____/ \___/|_|\_\ DOKUWIKI PDF-KURS </pre> </body> </html>
Kopfzeile (header_even.html & header_odd.html):
<div style="font-size: 8pt; text-align: right;"> Seite [[@PAGE@]] </div>
Fußzeile (footer_even.html & footer_odd.html):
<div style="font-size: 7pt; text-align: center; color: #999;"> © Olaf Droste Products – wiki.droste-home.net </div>
→ Dann in DokuWiki aktivieren unter Admin → PDF Export (`dw2pdf`) → Vorlage: `odp`
🧰 Schritt 5: Automatisierung mit Cron einrichten
crontab -e
Füge am Ende diese Zeile hinzu:
0 0 * * * /home/pi/pdf_export.sh
🕛 Jetzt wird jeden Tag um Mitternacht automatisch dein PDF und eine PDF-Übersicht generiert.
🧰 Schritt 6: Übersicht im DokuWiki anlegen
Lege eine Seite `pdfs:start` mit folgendem Inhalt an:
```dokuwiki
PDF-Downloadübersicht
Hier findest du die automatisch erzeugten PDF-Dateien:
Diese Seite wird ebenfalls automatisch als PDF gespeichert.