Impressum Startseite Grund Installation Grundlagen Hilfreiches Projekte Querschläger Meckerecke

Grundlagen: Bash

Ja, ich hasse auch "Bash". Aber leider geht es nicht ganz ohne.

Am Anfang hatte ich nur ein Bash Script, welches mir ein PHP Script aufrief und wo ich alles drin programmiert hatte. Es lief auch ganz brauchbar. Aber man stösst schnell an seine Grenzen.

Bash ist recht schlank, ähnlich wie php und sehr schnell. Mittlerweile mache ich immer mehr direkt in Bash statt in php, aber eben nicht alles.

Alles in allem habe ich einige Grundfunktionen mit denen ich arbeite und so ziemlich alles abfragen kann.

# Einen Wert in eine Datei schreiben :

echo "Inhalt" > /var/www/Logfile.txt

# Eine weitere Zeile in die gleiche Datei einfügen:

echo "Inhalt" >> /var/www/Logfile.txt

# Den Inhalt einer Datei in eine Variable lesen:

Variable="$( cat /var/www/Logfile.txt )"

# If then Schleifen:

if [ "$Variable" = "0" ]; then
Variable2="Super!"
fi

# Mehrfach Abfrage in einer If Schleife && entspricht dem "UND":

if [ "$Variable" = "0" ] && [ "$Variable2" = "Super!" ]; then
curl "http://192.168.0.2/Webseite.php"
fi

# Überprüfen ob eine Datei existiert:

FILE=/var/www/Logfile.txt
if [ -e $FILE ]; then

curl "http://192.168.0.2/Webseite.php"
fi

# Überprüfen ob eine Datei NICHT existiert:

FILE=/var/www/Logfile.txt
if ! [ -e $FILE ]; then

curl "http://192.168.0.2/Webseite.php"
fi

# Erstellungsdatum einer Datei abfragen:

file=/var/www/Logfile.txt
erstellungsdatum=$( date -r $file +%s )

# Aktuelles Datum:

aktuellesdatum=$( date +%s )

Mit diesen paar befehlen kann man so einiges Organisieren und bewerkstelligen. Wichtig sind vor allem die Leerzeichen ! bei den eckigen Klammern!

Eingeleitet wird ein Bash Script immer mit diesen komischen Zeichen: "#!/bin/sh" und danach kommen die eigentlichen Befehle.

So ein Raspberry Pi läuft leider nicht 24 /7 Tage "rund" - irgendwann hängt sich das Teil einfach auf - so zumindest meine Erfahrungen. Wahrscheinlich kommt das durch irgendwelche Pufferüberläufe oder sonst was.

Um dem zu entgehen habe ich auf allen Raspberrys ein Reboot.sh Script hinterlegt welches durch einen Crontab 1x mal pro Woche aufgerufen wird, dadurch laufen die RPis sehr stabil - Das System wird also 1 x pro Woche rebootet und aufgeräumt.

Dort drin steht z.b. so etwas:

Datei /var/www/reboot.sh

#!/bin/sh
rm -rf ~/.local/share/Trash/files/*
sudo reboot

Aufgerufen wird es mittels eines Cronjobs:

sudo crontab -e

und des folgenden Eintrages:

0 0 * * 0 /bin/bash /var/www/reboot.sh >/dev/null 2>&1

Es werden alle Trashes geleert und das System wird sauber rebootet.

Impressum Startseite Grund Installation Grundlagen Hilfreiches Projekte Querschläger Meckerecke