NEWS
Speicherkarte plötzlich voll. Finde die Daten aber nicht.
-
@liv-in-sky
Ok, probiere ich sofort.Das war die Lösung.
Vielen lieben dank!NAS läuft eigentlich immer durch, ausser es wird mal ein Update gefahren oder so. Da muss ich wohl noch optimieren.
-
ich prüfe immer ob die mounts da sind - über ein bashscript und nur dann wird sychronisiert
oder du könntest dir ja auch einen datenpunkt machen, indem du die größe des ordners hast - und wenn der zu groß ist gibt es einen alarm - mache sowas mit dem /var/log folder - da mein log so groß war, das der plattenplatz zu klein wurde (syslog mit über 15GB größe
)
-
Ich hab deinen Ansatz genommen und versucht in mein Script einzubauen.
Dein Blockly Script ist noch ein wenig schwarze Magie für mich.Mein Script sieht nun so aus:
#!/bin/bash #Variablen BACKUP_PFAD="/home/darki/Safe/Backups" BACKUP_ANZAHL="5" BACKUP_NAME="SmartHomeServer"#Backup erstellen mount | grep //192.168.178.10/Safe/SmartHomeServerBackups #<-- Mount prüfen if [ $? -ne 0 ]; then #<-- wenn nicht vorhanden mount -a #<-- fstab nochmal mounten fi sleep 3 #<-- da ich nicht weiß, wie lange so etwas dauert, hab ich einfach mal ne wartezeit rein gemacht mount | grep //192.168.178.10/Safe/SmartHomeServerBackups #<-- Nochmal prüfen if [ $? -ne 0 ]; then touch /home/darki/Backup_log/mount_error #<-- wenn wieder nicht erfolgreich, erstelle ich einfach diese leere Datei und sehe, dass etwas nicht stimmt exit #<-- dann exit, wenn das immer noch nicht erfolgreich war fi dd if=/dev/mmcblk0 of=${BACKUP_PFAD}/${BACKUP_NAME}-$(date +%Y%m%d-%H%M%S).img bs=1MB #Alte Sicherung löschen pushd ${BACKUP_PFAD}; ls -tr ${BACKUP_PFAD}/${BACKUP_NAME}* | head -n -${BACKUP_ANZAHL} | xargs rm; popd
Im iobroker werde ich prüfen ob die Datei da ist und dann was auslösen, das finde ich schon herraus, wie das geht.
-
im blockly wird dieser befehl über das exec-blockly ausgeführt
du -h /var/log | tac | awk 'NR==1 {print $1}' | sed 's/.$//'
kannst ja mal in deine shell eingeben und schauen, was rauskommt
ps: cooles bash-script
-
um einen datenpunkt in iobroker zu schreiben nehme ich immer so einen befehl - es gibt zwar iobroker command, die ds auch lokal können - ich bin aber bei curl geblieben- im iobroker muss der simple api adapter installiert sein
tempi=`sensors | grep temp1 -m 1 | awk '{print $2}' | awk '{print substr($1, length($0)-6,2)}'` curl "http://192.168.178.59:8087/set/controll-own.0.mount.CPUTemp?value=$tempi"
zuerst eine variable schreiben und diese dann versenden
-
@liv-in-sky
Wow, einfach nur wow.
Direkt ein Objekt beschreiben im Script.
Das es geht war mir klar, nur für das "wie" hätte ich Stunden geopfert.
Wo/wie kann ich spenden? Bester Mann!Kann ich das hier im Forum irgendwie honorieren? Daumen hoch oder sowas?
-
@darki
und noch ein beispiel für die festplattenanzeige -CURRENTROOT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g') CURRENTROOT2=$((CURRENTROOT/3)) CURRENTROOT3=$((CURRENTROOT*2/3)) curl "http://192.168.178.59:8087/set/controll-own.0.mount.DiskhelpRoot?value=0" sleep 3 curl "http://192.168.178.59:8087/set/controll-own.0.mount.DiskhelpRoot?value=$CURRENTROOT2" sleep 3 curl "http://192.168.178.59:8087/set/controll-own.0.mount.DiskhelpRoot?value=$CURRENTROOT3" sleep 3 #CURRENTROOT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g') curl "http://192.168.178.59:8087/set/controll-own.0.mount.DiskhelpRoot?value=$CURRENTROOT"
damit wird der wert aufgeteilt und in der vis "wächst" der wert - nur für die optic (gelber balken)
danke - wenn spenden - dann an iobroker - ich mach das gerne, wenn ich gerade zeit habe
-
if [mountpoint -q /mnt/abc]; then ... fi
Hiermit kannst du auch prüfen ob ein Pfad richtig gemounet wurde.
-
Ihr seid einfach die besten.
Hab mir mal zum testen Telegram Nachrichten rein gemacht.
Sowas sollte nicht nochmal passieren. Hab viel gelernt, danke vielmals.
10er ist raus.Vis hab ich noch keine, wird bestimmt irgendwann mal kommen. Erst noch nen haufen WS2812 fertig machen.
Aber den Tipp merke ich mir auch @liv-in-sky ! -
@darki Übrigens, ich schicke mir ab und zu E-Mails per Bash Skript:
curl http://$IOB_SIMPLEAPI_DOMAIN:$IOB_SIMPLEAPI_PORT/set/$OID_EMAIL_TITLE?value=$EMAIL_TITLE >/dev/null 2>&1 sleep 2 curl http://$IOB_SIMPLEAPI_DOMAIN:$IOB_SIMPLEAPI_PORT/set/$OID_EMAIL_TEXT?value=$EMAIL_TEXT_TRUE >/dev/null 2>&1
Der Simple API Adapter ist für sowas perfekt
Du musst dann nur noch auf den DP OID_EMAIL_TEXT triggern und die Mail rausschicken
-
edit: Hab mich im Thread vertan, sry...