Skripts (Shell)

Aus TechnikWiki

HookTwSeo HookTwSeo HookTwSeo HookTwSeo

Beschreibung

Ein Shellskript oder Shell-Skript ist ein Computerprogramm, das von einer Shell interpretiert und ausgeführt wird. Es ist letztlich eine ausführbare Textdatei, in der all jene Anweisungen verwendet werden können, die ein Benutzer auch in der Befehlszeile nutzen kann.

SSH Terminal Begrüßung

Scripts Shell01
SSH Terminal

Bei einer erfolgreichen SSH Verbindung wird die Datei "/etc/bash.bashrc" aufgerufen. Dort können beliebige Shellskripte hinzugefügt werden, die jedoch nur beim Aufruf des SSH Terminals ausgeführt werden.

Dieser Shellskript muss nur heruntergeladen werden und auf dem Server gespeichert werden. Anschließend muss am Ende der Datei "/etc/bash.bashrc" der Pfad zu diesem Skript eingefügt werden.

Um die Funktionalität des Skriptes "rb_start.sh" zu testen, kann dieser mit folgendem Befehl ausgeführt werden:

Copy to clipboard

rb_start.sh (Download)

Copy to clipboard

Siehe auch

USB Devices

Scripts Shell02
USB Devices

Mit diesem Skript werden alle USB-Geräte ausgelesen. Er gibt die "VendorId" und "ProductId" (Seriennummer) zurück.

Mit Hilfe einer sog. udev-Regel wird ein Shellskript aufgerufen, wenn der definierte USB-Stick mit dem Raspberry verbunden wird.

Nun kann in diesem Fall die Synchronisation der Playlist (Musik fürs Auto) starten.

Copy to clipboard

rb_usbdevices.sh (Download)

Copy to clipboard

In diesem Beispiel wird der Skript "rb_syncplaylist.sh" nur aufgerufen, wenn der USB-Datenträger mit der "VendorId:0951" und "ProductId:1624" verbunden wird.

Copy to clipboard
ACTION=="add",ATTRS{idVendor}=="0951",ATTRS{idProduct}=="1624",ENV{DEVTYPE}=="usb_device",RUN+="/data/scripts/rb_syncplaylist.sh"

Im Skript "rb_syncplaylist.sh" wird einfach mit rsync die Playliste synchronisiert, damit nicht immer die gesamte Playlist gelöscht und wieder kopiert werden muss. Bei der neueren Version wird nun Git verwendet, da es auf allen PCs und Server laufen habe.

Der Parameter "ENV{DEVTYPE}=="usb_device"" muss gesetzt werden, ansonsten wird der entsprechende Shellskript mehrmals ausgeführt.

Siehe auch

Cronjobs

Der Cron-Daemon dient der zeitbasierten Ausführung von Prozessen in Unix und unixartigen Betriebssystemen wie Linux. Hier einige Beispiele von Cronjobs, die mit dem Benutzer "root" einen Shellskript ausführen und die Ausgabe in ein Logfile schreiben (stdout & stderr | append).

Copy to clipboard
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# minütlich alle 3 Minuten
*/3 * * * *     root /data/scripts/cr_syncip.sh >> /data/scripts/logs/syncip.log 2>&1

# minütlich alle 10 Minuten
*/10 * * * *    root /data/scripts/cr_amazonapi.sh >> /data/scripts/logs/amazonapi.log 2>&1

# minütlich alle 30 Minuten
*/30 * * * *    root /data/scripts/cr_browser.sh >> /data/scripts/logs/browser.log 2>&1

# täglich um 01:00
0 1 * * *       root /data/scripts/cr_router.sh >> /data/scripts/logs/router.log 2>&1

# täglich um 07:00
0 7 * * *       root /data/scripts/cr_router.sh >> /data/scripts/logs/router.log 2>&1

# wöchentlich am sonntag um 00:00
0 0 * * 1       root /data/scripts/cr_backup.sh >> /data/scripts/logs/backup.log 2>&1

Siehe auch

Terminal Befehle

Hier eine kleine Übersicht von verschiedenen Terminal Befehlen die häufig benötigt werden.

System

Eine Auflistung aller Systemprozesse.

Copy to clipboard

Eine Auflistung aller Systemprozesse mit folgendem Benutzer laufen.

Copy to clipboard

Benutzerrechte

Die Zugriffsrechte von Verzeichnisse und Dateien setzen.

Copy to clipboard

Die Zugriffsrechte des Benutzers und der Gruppe von Verzeichnisse und Dateien setzen.

Copy to clipboard

Siehe auch

Dateisystem

Eine Auflistung der Verzeichnis- und Dateistruktur.

Copy to clipboard

Die Größe des Verzeichnisses in MB ermitteln.

Copy to clipboard

Ein Verzeichnis mit "tar.gz" komprimieren.

Copy to clipboard

Ein Verzeichnis mit "tar.gz" dekomprimieren.

Copy to clipboard

Ein Verzeichnis mit "rsync" synchronisieren.

Copy to clipboard

Netzwerk

Auslesen aller Netzwerkkonfigurationen.

Copy to clipboard

Erreichbarkeit folgender IP-Adresse testen.

Copy to clipboard

Erreichbarkeit einer Webseite testen und kontrollieren ob die DNS-Einstellungen funktionieren.

Copy to clipboard

FTP

Ein Backup kann mit Hilfe von FTP (File Transfer Protocol) auf einem Server hochladen werden.

Achtung: Eine FTP-Verbindung ist nicht verschlüsselt und deshalb sind folgende Punkte die bessere und sichere Variante:

  • Das Backup mit einem Passwort verschlüsseln.
  • Das Backup mit SFTP (Secure File Transfer Protocol) hochladen.
  • Das Backup direkt mit SSH (Secure Shell) hochladen (Public- Private Key).
Copy to clipboard

Siehe auch

cURL (Wettervorhersage)

Scripts Shell03
Wettervorhersage

Mit cURL (Client for URLs oder Curl URL Request Library) ist auch möglich eine textbasierte Wettervorhersage abzurufen.

Das Wetter lässt sich einfach und schnell von jedem Gerät mit Internetanbindung aufrufen. Einzige Voraussetzung ist, dass cURL (oder ein ähnliches Tool) vorhanden sein muss. Bei den meisten Linuxdistributionen ist cURL schon standardmäßig vorinstalliert.

Copy to clipboard

Kommentare