Unofficial
Auf dieser Seite
  1. 01Die Seite Jobs
  2. 02Eine neue Aufgabe anlegen
  3. 03Jetzt ausführen, Läufe und Protokolle
  4. 04Integrierte Aufgaben
  5. 05Meldungen
  6. 06Root und was andere Konten lesen

Geplante Aufgaben auf Ihrem NAS: cron mit Protokoll und Meldungen bei Fehlern

Die Seite Jobs von Bucket & Code Server IDE führt Ihre Befehle nach einem cron-Zeitplan aus und protokolliert jeden Lauf. Eine Aufgabe kann bei einem Fehler eine Meldung senden: an die QTS-Systemprotokolle sowie an Telegram, Discord, Slack oder E-Mail, sobald Sie deren Adressen hinzufügen.

  1. Zeitplancron-Felder und nächste Ausführungen
  2. Befehlbash, als root ausgeführt
  3. Jetzt ausführenein Lauf und sein Protokoll
  4. Integriertdie Aufgaben des Pakets
  5. MeldungenSystemprotokolle und Ihr Chat

Die Bilder stammen von einem Test-NAS und zeigen die Beschriftungen der Version 1.0.0-49. Die Adresse im Bild „Notifications“ ist ein Beispiel.

01Die Seite Jobs

Die Seite hat zwei Register. Scheduled listet die cron-Aufgaben auf: integrierte Aufgaben des Pakets und von Konten erstellte Aufgaben. Operations zeigt die letzten 50 langen Vorgänge von bvsd, etwa Installationen und Datenverschiebungen, mit dem neuesten zuerst.

Eine Zeile unter Scheduled zeigt die Aufgabe samt Eigentümer, den Zeitplan als Text und Ausdruck, den nächsten Lauf sowie einen Ein-/Ausschalter. Öffnen Sie die Zeile, um Befehl, Läufe und Protokolle zu sehen. Das Abzeichen oben nennt die Zeitzone des NAS; alle Zeiten auf der Seite verwenden sie.

Geplante Aufgaben: die integrierten Aufgaben Backup (aus), Empty the trash, Maintenance, Rotate nginx's logs und Toolchain catalog refresh, Eigentümer system; außerdem Disk report, Eigentümer ola, um 06:00 von Montag bis Freitag
  • Entwickler erstellen Aufgaben und ändern oder löschen ihre eigenen. Ein Admin ändert jede Aufgabe.
  • Jedes angemeldete Konto liest die Liste, Befehle und Protokolle, auch ein Betrachter.

02Eine neue Aufgabe anlegen

  1. Drücken Sie New job und vergeben Sie einen Namen unter Name.
  2. Tragen Sie unter Schedule fünf Felder ein (Minute Stunde Tag Monat Wochentag), sechs mit Sekunden zuerst oder @daily, @hourly, @every 90m. Die Beispiele unter dem Feld füllen es aus. Darunter werden der Zeitplan in Worten und die nächsten fünf Läufe in der Zeitzone des NAS angezeigt. Ein Präfix wie CRON_TZ=Europe/London 0 3 * * * führt die Aufgabe in einer anderen Zeitzone aus.
  3. Schreiben Sie unter Command (bash) den Befehl wie im Terminal. Mehrere Zeilen laufen als ein Skript; ihre Ausgabe wird zum Protokoll des Laufs.
  4. Runs: On the NAS oder in einer Ihrer Umgebungen, wo der Befehl deren Werkzeuge und Bibliotheken sieht. Working folder ist relativ zu projects/ im Datenordner oder ein vollständiger Pfad; leer bedeutet projects/. In einer Umgebung ist nur projects/ als /projects sichtbar.
  5. Timeout in seconds: Ein Lauf, der nach dieser Zeit noch läuft, wird gestoppt und als Zeitüberschreitung markiert. Neue Aufgaben beginnen mit 3600; 0 bedeutet unbegrenzt. When the previous run is still going: Skip this run oder Run it after the previous one; dabei wartet höchstens ein Lauf.
  6. Notify on failure und On sind für eine neue Aufgabe angekreuzt. Eine ausgeschaltete Aufgabe behält ihre Einstellungen und läuft nur manuell. Drücken Sie Create the job.
Neue Aufgabe: Name Disk report, Schedule 0 6 * * 1-5 mit 06:00 von Montag bis Freitag und den nächsten fünf Läufen, Command df -h /share/CACHEDEV1_DATA und date, Runs On the NAS, Working folder projects/, Timeout 60, Skip this run, Notify on failure und On angekreuzt sowie Create the job

In den Nächten der Zeitumstellung folgen Aufgaben der Regel von Debian cron. Eine Aufgabe mit * oder */N am Anfang des Minuten- oder Stundenfeldes, @hourly oder @every folgt der verstrichenen Zeit: Im Herbst läuft sie bei beiden Durchläufen der wiederholten Stunde; im Frühjahr entfällt die übersprungene Stunde. Jede andere Aufgabe führt jeden Termin einmal aus. Ein Termin in der wiederholten Stunde läuft einmal, einer in der übersprungenen Stunde direkt nach der Umstellung.

03Jetzt ausführen, Läufe und Protokolle

Run now im Aufgabendialog startet sofort einen zusätzlichen Lauf, sofern diese Aufgabe gerade nicht läuft. Der Dialog listet die Läufe mit Startzeit, Dauer, Ergebnis und Exitcode auf. Wählen Sie einen Lauf, um darunter sein Protokoll zu lesen.

Aufgabe Disk report: Befehl, Ausführung auf dem NAS, Timeout 1 min, nächster Lauf wird übersprungen, Meldung bei Fehler, Eigentümer ola; ein erfolgreicher Lauf mit Exitcode 0 und Protokoll mit df-Ausgabe und Datum
  • Die erste und letzte Protokollzeile stammen von bvsd. Die erste nennt Lauf und Aufgabe sowie Startzeit und Auslöser: ein Konto oder den Zeitplan. Ihre Zeit ist UTC; die Liste der Läufe zeigt die NAS-Zeit. Die letzte Zeile nennt Ergebnis und Dauer.
  • Eine Aufgabe speichert ihre letzten 100 Läufe mit jeweils den letzten 4 KB ihrer Ausgabe. Das vollständige Protokoll eines Laufs bleibt 30 Tage erhalten.
  • Bei Fehler oder Zeitüberschreitung erscheint neben der Aufgabe ein rotes last run failed. Die Kachel Jobs auf Overview zählt die Aufgabe unter failing.
  • Wenn der Befehl endet, laufen seine Hintergrundprozesse weiter. Bei Zeitüberschreitung, Löschen der Aufgabe oder Stoppen des Pakets erhält die gesamte Prozessgruppe des Laufs SIGTERM und 5 Sekunden später SIGKILL.
  • Edit ändert die Aufgabe. Delete stoppt einen laufenden Durchlauf und löscht die Aufgabe samt Läufen und Protokollen. Nur Eigentümer und Admin sehen diese Schaltflächen; alle anderen erhalten Close.

04Integrierte Aufgaben

Mit built in markierte Aufgaben gehören bvsd selbst; ihr Eigentümer ist system.

Aufgabe, ZeitpunktWas sie tut
Sicherung
standardmäßig @daily
die auf der Seite Sicherungen eingerichtete Sicherung, sobald dort Scheduled backups eingeschaltet ist; diese Seite verwaltet ihren Zeitplan und Schalter
Wartung
täglich 03:30
entfernt seit 10 Tagen unveränderte Inhalte aus tmp/ im Datenordner und rotiert log/audit.log über 10 MB
Papierkorb leeren
täglich 03:45
entfernt vor mehr als 7 Tagen nach trash/ im Datenordner verschobene Inhalte: gelöschte Repositorys, Buckets und Home-Ordner von Konten
Aktualisierung des Toolchain-Katalogs
täglich 04:15
lädt den signierten Toolchain-Katalog und verwendet ihn, wenn seine Signatur gültig und er neuer ist
nginx-Protokolle rotieren
stündlich zur Minute 7
benennt nginx-access.log oder nginx-error.log ab einer Größe über 20 MB in .1 um, behält fünf alte Dateien und lässt nginx seine Protokolle neu öffnen

Ein Admin kann Zeitplan, Zeitlimit, Verhalten bei laufender Ausführung und Fehlermeldung einer integrierten Aufgabe ändern und sie ausschalten. Name, Befehl, Umgebung und Arbeitsordner bleiben fest; Delete ist nicht verfügbar.

Integrierte Aufgabe Empty the trash: Beschreibung der entfernten Inhalte, Timeout 1 h 0 min, Eigentümer system, tägliche Läufe um 03:45, alle erfolgreich, Protokoll trash: 0 removed, 226 kept; nur Edit und Run now

05Meldungen

bvsd schreibt jede Meldung in die QTS-Systemprotokolle. Notifications auf der Seite System sendet sie außerdem über shoutrrr-URLs an Chat- und E-Mail-Dienste: Telegram, Discord, Slack, E-Mail, Webhooks und andere.

  1. Drücken Sie unter Addresses (shoutrrr URLs) auf Add an address und fügen Sie pro Dienst eine URL ein, etwa telegram://<token>@telegram?chats=<chat id> oder generic+https://example.com/hook.
  2. Entfernen Sie unter Also sent to the addresses die Häkchen für Meldungen, die nur in den Systemprotokollen bleiben sollen. Bei einer neuen Installation sind alle vier gesetzt.
  3. Drücken Sie Save.
Notifications: unter „Also sent to the addresses“ sind A job fails, A backup ends, A module restarts in a loop und The certificate angekreuzt; Beispieladresse telegram://<token>@telegram?chats=<chat id>, dazu Add an address und Save
SchalterDie Meldung erscheint, wenn
Ein Job schlägt fehlein cron-Lauf mit aktivierter Fehlermeldung fehlschlägt oder sein Zeitlimit erreicht, oder ein Vorgang fehlschlägt: Build, Datenverschiebung oder Installation
Eine Sicherung endeteine Sicherung, Prüfung oder Wiederherstellung endet, auch erfolgreich, oder eine geplante Sicherung nicht starten konnte
Ein Modul startet in einer Schleife neuein Prozess wiederholt endet und neu startet
Das Zertifikatein hochgeladenes Zertifikat noch höchstens 30 Tage gültig ist, nginx auf das selbstsignierte Zertifikat zurückfällt oder bvsd ein neues selbstsigniertes Zertifikat erzeugt
keiner, immer gesendetEinstellungen beim Start abgewiesen wurden, eine unvollständige Datenverschiebung gefunden wurde, verbliebene Prozesse beendet wurden oder die Konfiguration nicht geschrieben werden konnte
  • Eine Meldung zum gleichen Thema wird höchstens einmal in 10 Minuten gesendet, auch an die Systemprotokolle. Die nächste nennt die Anzahl der zurückgehaltenen Meldungen.
  • Jede Adresse erhält einen eigenen Sendevorgang mit 10 Sekunden Zeitlimit. Bei einem Fehler wird nur das URL-Schema protokolliert, weil der Rest der URL das Token enthält.
  • Nur ein Admin ändert Adressen und Schalter. Andere Konten sehen die Schalter und das Schema jeder URL.

Der Admin des NAS kann die Adressen auch über den CLI-Socket des Pakets setzen. Die gesendete Liste ersetzt die zuvor gespeicherten Adressen; die Schalter behalten ihre Werte:

/usr/bin/bucketvs/bin/curl --unix-socket /usr/bin/bucketvs/var/run/bvsd-cli.sock \
  -X PUT -H 'Content-Type: application/json' \
  -d '{"notify":{"shoutrrr_urls":["telegram://<token>@telegram?chats=<chat id>"]}}' \
  http://bvsd/api/v1/settings

06Root und was andere Konten lesen

  • Der Befehl einer Aufgabe läuft als root, auf dem NAS oder in der Umgebung, unabhängig vom Ersteller. Entwickler können Aufgaben anlegen und damit beliebige Befehle auf dem NAS als root ausführen. Geben Sie die Entwicklerrolle nur Personen, denen Sie root auf dem NAS anvertrauen würden.
  • Eine Aufgabe läuft nur, solange ihr Eigentümer ein aktivierter Entwickler oder Admin ist (ab Version 1.0.0-52). Ist er deaktiviert oder hat die Rolle Mitglied oder Betrachter, wird jeder Termin als übersprungener Lauf mit Begründung erfasst, etwa its owner ola is disabled; Run now antwortet mit demselben Grund. Ein laufender Durchlauf wird gestoppt. Die Aufgabe läuft wieder, sobald das Konto aktiviert oder wieder Entwickler ist. Beim Löschen eines Kontos werden seine Aufgaben samt Läufen und Protokollen gelöscht. Integrierte Aufgaben laufen unabhängig vom Zustand eines Kontos.
  • Jedes angemeldete Konto, auch ein Betrachter, liest den Befehl jeder Aufgabe und deren Ausgaben. Schreiben Sie Passwörter und Tokens in eine Datei unter etc/ im Datenordner, die nur root lesen darf (chmod 600), und lassen Sie den Befehl diese Datei lesen.