Freien Speicherplatz mittels Skript auf einem entfernten NAS ermittel

Status
Für weitere Antworten geschlossen.

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
Hallo zusammen,

in meinem Netzwerk befinden sich zwei 2 Synology-NAS, zwischen denen immer zu einer bestimmten Uhrzeit mit folgendem Befehl der Ordner Public syncronisiert wird.

Quellserver = DS3612 (IP : 192.168.0.5)
Zielserver = EDS14 (IP : 192.168.0.10)

Das Skript für die Syncronisation läuft auf der DS3612 (Quellserver). Die Befehlszeile dafür lautet :

rsync -av --syno-acl --ignore-errors --delete --exclude=@eaDir /volume1/Public/ root@192.168.0.10:/volumeUSB2/usbshare/@sharebin/Public

Ist es möglich, vom Quellserver (DS3612) aus mittels Skript den freien Speicherplatz auf 'volumeUSB2' auf dem Zielserver (EDS14) abzufragen ?

Danke für Eure Tipps, wenn noch Infos benötigt werden liefere ich diese gerne noch nach.

Viele Grüße
Fraubi
 

dil88

Benutzer
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
30.835
Punkte für Reaktionen
2.272
Punkte
829
Du kannst per ssh-Befehl mit entspechender Option einen Remote-Befehl absetzen - in diesem Fall df.
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
@dil88

Könntest Du mir dazu evtl. auf Basis meiner o.g. Befehlszeile kurz helfen, bin nicht so fit mit Linux....

Versucht hatte ich bereits

df -h root@192.168.0.10:/volumeUSB2/usbshare/@sharebin/Public

Da ging aber nix :(

Danke und Gruß
Fraubi
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Ich wüsste gerade nicht wie der Quellserver den freien Speicherplatz vom Remoteserver auf direktem weg abfragen kann.
Benötigst du diese Information auf dem Quellserver? Wenn ja, könnte man das auf indirektem Weg lösen.

Der Remoteserver führt selbst per script periodisch folgenden Befehl aus und speichert die Information z.B. in einer text Datei...
Rich (BBCode):
# Anzeige des freien Speicherplatz in Bytes
df -k /volumeUSB2/ | grep /volumeUSB2 | awk '{print $3}' > /volumeUSB2/.available_space.txt

# oder human readable mit Optionsparameter -h (zeigt dann kiloBytes, megaBytes, gigaBytes, usw....)
df -h /volumeUSB2/ | grep /volumeUSB2 | awk '{print $3}' > /volumeUSB2/.available_space.txt

...und kopiert die Info Datei mittels scp auf den Quellserver. Somit verfügt der Quellserver ständig über die Information des freien Speicherplatzes auf dem entfernten Verzeichnis USB2 des Remoteservers.
Rich (BBCode):
scp /volumeUSB2/.available_space.txt root@192.168.0.5:/volume1/temp/

Gruß
luddi
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Ach doch, das geht auch auf direktem Weg vom Quellserver aus.... also braucht man den Spagat über den indirekten Weg nicht machen.

Rich (BBCode):
ssh root@192.168.0.10 "df -k" | grep /volumeUSB2 | awk '{print $3}'

ssh root@192.168.0.10 "df -h" | grep /volumeUSB2 | awk '{print $3}'
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
@luddi

Danke schonmal für den Quellcode.

Wie ich schon geschrieben hatte sichere ich mittels Skript von einem NAS auf das andere. Dieses Sicherungsskript läuft immer nachts durch. Am Ende des Skriptes wird eine Statusmail verschickt, die mir anzeigt, dass die Sicherung gelaufen ist. In diese Statusmail würde ich gerne als Info einbinden, wieviel Platz noch auf dem Zielserver noch vorhanden ist.

Für eine lokale Sicherung (z.B. Sicherung der Daten von der DS3612 auf eine an die DS3612 angeschlossene USB-Festplatte) klappt es, die Mail enthält Angaben über den freien Speicherplatz. Aber es scheitert sozusagen daran, wenn Daten auf ein anderes NAS gesichert werden.

Daher wäre es sinnvoll, dass immer direkt bei oder bzw. nach Ausführung meines Sicherungsskriptes der freie Speicherplatz ermittelt wird.

Viele Grüße
Fraubi
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
@luddi

SUPER !!!!!!!

Dein zweiter Ansatzpunkt war der Treffer. So läuft es.............:D

Mit dem Code kann ich meine Mail entsprechend anpassen...

Vielen vielen Dank für Deine Hilfe

Gruß
Fraubi
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Daher wäre es sinnvoll, dass immer direkt bei oder bzw. nach Ausführung meines Sicherungsskriptes der freie Speicherplatz ermittelt wird.
Nachdem das Sicherungsscript abgeschlossen ist, einfach wie aus post #5 den genannten Befehl aufrufen und die Info dann in den Text deiner mail mit einbauen.

**EDIT: @fraubi - Du warst schneller... :D

Gruß
luddi
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Falls das für dich interessant ist, könntest du ja auch noch als zusätzliche Information den belegten Speicherplatz in Prozent [%] anzeigen lassen.... einfach bei dem print Befehl $4 anstatt $3.

Gruß
luddi
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
@luddi

Hi,

ich hätte da noch eine weitere Frage, vielleicht könntest Du mir da mit Deinen genialen Kenntnissen nochmal kurz auf die Sprünge helfen....ich stehe nämlich irgendiwe auf dem Schlauch...und zwar geht es mir um eine Sortierung.....

Mit folgendem Befehl lese ich den Inhalt des Verzeichnisses /volumeUSB2/usbshare/@sharebin aus und speichere diesen in die Variable 'verzeichnisgroessen'.

verzeichnisgroessen=`ssh root@192.168.0.10 "du -sh" /volumeUSB2/usbshare/@sharebin/* | sort`

Die Ausgabe sieht dann immer so aus

512.0M /volumeUSB2/usbshare/@sharebin/@tmp
182.0M /volumeUSB2/usbshare/@sharebin/@database
63.8M /volumeUSB2/usbshare/@sharebin/web
22.0G /volumeUSB2/usbshare/@sharebin/surveillance
16.0K /volumeUSB2/usbshare/@sharebin/@spool
4.0K /volumeUSB2/usbshare/@sharebin/music

Ich weiss, dass es für den Befehlt 'sort' diverse Parameter für die Sortierfunktionen gibt. Trotz Google werde ich allerdings nicht schlau aus den möglichen Parametern.

Meine Ausgabe soll immer alphabetisch nach dem Ordnernamen (also der Name hinter dem letzten '/') sortiert werden soll (hab ich mal fett gekennzeichnet).

Ich habe schon den Parameter -t "/" versucht, klappt alles nicht.

Weißt Du da evtl. einen Rat ??

Danke für Deine Mühe
Fraubi
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
So, nach diversen Versuchen habe ich es herausgefunden........und es war so einfach...

Es reicht lediglich

verzeichnisgroessen=`ssh root@192.168.0.10 "du -sh" /volumeUSB2/usbshare/@sharebin/*` ohne den Befehl 'sort'

und schon klappt es.....

Grüße
Fraubi
 

luddi

Benutzer
Sehr erfahren
Mitglied seit
05. Sep 2012
Beiträge
3.259
Punkte für Reaktionen
601
Punkte
174
Der Befehlt "sort" sortiert die Ausgabe zeilenweise alphabetisch.
Mich wundert dennoch, dass du eine Ausgabe erhältst wie du berichtest:

Rich (BBCode):
512.0M	/volumeUSB2/usbshare/@sharebin/@tmp
182.0M	/volumeUSB2/usbshare/@sharebin/@database
63.8M	/volumeUSB2/usbshare/@sharebin/web
22.0G	/volumeUSB2/usbshare/@sharebin/surveillance
16.0K	/volumeUSB2/usbshare/@sharebin/@spool
4.0K	/volumeUSB2/usbshare/@sharebin/music

Denn es sollte eigentlich folgendes dabei herauskommen:
Rich (BBCode):
16.0K	/volumeUSB2/usbshare/@sharebin/@spool
182.0M	/volumeUSB2/usbshare/@sharebin/@database
22.0G	/volumeUSB2/usbshare/@sharebin/surveillance
4.0K	/volumeUSB2/usbshare/@sharebin/music
512.0M	/volumeUSB2/usbshare/@sharebin/@tmp
63.8M	/volumeUSB2/usbshare/@sharebin/web
Hier sieht man, dass die Sortierung zeilenweise geschieht und in diesem Beispiel die Ausgabe von 1 - 6 aufsteigend sortiert wird.

Und du hast es ja selbst gelöst. Wenn man das 'sort' weg lässt dann sieht man die alphabetische Reihenfolge der Verzeichnisse da es sich dabei um eine alphabetische Rekursion ab Verzeichnisebene handelt.

Gruß
luddi
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat