Skript: Daten per smbclient holen oder bringen

3 Jan 2015 - Lesezeit: 2 Minuten

Da ich tendenziell eher zur fauleren Fraktion der Systemadministratoren gehöre, scheue ich mich nicht auch nur ansatzweise wiederkehrende Aufgaben direkt per Skript zu lösen.

Daten welche per SMB Protokoll (Samba/Windows) bereitgestellt oder bedient werden können, können unterUnixoiden Systemen hervorragend per Kommandozeile abgearbeitet werden.

In meinem Fall lag die einfache Aufgabe zu Grunde, dass mein FreeBSD Server Daten von meinem digitalen Videorecorder abholen und in einem Verzeichnis bereitstellen sollte. Von dort aus kann ich sie sehe in ein anderes Format umwandeln und bei Bedarf auch gern an einen anderen Speicherort verschieben.

Aus diesem Grund habe ich mir nachfolgendes kleines Skript gebastelt, welches per Crontab aufgerufen wird um so meine Daten von A nach B zu schieben:

#!/usr/local/bin/bash

SERVER=IP-ADRESSE-DES-VDR
USER=GUEST
PASSWORD=TOTALGEHEIM
SHARE=Recordings
LOCALDIR='/media/Datenspeicher'
REMOTEDIR='/


smbclient \\\\$SERVER\\$SHARE -U $USER $PASSWORD -c "lcd $LOCALDIR; cd $REMOTEDIR; prompt;  mget *"

Wie man sieht: alles kein Hexenwerk. Und doch hilft mir dieses Skript in hohem Maße Dinge zu automatisieren.

Für Windows Administratoren kann dies eine Meine Hilfestellung sein, denn auch die Mitgliedschaft in einer Domäne kann unterstützt werden. Auf diese Art und Weise ist es möglich von einem Unixoiden Systen Daten von zum Beispiel dem Datei_Server zu holen um sie in die lokale Sicherung aufzunehmen. Alternativ können Daten von dem Server System auf ein anderes kopiert werden um zum Beispiel die voller Bandbreite nach Feierabend zu nutzen sofern Datenbestände an mehreren Standorten bereitgehalten werden müssen.

Entscheidend ist der letzte Teil der letzten Zeile. Hier ist ein mget oder mput die Weiche ob Daten von dem Skript geholt oder gebracht werden sollen.