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 einem USB-Stick gespeichert. Perfekt für Anfänger ohne Spezialwissen!
Schritt 1: Plugin dw2pdf installieren
→ Im Admin-Bereich auf „Erweiterungen verwalten“ klicken → Suche nach `dw2pdf` → Plugin installieren
Alternativ via Konsole:
cd /var/www/html/lib/plugins git clone https://github.com/splitbrain/dokuwiki-plugin-dw2pdf.git dw2pdf sudo systemctl restart apache2
Schritt 2: Bash-Skript für PDF-Export auf USB-Stick
sudo nano /home/pi/pdf_export.sh
Inhalt des Skripts:
#!/bin/bash # ============================================================ # PDF-Export eines Namensraums (Ausgabe auf USB-Stick) # # HINWEIS: # Dieses Skript erzeugt automatisch eine PDF aus dem Namensraum # 'kurs:raspberry' und speichert sie auf einem USB-Stick. # ============================================================ DATUM=$(date +%F) PDF_ZIEL="/mnt/usb/kurs_raspberry_${DATUM}.pdf" PDF_URL="http://localhost/doku.php?do=export_pdfns&book_ns=kurs:raspberry&book_title=Kurs%20Raspberry" wget -O "$PDF_ZIEL" "$PDF_URL" chown www-data:www-data "$PDF_ZIEL" chmod 664 "$PDF_ZIEL"
Schritt 3: USB-Stick vorbereiten und einbinden
1. USB-Stick einstecken 2. Gerät prüfen mit:
lsblk
3. Mount-Verzeichnis anlegen:
sudo mkdir -p /mnt/usb
4. USB-Stick einhängen (z. B. `/dev/sda1`):
sudo mount /dev/sda1 /mnt/usb
5. Testen:
touch /mnt/usb/test.txt ls /mnt/usb
Schritt 4: Rechte für USB-Zielordner setzen
sudo chown -R www-data:www-data /mnt/usb sudo chmod -R 775 /mnt/usb
Schritt 5: Eigene PDF-Vorlage mit Logo & Titel einrichten
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> <body> <div align="center"> <img src="@WIKIURL@lib/exe/fetch.php?media=logo.png" width="300" alt="Logo" /> <br/><br/> <font size="6"><b>Kurs: Raspberry – PDF-Export</b></font> </div> </body> </html>
Kopfzeile (header_even.html & header_odd.html):
<div align="right"><font size="2">Seite [[@PAGE@]]</font></div>
Fußzeile (footer_even.html & footer_odd.html):
<div align="center"><font size="1" color="#888888">© Olaf Droste Products, Immermannstr. 31, 44147 Dortmund</font></div>
Vorlage aktivieren:
→ Admin → PDF Export → Template: odp
Platziere dein Logo im Wiki unter <code>media:logo.png</code> – am besten über den Media-Manager hochladen. Wenn du das Logo ins Wurzelverzeichnis (Namensraum `:`) hochlädst, erkennt DokuWiki es häufig automatisch.
Schritt 6: Cronjob für täglichen PDF-Export einrichten
crontab -e
Dort hinzufügen:
0 0 * * * /home/pi/pdf_export.sh
Schritt 7: PDF-Export testen
sudo /home/pi/pdf_export.sh
→ Danach prüfen:
- Ist die PDF auf dem USB-Stick gespeichert?
- Lässt sie sich problemlos auf einem anderen Gerät öffnen?
🛠️ Fehlerbehebung: Probleme beim Mounten & Speichern
Fehler:
mount: /mnt/usb: special device /dev/sda1 does not exist.
→ Lösung: Gerätekennung prüfen mit:
lsblk
Dann ggf. mit richtigem Namen einhängen (z. B. `/dev/sda`):
sudo umount /mnt/usb sudo mount /dev/sda /mnt/usb
Fehler:
touch: cannot touch '/mnt/usb/test.txt': Permission denied
→ Rechte setzen:
sudo chown -R www-data:www-data /mnt/usb sudo chmod -R 775 /mnt/usb
Hinweis: Wenn du deine `/etc/fstab` verändert hast, aber der Mount-Befehl trotzdem nicht klappt:
sudo systemctl daemon-reexec
✅ Abschluss
Mit diesem Skript exportierst du deine Kursinhalte automatisch und sicher auf deinen USB-Stick – ideal für Offline-Backups oder zur Weitergabe. Einzige Voraussetzung: das Plugin <code>dw2pdf</code>.