Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11
  1. #1

    Standard Script nur ausführen wenn DS läuft

    Hallo zusammen,

    Ich möchte gerne ein Skript alle 5minuten ausführen, jedoch nur dann wenn die DS sowieso online ist. Das Skript selber sollte also die DS nicht aus dem Ruhezustand aufwecken!
    Gerne würde ich dies unabhängig von der Zeit machen, im Aufgabenplaner gibt es ja die Möglichkeit ein Zeitfenster auszuwählen.
    Die DS ist grundsätzlich 24/7 verfügbar, soll aber weiterhin bei Nichtgebrauch in den Ruhezustand gehen.

    gibt es da eine Möglichkeit?
    Synologys Aufgabenplaner wie auch "cronjob" sind gemäss meiner Recherche nur in der Lage zeitabhängig Aufgaben zu starten.

    Noch eleganter wäre, wenn das Skript nur ausgeführt wird wenn sich in einem definierten Verzeichnis etwas ändert, sprich eine Datei hochgeladen wird, das scheint mir aber noch schwieriger zu bewerkstelligen..


    Habe die DS918+ mit aktuellem DSM.


    Ich danke euch!

  2. #2
    Anwender Avatar von Tommes
    Registriert seit
    26.10.2009
    Beiträge
    7.608

    Standard

    Zitat Zitat von burtythekoala Beitrag anzeigen
    Ich möchte gerne ein Skript alle 5minuten ausführen, jedoch nur dann wenn die DS sowieso online ist. Das Skript selber sollte also die DS nicht aus dem Ruhezustand aufwecken!
    Kurze Frage! Wie soll die DS denn in den Ruhezustand gehen, wenn alle 5 Minuten ein Script läuft?

    DS218+ | 2x WD Red 3TB Basis (btrfs) | 2 + 8 GB RAM
    DS216+ | 1x WD Red 4TB Basis (btrfs) | 4 GB RAM
    DS115 | WD Green 4TB (ext4) | 512 MB RAM
    Raspberry Pi 4B | Transcent 16 GB | 4 GB RAM | Pi-Hole, OpenVPN

  3. #3

    Standard

    Ich lasse Scripte auch zyklisch laufen.
    Jedoch wird das Script erst dann aktiv, wenn eine bestimmte Bedingung vorliegt.

    Zum Beispiel etwa so:
    Code:
    ################################################################################
    ### Kopieren der Logfiles von /var/log in den Ordner _SYSTEMPROTOKOLLE_
    export SOURCE='/var/log/'
    export DESTIN='/volume1/_SYSTEMPROTOKOLLE_/myroot/var/log'
    
    
    if [ -d ${DESTIN} ]
      then
        # Jetzt wird kopiert
        mkdir -p $DESTIN
        echo /bin/rsync -rau --delete-before --ignore-errors $SOURCE $DESTIN
        /bin/rsync -rau --delete-before --ignore-errors $SOURCE $DESTIN
        chown USER:GROUP -R $DESTIN
        chmod -R 770 $DESTIN
      else
        # Zielverzeichnis nicht vorhanden
        exit 0
    fi
    Ob dadurch die die DS 'aufwacht', weiss ich nicht, weil ich den Ruhezustand nicht nutze ...
    DSM 6.2.2-24922-U6
    DS916+ [8GB] - MASTER mit DX513
    DS415+ [8GB] - BACKUP mit DX213
    DS215+ [1GB] - Master beim Vater
    DS116_' [1GB] - Backup beim Vater
    => HP - Volumes mit DSM

  4. #4

    Standard

    Zitat Zitat von burtythekoala Beitrag anzeigen
    ...Noch eleganter wäre, wenn das Skript nur ausgeführt wird wenn sich in einem definierten Verzeichnis etwas ändert, sprich eine Datei hochgeladen wird, das scheint mir aber noch schwieriger zu bewerkstelligen..
    Nein, das ist relativ einfach. Dazu gibt es das Tool inotifywait. Das ist im iPKG drin

    Ich hatte das auch mal dazu genutzt um auf eine Dateiinhaltsaenderung zu reagieren. Ansonsten habe ich gerade letztens einen kleinen Verzeichnisupdatelistener mit inotifywait geschrieben um eingehende SMS per eMail weiterzuschicken. So aehnlich muesste Dein Script dann auch aussehen: In einer Endlosschleife auf neue Dateien in einem Verzeichnis warten und dann Deine gewuenschte Aktion initieren. Die Frage ist nur ob inotifywait die Syno nicht immer wieder aufweckt.
    Geändert von framp (22.01.2020 um 12:41 Uhr)

  5. #5
    Anwender Avatar von peterhoffmann
    Registriert seit
    17.12.2014
    Beiträge
    2.762

    Standard

    Der Ruhezustand der HDDs wird nicht direkt vom NAS (bzw. dem DSM) bestimmt, sondern wird durch die Firmware der HDDs gesteuert.
    Wenn also ein Zugriff durch das Linuxsystem auf die HDDs erfolgt, läuft die eingestellte Zeit wieder von vorne los bzw. die HDDs wachen auf, wenn sie schon um Ruhezustand sind.

    Man könnte jetzt probieren alle 5min durch ein Bash-Script ein Verzeichnis überwachen zu lassen und schauen, ob das Linuxsystem nun alle 5min physisch auf der HDD nachschaut (und damit den Ruhezustand verhindert) oder so schlau ist das Ergebnis aus dem Cache zu lesen. Ich habe es selber noch nie probiert. Probiere es aus und berichte.

    Kleines Testscript (aus der Hüfte geschossen, ohne Gewähr):
    Code:
    cd /volume1/dein/Verzeichnis
    list=$(echo *)
    if [ "$list" = "*" ] || [ "$list" = "@eaDir" ]
    then
    echo "Verzeichnis leer"
    else
    echo "Verzeichnis nicht leer"
    fi
    Viele Grüße,
    Peter

    DS716+II
    8GB RAM, SSD u. 6TB
    | |
    | |
    | |
    | |
    | |
    O AvrLogger für Synology DS
    Temperaturen, Netzwerk- und HDD-Aktivität fest im Blick
    O Ultimate Backup
    Backup von Daten leichtgemacht
    O synOCR - GUI
    Verarbeitung und OCR von PDFs

  6. #6

    Standard

    @AndiHeitzer
    "rsync --delete-before --ignore-errors" könnte unerwünschte Ergebnisse zeitigen, falls dabei was schiefgeht.
    ( DS1812+ DS2411+ ) in Rente

  7. #7

    Standard

    Ich habe die Parameter irgendwo aus dem I-Net.
    Ein Linuxianer bin ich nicht, aber selber was zusammensuchen und daraus basteln, ja, das mach ich.

    Magst Du mir bitte verraten, wo es denn im Zweifelsfall klemmen könnte?
    Ein Fallbeispiel reicht mir, um das evtl. zu begreifen.
    DSM 6.2.2-24922-U6
    DS916+ [8GB] - MASTER mit DX513
    DS415+ [8GB] - BACKUP mit DX213
    DS215+ [1GB] - Master beim Vater
    DS116_' [1GB] - Backup beim Vater
    => HP - Volumes mit DSM

  8. #8

    Standard

    "rsync --delete-before" löscht, bevor das Kopieren beginnt, alles. Wenn etwas schiefgeht, sind die am Ziel zuvor vorhandenen Dateien möglicherweise gelöscht, ohne dass neue nachkommen. Früher war "--delete-after" Standard, d. h. es wurden temporäre Dateien erzeugt und die alten im Erfolgsfall am Ende 'am Stück' durch die neuen ersetzt. Inzwischen ist der Standard "--delete-during", d. h. er kopiert/ersetzt abwechselnd, was Platz spart aber Performance kostet.

    --delete-before receiver deletes before xfer, not during
    --delete-during receiver deletes during the transfer
    --delete-after receiver deletes after transfer, not during

    man 1 rsync
    ( DS1812+ DS2411+ ) in Rente

  9. #9

    Standard

    Zitat Zitat von peterhoffmann Beitrag anzeigen
    Kleines Testscript (aus der Hüfte geschossen, ohne Gewähr):
    Code:
    cd /volume1/dein/Verzeichnis
    list=$(echo *)
    if [ "$list" = "*" ] || [ "$list" = "@eaDir" ]
    then
    echo "Verzeichnis leer"
    else
    echo "Verzeichnis nicht leer"
    fi
    Habe das Skript auf mich angepasst und läuft soweit einwandfrei, vielen Dank dafür!
    Ob der Ruhezustand verhindert wird kann ich noch nicht mit Gewissheit sagen, habe allerdings den Ruhezustand auf 10min gesetzt und vorhin über den Zeitraum einer Stunde das LAN Kabel gezogen, somit hatte es keine Zugriffe auf die DS. Trotzdem ist die DS nie in den Ruhezustand gegangen. Ich werde zukünftig mal beobachten ob die DS in den Ruhezustand geht, ich vermute allerdings dass das Skript die DS vom "schlafen" abhält.
    Geändert von goetz (26.01.2020 um 22:43 Uhr) Grund: Vollzitat gekürzt.

  10. #10
    Anwender Avatar von peterhoffmann
    Registriert seit
    17.12.2014
    Beiträge
    2.762

    Standard

    Falls der Ruhezustand verhindert wird, wäre es je nach Anwendungsfall vielleicht eine Option das Script nur tagsüber laufen zu lassen. So würden die HDDs wenigstens nachts in den Ruhezustand wechseln.
    Viele Grüße,
    Peter

    DS716+II
    8GB RAM, SSD u. 6TB
    | |
    | |
    | |
    | |
    | |
    O AvrLogger für Synology DS
    Temperaturen, Netzwerk- und HDD-Aktivität fest im Blick
    O Ultimate Backup
    Backup von Daten leichtgemacht
    O synOCR - GUI
    Verarbeitung und OCR von PDFs

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 31.08.2015, 11:33
  2. 214play - script ausführen
    Von tomlei im Forum Terminal-Dienste (Telnet, SSH) - Linux-Konsole
    Antworten: 2
    Letzter Beitrag: 04.01.2015, 08:11
  3. Script ausführen
    Von plotv im Forum Terminal-Dienste (Telnet, SSH) - Linux-Konsole
    Antworten: 27
    Letzter Beitrag: 22.09.2013, 09:38
  4. Data Replicator nach Zeitplan- nur wenn PC läuft??
    Von Viennaboy im Forum Backup / Restore / Data Replicator Allgemein
    Antworten: 0
    Letzter Beitrag: 23.12.2012, 12:59
  5. sh script ausführen.
    Von jobitobi im Forum Sonstiges
    Antworten: 13
    Letzter Beitrag: 15.10.2009, 20:30

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •