Ein Update- und Backup-System für die Raspberry Pi einrichten

Ähnliche Dokumente
Den Websurfer absichern

EleLa - Elektronik Lagerverwaltung. Hilfe. Installation auf einem Raspberry Pi

Einrichtung der Raspberry Pi

pwd mkdir Zeigt das aktuelle Verzeichnis an Beispiel: pwd

Einrichten des Raspberry Pi

Startup, Shutdown und Reboot eines Raspberry Pi über die HomeMatic CCU

Banana Pro von Festplatte starten

Raspberry Workshop II

Neuinstallation Wiederherstellung von USB-Stick

Mit PuTTY und WinSCP an der Pi

In diesem Beispiel verwende ich einen Raspberry Pi 3 (wg. Ethernetanschluss) mit einem MMDVM Hat Klon.

Anweisungen zur Aktualisierung der IOP Firmware und Software

Einrichten einer SMS Benachrichtigung über sms77

Installation der Buchhaltungssoftware

Datensicherung. Menü Datensicherung. Neu Erstellt einen neuen Sicherungsplan. Ein Sicherungsplan umfasst alle Einstellungen der aktuellen Sicherung.

Linux Kommandozeile: Einfache Skripte. 1 Wiederhohlung. 2 Einfache Skripte

Anleitung zum Klick & Show Firmware-Update

Raspberry Workshop. User des Raspberry abmelden: Folgende befehle werden angenommen: Logout / Exit oder die Tastenkombination Ctl + D

Anweisungen zur Aktualisierung der IOP Firmware und Software

Zusätzlich Tipps und Informationen

Manuelles Update eines DV4Mini-Raspberry Pis

Anleitung Zusammenbau

HomeMatic CCU-Historian auf einem Raspberry Pi 3 Model B betreiben (Raspian Jessie)

Firmware-Update von ARGUS -Testern

Festplatte klonen: Tutorial

Update-Installation ASV-BW ASV-BW. Stand: Kontaktdaten SCS: .

Bash-Skripting Linux-Kurs der Unix-AG

EV3 JAVA-PROGRAMMIERUNG MIT LEJOS INSTALLATIONSANLEITUNG INHALT

Zugriffsrechte. anzeigen lassen mit dem Befehl: ls -l

Ursachen und Lösungen Ursache (1): Defektes/beschädigtes Dateisystem

Dateisystem 1, Suchpfad, Befehlstypen

BASIC Tutorial für Anfänger

Installation und Einrichtung Thunderbird, GnuPT, GPGHash und GPGee

Raspberry Pi: Betriebssystem installieren und WLAN einrichten

1 LINUX-CHEATSHEET (symbolischer Name localhost ) ist der jeweils aktuelle

Linux-Camp: Linux als Server am Beispiel LAMP

Kindermann Klick & Show Firmware-Aktualisierung

bedienerfreundlich plattformunabhängig Industrie 4.0 Web Viewer Smartphone-App kostenl. Hotline

Crashkurs Kommandozeile

Schnelleinstieg Online-Backup

Anleitung VM-Installation Ubuntu

Nun öffnet sich das Fenster "Geplante Tasks". Hier zum Einrichten eines neuen Tasks auf "Geplanten Task hinzufügen" klicken. Es öffnet sich der Assist

Kindermann Klick & Show Firmware-Aktualisierung

Recover Anleitung ONE XCELLENT-10 Tablet via USB Stick

Recover Anleitung ONE XCELLENT-10 Tablet via USB Stick

BSA LAMP-Installation unter Debian-Edge

Inhaltsverzeichnis. Installation: Internet Daten: 3 Informationen von Web-Seite. 4 Registrierung. 4 Registrierungsschlüssel 5 Registrierungsschlüssel

BERNINA 720/740/770/790 - Firmware Update

Verlog-Registrierkasse- Datensicherung. Benutzerhandbuch

Installationsanleitung benning-fb Proxy für SOLARVIEW

bedienerfreundlich plattformunabhängig Industrie 4.0 Web Viewer Smartphone-App kostenl. Hotline

Docusnap X - Docusnap Script Linux. Skriptbasierte Inventarisierung für Linux

Inhaltsverzeichnis Erste Schritte Grundprinzipien in Linux

Vivendi TEST-Datenbanken erstellen

BERNINA Q Serie - Firmware Update

Komplettes Backup/Wiederherstellung des BIM Servers 14

Bash-Skripting Linux-Kurs der Unix-AG

Installation Veeam Agent für Windows

Firmware Update - BERNINA 5er Serie mit Touch Screen

Benutzerhandbuch für Mac

Installationsanleitung refusol-fb Proxy für SOLARVIEW

Docusnap Script Linux. Skriptbasierte Inventarisierung für Linux

Anleitung zur Neuinstallation der VR-NetWorld Software bei PC-Wechsel

Ausbildungsziel: Erstellung eines Briefes mit Hilfe von Vorlagen

How-To-Do. PPC mit WES7 Image Update

Linkerkit OLED Raspberry Pi und Arduino

Anleitung zur Neuinstallation der VR-NetWorld Software 6 bei PC-Wechsel

EINRICHTEN EINER SQL-SICHERUNG FÜR BMD NTCS

Kali Linux. Hax0r. Kali USB (Persistenz + NTFS) Windows Benutzer freischalten

Avantgarde Backup mit Acronis

ZPN Zentrale Projektgruppe Netze am Ministerium für Kultus, Jugend und Sport Baden-Württemberg

Update der Navigation - ZENEC ZE-NC3711D / ZE-NC620DMH

Laufwerke unter Linux - Festplatten - - USB Sticks - September 2010 Oliver Werner Linuxgrundlagen 1

Problem PL2303-Treiber unter Windows 8 und höher:

SINAMICS Intelligent Operator Panel (IOP)

Script-Upgrade. Vorraussetzungen. Folgende Meldungstypen werden dabei verwendet: Vom Fahrzeug zur Zentrale. Quittungstexte vom Fahrzeug (Type 11.

I2C Serial 2.6 LCD Modul

Raspi mit Image Jessy_Pixel einrichten

ANWEISUNGEN FÜR SYNC 3 NAVIGATIONSSYTEMKARTEN-UPDATE

Schulfilter Plus Installationsanleitung Debian 8

1,8 Display Bedienungsanleitung Raspberry Pi

putty+gausmann gmbh i-con PICO SD erweiterte Funktionen durch microsd Karte

BMD NTCS STAPEL FÜR AUTOMATISCHE WEBUPDATES

1 Bitte beachten Kurzanleitung imgPTN-Dateien Portable machen Links & Quellen... 11

Bildschirm Sicherheit beim Bootfahren" Aktualisierung der VesselView-Software. Automatische Wi-Fi-Abfrage. Verwendung der Micro-SD-Karte

Einfache Datensicherung für Personen, welche sich mit der Flugsimulation beschäftigen.

Benötigte Teile für die Statusanzeige, Kosten und Beschaffungslinks:

Das Handbuch zu KCron

Anwender Dokumentation. Update WFinac. Version 2.41 Build 101

How-To-Do. PPC mit WES7 Image Update

Übersicht Shell-Scripten

SINAMICS Intelligent Operator Panel (IOP)

GDI Gesellschaft für Datentechnik und Informationssysteme mbh. Dokumentation GfK-Server Schnittstelle

Transkript:

Ein Update- und Backup-System für die Raspberry Pi einrichten mit dem Raspbian (Jessie) Stand: 28.12.2016 Inhalt 1. Einleitung... 1 2. Automatische Updates und Upgrades... 2 2.1 Das Skript mit den Update-Befehlen... 2 2.2 Update-Skript regelmäßig im Crontab ausführen... 2 3. Ein automatisches Backup eines Verzeichnisses regelmäßig erstellen... 4 3.1 Einen USB-Stick für die Backups mounten... 4 3.2 Das Skript mit den Backup-Befehlen... 6 3.3 Backup-Skript regelmäßig im Crontab ausführen... 7 4. Report über das Update und das Backup erstellen und per E-Mail versenden... 8 4.1 Report-Skript erstellen... 8 4.2 Backup-Skript anpassen... 10 4.3 Update-Skript anpassen... 11 1. Einleitung Die Raspberry Pi sollte immer aktuell gehalten und mit den neusten Updates versorgt sein um Sicherheitslücken zu schließen. Ebenfalls sollte man von seinem System ein Backup erstellen umso einem möglichen Datenverlust zu verhindern. Es ist Ratsam von Zeit zu Zeit ein komplettes Image der Raspberry Pi zu erstellen. Dies ist vor allem nützlich, wenn tiefgreifende Systemeingriffe vorgenommen werden sollen. Eine Sicherung der Dateien sollte wiederrum regelmäßig erstellt werden. Ein großer Vorteil ist es, wenn diese beiden Dinge automatisiert und in vorher festgelegten Abständen vom System erledigt werden. Die nachfolgende Anleitung stellt ein derartiges System mit seinen benötigten Schritten zur Verfügung. Rahmenbedingungen: Raspberry Pi 2 SanDisk microsd mit 32GB Raspberry Stand von Kapitel 2.3 E-Mail Server mit Strato USB Stick von SanDisk mit 16Gb Roland Kuenen Seite 1

2. Automatische Updates und Upgrades Im Kapitel 2.2 Den Websurfer absichern wurde schon eine Update-Zeile in den Crontab geschrieben. Diese kann nach dem Erstellen des Skriptes dann aus der Datei entfernt bzw. ersetzt werden. Die nachfolgende Zeile 15 0 * * 7 root apt-get update -y && apt-get dist-upgrade -y && apt-get autoremove -y && reboot müsste aus der Datei sudo nano /etc/crontab entfernt werden, falls ihr dies nach der Anleitung aus Kapitel 2.2 erstellt habt. 2.1 Das Skript mit den Update-Befehlen Das Skript, welches die Aktualisierungen durchführt, wird im Ordner für Crontabs erstellt. Hierzu wird mit dem nachfolgenden Befehl cd /etc/cron.d in den cron.d - Ordner gewechselt. Hier können die Skripts, welche später automatisch ausgeführt werden sollen, abgelegt werden. Natürlich kann dies auch in jedem anderen beliebigen Verzeichnis geschehen. Hier wird nun ein neues Skript für die Aktualisierungen mit erstellt und mit folgendem Inhalt gefüllt sudo nano update.sh #!/bin/bash -e #Datei /etc/cron.d sudo apt-get update -y && apt-get dist-upgrade -y && apt-get autoremove -y sudo shutdown -r 1 Erklärung: Die erste Zeile ist zur Definition des Interpreters. Die zweite nur eine Information, unter welchem Verzeichnis sich das Skript befindet. In der dritten Zeile steht der Befehl zum Aktualisieren des Systems. Die && - Operatoren zwischen den Befehlen sagen aus, dass der nachfolgende Befehl nur ausgeführt wird, wenn der vorherige erfolgreich war. Die Erklärungen für update, upgrade und autoremove findet ihr zur Genüge im Web. Der Letzte Befehl fährt die Pi nach 1 Minute herunter und startet diese mit dem Parameter r erneut. So startet ihr die Raspberry mit den neuen Aktualisierungen. 2.2 Update-Skript regelmäßig im Crontab ausführen Um das Skript automatisch mit einem Benutzer starten zu können, muss dies noch für die Benutzer in den Berechtigungen festgelegt werden. Mit dem Befehl sudo chmod a+x update.sh Roland Kuenen Seite 2

legt ihr für alle Benutzer das Recht fest, das Skript auszuführen. Der letzte Schritt besteht darin, den Intervall im Crontab festzulegen, wann das Skript ausgeführt werden soll. Öffnet die Datei zum Festlegen der Crontabs mit sudo nano /etc/crontab Hier tragt ihr in die letzte Zeile, aber vor der #, folgenden Eintrag ein 20 0 * * 5 root sudo /etc/cron.d/update.sh Die 20 und die 0 stehen dafür, dass das Skript immer 20 Minuten nach 0 Uhr ausgeführt wird. Die beiden nachfolgenden * stehen für den Tag des Monats und den Monat selbst. Da hier ein Stern drin steht, ist dies an jedem Monat. Die 5 steht für den Wochentag. Hier wird das Skript also immer an jedem Freitag um 20 Minuten nach 0 Uhr ausgeführt. Natürlich könnt ihr die Zeit beliebig nach euren Wünschen anpassen. Der nächste Eintrag root steht für den Benutzer, welcher das Skript ausführen soll. Und er letzte Eintrag steht für das Verzeichnis und die Datei. Wenn ihr wollt, könnt ihr das Skript nun mit dem folgenden Befehl testen. Beachtet auch die Information, welche am Schluss im Display auftaucht und euch mitteilt, dass in einer Minute die Raspberry heruntergefahren wird (abbrechen könnt ihr diesen Neustart-Vorgang mit der Eingabe shutdown -c ). Zum Testen zuerst Root-Rechte verschaffen: mit Passworteingabe und dann das Skript mit su./update.sh ausführen. Verlassen könnt ihr den Superuser-Bereich wieder mit exit Roland Kuenen Seite 3

3. Ein automatisches Backup eines Verzeichnisses regelmäßig erstellen Ein Backup eines Verzeichnisses in regelmäßigen Abständen zu erstellen kann durchaus Sinnvoll sein. Es könnte z.b. bei einem Websurfer das /var/www-verzeichnis gesichert werden. In diesem sind alle Dateien eures Websurfers und eurer Homepage untergebracht. Sollte sich aus irgendeinem Grund die Raspberry Pi zerschießen oder die SD-Karte defekt sein, sind wenigstens die Homepage-Dokumente gesichert. Vorausgesetzt ist natürlich, dass die Backups auf einem externen Speichermedium erstellt werden. 3.1 Einen USB-Stick für die Backups mounten Der erste Schritt besteht darin, den Stick mit dem Dateiformat FAT32 auf einem Windows-PC zu formatieren. Dass ich diese Formatierung wähle hängt mit meinem Rechner zusammen. Meine Hauptplattform ist ein Windows-Rechner. Deshalb wähle ich immer Dateiformate, welche ich ohne Probleme auch auf meinem Rechner öffnen und bearbeiten kann. Nach dem Formatieren und dem einstecken in die Raspberry Pi werden die Geräte mit dem Befehl sudo blkid -o list -w /dev/null angezeigt. Es müsste ein ähnlicher Bildschirm wie der folgende angezeigt werden. Hier wird der USB-Stick unter /dev/sda1 mit dem Namen Backup angezeigt. Der Name ist der, welcher bei der Formatierung unter Windows angegeben wurde. Die Information bei Mount point zeigt an, dass der Stick noch nicht eingebunden wurde. USB-Sticks werden immer unter sda angezeigt. Die Nummer unter UUID muss für später aufgeschrieben werden. Hier ist zu beachten, wenn der Stick erneut formatiert wird, ändert sich diese Nummer und muss dementsprechend in den nachfolgenden Skripten angepasst werden. Als nächstes wird mit sudo mkdir /media/backup eine Struktur erstellt, unter welchem der USB-Stick eingebunden wird. Üblicherweise wird das media -Verzeichnis dafür gewählt. Mit dem Befehl sudo mount -t vfat -o uid=root,gid=root /dev/sda1 /media/backup wird der USB-Stick eingebunden. Natürlich muss der Eintrag von sda1 und das Verzeichnis auf die aktuellen Begebenheiten angepasst werden. Roland Kuenen Seite 4

Mit dem Befehl sudo blkid -o list -w /dev/null müsste nun bei mount point das Verzeichnis /media/backup erscheinen. Mit folgendem Befehl wird der Stick wieder ausgeworfen. sudo umount /media/backup Den USB-Stick sollte man immer auf diese Art auswerfen. Wenn er entfernt wird, während er beschrieben oder bearbeitet wird, können die Daten auf dem Stick verloren gehen. Auch ist es mir schon passiert, dass der Stick nicht mehr vollständig beschreibbar und nur noch einen Bruchteil seiner Größe angezeigt wurde. Hier musste der Stick mit einem externen Programm des Herstellers zurückgesetzt werden. Wird die Raspberry Pi heruntergefahren und neu gestartet, muss der Stick immer manuell wieder eingebunden werden. Um dies automatisch zu erledigen, muss dies in einer Initialisierungsdatei festgelegt werden. Hierzu wird die oben erwähnte UUID -Nummer benötigt. Die Initialisierungsdatei wird mit geöffnet und muss mit der Zeile sudo nano -w /etc/fstab UUID=ABCD-1234 /media/backup vfat utf8,uid=root,gid=root,noatime 0 erweitert werden. Die Datei sollte nun folgendermaßen aussehen proc /proc proc defaults 0 0 /dev/mmcblk0p1 /boot vfat defaults 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1 UUID=ABCD-1234 /media/backup vfat utf8,uid=root,gid=root,noatime 0 # a swapfile is not a swap partition, no line here # use dphys-swapfile swap[on off] for that Getestet werden kann es mit einem Neustart der Raspberry Pi und dem anschließenden ausführen von sudo reboot sudo blkid -o list -w /dev/null zum Anzeigen der angeschlossenen Geräte. Hier müsste nun beim mount point das vorher festgelegte Verzeichnis automatisch eingebunden worden sein. Roland Kuenen Seite 5

3.2 Das Skript mit den Backup-Befehlen Nachdem nun das Verzeichnis für die Backup-Ablage feststeht, kann nun das Skript erstellt werden. Zuerst allerdings erstellen wir auf dem USB-Stick einen neuen Ordner, unter welchem die Backups abgespeichert werden. Dies hat zwei praktische Gründe. Der erste ist, dass die Backups in einem separaten Ordner auf dem Stick gespeichert werden. So erleichtert es die Übersichtlichkeit und es können noch weitere Dinge auf diesem gespeichert werden. Der zweite Grund ist, dass mit diesem neuen Ordner im Skript eine Abfrage durchgeführt werden kann, ob der Stick mit dem benötigten Ordner tatsächlich eingesteckt ist. So können unkontrollierte Befehle abgefangen werden. Denn ist der Stick nicht eingebunden und das Verzeichnis, unter welchem gespeichert werden soll, nicht vorhanden, führt dies zu einem Fehler. Mit dem Befehl sudo mkdir /media/backup/www wird nun ein Ordner auf dem Stick erstellt, unter dem das Verzeichnis www der Raspberry Pi abgespeichert wird. Mit dem Befehl cd /etc/cron.d wird nun in den cron.d - Ordner gewechselt. Hier können die Skripts, welche später automatisch ausgeführt werden sollen, abgelegt werden. Natürlich kann dies auch in jedem anderen beliebigen Verzeichnis geschehen. Hier wird nun ein neues Skript für die Backups mit erstellt und mit folgendem Inhalt gefüllt sudo nano backup.sh Roland Kuenen Seite 6

#!/bin/bash -e #Datei /etc/cron.d if [ -d /media/backup/www ]; then sudo tar -vczf /media/backup/www/backup-$(date +%Y%m%d-%H%M%S).gz /var/www else exit 1 fi Erklärung: Die erste Zeile ist zur Definition des Interpreters. Die zweite nur eine Information, unter welchem Verzeichnis sich das Skript befindet. In der dritten Zeile ist eine IF-Abfrage, welche abfragt ob das zuvor erstellte Verzeichnis auf dem USB-Stick vorhanden ist. Ist dies nicht der Fall wird direkt durch exit 1 beendet. Ist die Bedingung wahr, also das Verzeichnis vorhanden, wird das Verzeichnis /var/www kopiert, komprimiert und unter dem Verzeichnis media/backup/www unter dem Namen backupaktuellesdatumunduhrzeit.gz gespeichert. Diese Datei kann unter Linux oder Windows wieder entpackt (z.b. mit zip ) und geöffnet werden. 3.3 Backup-Skript regelmäßig im Crontab ausführen Um das Skript automatisch mit einem Benutzer starten zu können, muss dies noch für die Benutzer in den Berechtigungen festgelegt werden. Mit dem Befehl sudo chmod a+x backup.sh legt ihr für alle Benutzer das Recht fest, das Skript auszuführen. Der letzte Schritt besteht darin, den Intervall im Crontab festzulegen, wann das Skript ausgeführt werden soll. Öffnet die Datei zum Festlegen der Crontabs mit sudo nano /etc/crontab Hier tragt ihr in die letzte Zeile, aber vor der #, folgenden Eintrag ein 10 0 * * 5 root sudo /etc/cron.d/backup.sh Die 10 und die 0 stehen dafür, dass das Skript immer 10 Minuten nach 0 Uhr ausgeführt wird. Die beiden nachfolgenden * stehen für den Tag des Monats und den Monat selbst. Da hier ein Stern drin steht, ist dies an jedem Monat. Die 5 steht für den Wochentag. Hier wird das Skript also immer an jedem Freitag um 10 Minuten nach 0 Uhr ausgeführt. Natürlich könnt ihr die Zeit beliebig nach euren Wünschen anpassen. Der nächste Eintrag root steht für den Benutzer, welcher das Skript ausführen soll. Und er letzte Eintrag steht für das Verzeichnis und die Datei. Wenn ihr wollt, könnt ihr das Skript nun mit dem folgenden Befehl testen. Zum Testen zuerst Root-Rechte verschaffen: mit Passworteingabe und dann das Skript mit su./backup.sh Roland Kuenen Seite 7

ausführen. Verlassen könnt ihr den Superuser-Bereich wieder mit exit 4. Report über das Update und das Backup erstellen und per E-Mail versenden Die nachfolgenden Erweiterungen beschreiben eine Textdatei, welche mit den Ergebnissen des Backup- und des Update-Skriptes beschrieben werden und einmal in der Woche an eine E-Mail-Adresse geschickt werden. Wichtig ist hier, dass ein E-Mail-Server auf der Raspberry installiert und eingerichtet ist. Hierzu siehe Kapitel 2.3 Den Websurfer mit einem E-Mail-Server unter Strato erweitern der Raspberry-Projekte auf meiner Homepage. 4.1 Report-Skript erstellen Zuerst wird eine Textdatei für die Ergebnisse im cron.d-verzeichnis erstellt. Hierzu wird das Verzeichnis mit gewechselt und mit cd /etc/cron.d sudo nano logfile.txt eine Textdatei angelegt. Zur Übersichtlichkeit kann das folgende dort eingefügt werden. Besitzer: Max Muster Datum: 28.12.2016 Information: Log-File fuer die Ergebnisse der Aktualisierungen und des Backup-Sktipts ------------------------------------------------------------------------------------------------------------ Datum Uhrzeit Skript Information. ------------- ----------- --------- ------------------------------------------------------------------------- Hier werden die Ergebnisse nun nach Datum und Uhrzeit mit den Informationen des Skriptes und der Ergebnisse gespeichert. Als nächstes wird nun das Skript zum Senden der Ergebnisse mit erstellt und mit folgendem Inhalt gefüllt sudo nano sendestatus.sh Roland Kuenen Seite 8

#!/bin/bash -e #Datei /etc/cron.d mail -s "Wöchentlicher Statusbericht" ich@meinedomain.de < /etc/cron.d/logfile.txt Erklärung: Die erste Zeile ist zur Definition des Interpreters. Die zweite nur eine Information, unter welchem Verzeichnis sich das Skript befindet. In der dritten Zeile ist der Befehl zum Senden der E-Mail. Der Betreff ist der Wöchentlicher Statusbericht und die nachfolgende E-Mail-Adresse der Empfänger. Sinnvollerweise sollte hier die eigene stehen. Der letzte Eintrag füllt die E-Mail mit dem Inhalt der Textdatei. Hier ist es wichtig den kompletten Pfad anzugeben. Um das Skript automatisch mit einem Benutzer starten zu können, muss dies noch für die Benutzer in den Berechtigungen festgelegt werden. Mit dem Befehl sudo chmod a+x sendestatus.sh legt ihr für alle Benutzer das Recht fest, das Skript auszuführen. Der letzte Schritt besteht darin, den Intervall im Crontab festzulegen, wann das Skript ausgeführt werden soll. Öffnet die Datei zum Festlegen der Crontabs mit sudo nano /etc/crontab Hier tragt ihr in die letzte Zeile, aber vor der #, folgenden Eintrag ein 30 0 * * 5 root sudo /etc/cron.d/sendestatus.sh Die 30 und die 0 stehen dafür, dass das Skript immer 30 Minuten nach 0 Uhr ausgeführt wird. Die beiden nachfolgenden * stehen für den Tag des Monats und den Monat selbst. Da hier ein Stern drin steht, ist dies an jedem Monat. Die 5 steht für den Wochentag. Hier wird das Skript also immer an jedem Freitag um 30 Minuten nach 0 Uhr ausgeführt. Natürlich könnt ihr die Zeit beliebig nach euren Wünschen anpassen. Der nächste Eintrag root steht für den Benutzer, welcher das Skript ausführen soll. Und er letzte Eintrag steht für das Verzeichnis und die Datei. Wenn ihr wollt, könnt ihr das Skript nun mit dem folgenden Befehl testen. Zum Testen zuerst Root-Rechte verschaffen: mit Passworteingabe und dann das Skript mit su./sendestatus.sh ausführen. Verlassen könnt ihr den Superuser-Bereich wieder mit exit Nun sieht man auch eine gewisse chronologische Reihenfolge der einzelnen Skripts. Zuerst wird ein Backup um 10 Minuten nach 0 Uhr erstellt, dann das System um 20 Minuten nach Aktualisiert und zum Schluss der Status per E-Mail um 30 Minuten nach 0 Uhr gesendet. Roland Kuenen Seite 9

4.2 Backup-Skript anpassen Nun muss das Backup-Skript um die Einträge für den Status erweitert werden. Hierzu wird erneut das Skript mit sudo nano /etc/cron.d/backup.sh geöffnet und um die folgenden Einträge erweitert Zeile 1: #!/bin/bash -e Zeile 2: #Datei /etc/cron.d Zeile 3: statusmeldung="backup nicht erfolgreich" Zeile 4: if [ -d /media/backup/www ]; then Zeile 5: sudo tar -vczf /media/backup/www/backup-$(date +%Y%m%d- %H%M%S).gz /var/www && statusmeldung="backup erfolgreich erstellt." Zeile 6: sudo echo "$(date +%Y.%m.%d) $(date +%H:%M:%S) Backup $statusmeldung" >> /etc/cron.d/logfile.txt Zeile 7: else Zeile 8: sudo echo "$(date +%Y.%m.%d) $(date +%H:%M:%S) Backup Backup nicht erfolgreich erstellt, da das Verzeichnis nicht gefunden wurde." >> logfile.txt Zeile 9: exit 1 Zeile 10: fi Erklärung: Zeile 1 und 2 wie im Kapitel zuvor. Zeile 3 erstellt am Anfang eine Variable mit einem Textinhalt. Zeile 4 fragt ab ob das Verzeichnis existiert und falls ja, dann wird das Backup des Verzeichnisses /var/www erstellt und am Ende die Variable auf Erfolgreich gesetzt (Zeile 5 und 6). Sollte das Verzeichnis nicht existieren (Zeile 7), dann wird die Variable auf nicht Erfolgreich gesetzt. Die logfile.txt wird jeweils um den Status erweitert und mit Datum, Uhrzeit, Skriptname und Meldung in die letzte Zeile (mit >> ) des Dokuments geschrieben. Roland Kuenen Seite 10

4.3 Update-Skript anpassen Auch hier muss das Skript um die Statusmeldung erweitert werden. Hierzu wird erneut das Skript mit sudo nano /etc/cron.d/update.sh geöffnet und um die folgenden Einträge erweitert Zeile 1: #!/bin/bash -e Zeile 2: #Datei /etc/cron.d Zeile 3: statusmeldung="update nicht erfolgreich." Zeile 4: sudo apt-get update -y && apt-get dist-upgrade -y && apt-get autoremove - y && statusmeldung="update erfolgreich ausgefuehrt." Zeile 5: sudo echo "$(date +%Y.%m.%d) $(date +%H:%M:%S) Update $statusmeldung" >> /etc/cron.d/logfile.txt Zeile 6: sudo shutdown -r 1 Erklärung: Zeile 1, 2 und 3 wie im Kapitel zuvor. Zeile 4 wird um die Variablenänderung und dem &&-Operator erweitert, dass dies nur geschieht, wenn alle Befehle erfolgreich ausgeführt wurden. In Zeile 5 wird die logfile.txt wieder um das Ergebnis erweitert. Zeile 6 fährt die Pi nach einer Minute runter und startet sie mit dem Parameter r erneut. Roland Kuenen Seite 11