Fehlermeldung Snapraid Cronjob

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Fehlermeldung Snapraid Cronjob

      Hallo Linux-Spezies,

      hab mir meinen Server nach eurer Anleitung mit OMV und Snapraid angelegt. zur Automatisierung hab ich dann mit "create scheduled diff job" einen cronjob eingerichtet. Der läuft auch, aber ich erhalte regelmäßig folgende Fehlermeldung vom Cron-Daemon:

      /usr/sbin/omv-snapraid-diff: Zeile 365: [: Zu viele Argumente.

      Ich hab die entsprechende Zeile mal rausgesucht:

      364 # check if files have changed
      365 if [ $DEL_COUNT -gt 0 -o $ADD_COUNT -gt 0 -o $MOVE_COUNT -gt 0 -o $COPY_COUNT -gt 0 -o $UPDATE_COUNT -gt 0 ]; then
      366
      367 DEL_THRESHOLD=$(omv_config_get "/config/services/snapraid/delthreshold")

      Leider bin ich jetzt nicht der Linux-Crack, aber hier werden wohl irgendwelche Änderungen überprüft. Aber wo steckt hier der Fehler?
      Wenn das für einen If-Then Befehl zu viele Variablen sind, wie löst man denn das Problem?

      Für eure kompetente Hilfe wäre ich sehr dankbar.

      Lg Theo :love:

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Theo ()

    • Re,

      kleine Erklärung zur Zeile
      if [ $DEL_COUNT -gt 0 -o $ADD_COUNT -gt 0 -o $MOVE_COUNT -gt 0 -o $COPY_COUNT -gt 0 -o $UPDATE_COUNT -gt 0 ];
      - "if" ist eine "wenn das eintrifft/dann tue das/ansonsten tue dies" Anweisung
      - "$" bezeichnen Variablen
      - "-gt" bedeutet "greater" also "größer als"
      - "-o" bedeutet "oder" bzw. hier im Kontext als "oder wenn" zu lesen
      - "then" ist dann die Anweisung, was zu tun ist, wenn mind. eines der Statements in der eckigen Umklammerung zutrifft

      Also bedeutet die Anweisung: Wenn [ der Löschzähler größer null ist, oder der Zuwachszähler größer null ist, oder der Bewegungszähler größer null ist, oder der Kopierzähler größer null ist, oder der Aktualisierungszähler größer null ist ], dann lösche den Zählerstand

      Ich vermute, das das "then" i'wie an der falschen Stelle steht und/oder das Semikolon danach fehlt - ich bin allerdings auch nicht der Progger und kann das nur aus dem Gesamtkontext von den o.g. 4 Zeilen herauslesen. Ein bischen mehr Zeilen wären hilfreich ... aber ansonsten kann man das Problem auch ruhig mal im offiziellen OMV-Forum suchen bzw. posten ...


      Theo schrieb:

      Wenn das für einen If-Then Befehl zu viele Variablen sind, wie löst man denn das Problem?
      Entweder man definiert das Array (in der eckigen Klammer) extern bzw. vorher, oder man splittet die if-Anweisung auf ... gibt verschiedene Möglichkeiten. Die müssten aber in die Source (den Quelltext) vom jeweiligen Entwickler übernommen werden ... selber ändern würde ich da nix.


      Seltsamerweise bist Du der Erste und bisher Einzige, der dieses Problem (in unserem Forum) hat ... von daher gehe ich ehr von einem anderen Fehler als einem Programmierfehler aus, z.B. wenn eine der abgefragten Variablen nicht richtig befüllt ist ...

      Von daher wäre es ratsam, dieses sehr spezifische Problem im OMV-Forum zu posten ...

      Sc0rp
    • Hallo Sc0rp,
      vielen Dank für Deine prompte Antwort. Ich sehe schon, die Sache ist wohl nicht so einfach. Vielleicht könnt Ihr den Thread ja mal verschieben.
      Nur noch kurz zwei Verständnisfragen:
      Was bedeutet eigentlich die Fehlermeldung im Klartext? Ich habe es so aufgefasst, daß der Fehler auftaucht, weil zu viele Faktoren / Variablen im Befehl abgearbeitet werden müssen ( too much arguments ). Aus deine Antwort schließe ich allerdings, daß auch ein Syntaxfehler oder Anderes möglich ist.
      Was passiert im Fehlerfall? Wird der fehlerhafte Befehl schlichtweg übersprungen oder gleich das komplette Script abgebrochen?

      Hier noch ein bißchen mehr Text:

      # check if files have changed
      if [ $DEL_COUNT -gt 0 -o $ADD_COUNT -gt 0 -o $MOVE_COUNT -gt 0 -o $COPY_COUNT -gt 0 -o $UPDATE_COUNT -gt 0 ]; then

      DEL_THRESHOLD=$(omv_config_get "/config/services/snapraid/delthreshold")

      # YES, check if number of deleted files exceed DEL_THRESHOLD and DEL_THRESHOLD is enabled
      if [ $DEL_COUNT -gt $DEL_THRESHOLD -a $DEL_THRESHOLD -gt 0 ]; then

      # YES, lets inform user and not proceed with the sync just in case
      _log "INFO: Number of deleted files ($DEL_COUNT) exceeded threshold ($DEL_THRESHOLD). NOT proceeding with sync job."
      _log "INFO: Please run sync manually if this is not an error condition."
      echo "Number of deleted files ($DEL_COUNT) exceeded threshold ($DEL_THRESHOLD). NOT proceeding with sync job." >> $TMP_OUTPUT
      echo "Please run sync manually if this is not an error condition" >> $TMP_OUTPUT

      _send_email "$EMAIL_SUBJECT_PREFIX - WARNING - Number of deleted files (${DEL_COUNT}) exceeded threshold (${DEL_THRESHOLD})" "${TMP_OUTPUT}" "${EMAIL_SUBJECT_PREFIX}" "${OMV_MAIL_sender}"
      _check_success && _rmtmp
      else

      # NO, delete threshold not reached, lets run the sync job

      if [ $DEL_THRESHOLD -gt 0 ] ; then
      # There is a DEL_THRESHOLD set, so we're informing the user that the DEL_COUNT is below it
      _log "INFO: Changes detected [A-$ADD_COUNT,D-$DEL_COUNT,M-$MOVE_COUNT,C-$COPY_COUNT,U-$UPDATE_COUNT] -> deleted files ($DEL_COUN
      T) is below threshold ($DEL_THRESHOLD). Running SYNC Command."
      echo "Changes detected [A-$ADD_COUNT,D-$DEL_COUNT,M-$MOVE_COUNT,C-$COPY_COUNT,U-$UPDATE_COUNT] -> deleted files ($DEL_COUNT) is below threshold ($DEL_THRESHOLD). Running SYNC Command" >> $TMP_OUTPUT
      else
      # DEL_THRESHOLD is disabled, so we reflect this information in email and log
      _log "INFO: Changes detected [A-$ADD_COUNT,D-$DEL_COUNT,M-$MOVE_COUNT,C-$COPY_COUNT,U-$UPDATE_COUNT] -> there are deleted files ($DEL_COUNT) but delete threshold ($DEL_THRESHOLD) is disabled. Running SYNC Command."
      echo "Changes detected [A-$ADD_COUNT,D-$DEL_COUNT,M-$MOVE_COUNT,C-$COPY_COUNT,U-$UPDATE_COUNT] -> there are deleted files ($DEL_COUNT) but delete threshold ($DEL_THRESHOLD) is disabled. Running SYNC Command" >> $TMP_OUTPUT
      fi

      Werde mal beobachten, ob der Fehler weiterhin auftaucht.

      LG Theo
    • Was hast du den mit dem Script vor?
      Ich frage deshalb, seit der neuen Snapraid version wird jede Nacht um 12 Uhr ein Scrub & ein evt. Sync gestartet. Händisches eingreifen wie früher ist eigendlich nichtmehr nötig.
      Hardware: Asrock H97 Performance, Intel I3 4160, 2x G.Skill F3-1600C11S-8GNT (16gb Ram), be quiet Pure Power L8 300W, Thermalright LeGrande Macho,
      Nanoxia Deep Silence 5 Rev.b, Kingston SSDNow V300 2,5" SSD 120 GB, Western Digital Red 3x4tb,1x4tb HGST Deskstar Nas

      Software: Openmediavault 3.0.99 Erasmus, 4.9.0-0.bpo.6-amd64, Snapraid mit mergerfs Pool, Minidlna, Plex, MySql, ClaimAV, Powertop und Sonstiges
    • Re,

      Theo schrieb:

      Was bedeutet eigentlich die Fehlermeldung im Klartext?
      Gute Frage ... "zuviele Argumente" ist allerdings schon mehrdeutig. Das kann man sicher nur mit Erfahrung beantworten - und ich sage es nochmal: ich bin kein Progger ;)

      Theo schrieb:

      Aus deine Antwort schließe ich allerdings, daß auch ein Syntaxfehler oder Anderes möglich ist.
      Der Ausdruck (die gesamte Zeile) besteht ja aus mehreren ineinander verschachtelten Aufrufen - und in der Fehlermeldung steht ja nicht explizit der genaue Punkt, wann der Fehler eigentlich zuschlägt. M.E.n. könnte sich die Fehlermeldung auch auf die Variablen, deren Verkettung oder auf einen Syntaxfehler beziehen ... aber auch lediglich ein Folgefehler sein (wenn man eine Variable z.B. falsch deklariert oder füllt).

      Wie gesagt, das müsste man an den Entwickler melden ... der sollte sich damit auskennen :D

      Sc0rp