Unofficial
Op deze pagina
  1. 01De pagina Jobs
  2. 02Een nieuwe taak maken
  3. 03Nu uitvoeren, uitvoeringen en logs
  4. 04Ingebouwde taken
  5. 05Meldingen
  6. 06Root en wat andere accounts lezen

Geplande taken op uw NAS: cron met log en meldingen bij fouten

De pagina Jobs van Bucket & Code Server IDE voert uw opdrachten volgens een cron-schema uit en bewaart van elke uitvoering een log. Een taak kan een fout melden in de QTS-systeemlogboeken en via Telegram, Discord, Slack of e-mail zodra u hun adressen toevoegt.

  1. Planningcron-velden en volgende uitvoeringen
  2. Opdrachtbash, uitgevoerd als root
  3. Nu uitvoereneen uitvoering en het log
  4. Ingebouwdde eigen taken van het pakket
  5. Meldingensysteemlogboeken en uw chat

De afbeeldingen komen van een test-NAS en tonen de teksten van versie 1.0.0-49. Het adres in de afbeelding Notifications is een voorbeeld.

01De pagina Jobs

De pagina heeft twee tabbladen. Scheduled toont de cron-taken: ingebouwde taken van het pakket en door accounts gemaakte taken. Operations toont de laatste 50 lange bewerkingen van bvsd, zoals installaties en dataverplaatsingen, nieuwste eerst.

Een rij in Scheduled toont taak en eigenaar, het schema in woorden en als expressie, de volgende uitvoering en een aan-/uitschakelaar. Open de rij voor de opdracht, uitvoeringen en logs. Het label bovenaan noemt de tijdzone van de NAS; alle tijden op de pagina gebruiken die zone.

Geplande taken: de ingebouwde Backup (uit), Empty the trash, Maintenance, Rotate nginx's logs en Toolchain catalog refresh, van system; Disk report, van ola, om 06:00 van maandag tot vrijdag
  • Een ontwikkelaar maakt taken en wijzigt of verwijdert eigen taken. Een admin wijzigt elke taak.
  • Elk aangemeld account leest de lijst, opdrachten en logs, ook een kijker.

02Een nieuwe taak maken

  1. Druk op New job en geef de taak een naam onder Name.
  2. Vul Schedule in: vijf velden (minuut uur dag maand weekdag), zes met seconden vooraan, of @daily, @hourly, @every 90m. De voorbeelden onder het veld vullen het in. Het vak eronder beschrijft het schema en toont de volgende vijf uitvoeringen in de tijdzone van de NAS. Een voorvoegsel zoals CRON_TZ=Europe/London 0 3 * * * gebruikt een andere tijdzone.
  3. Schrijf Command (bash) zoals in een terminal. Meerdere regels draaien als één script; hun uitvoer wordt het log.
  4. Runs: On the NAS, of in een van uw omgevingen, waar de opdracht de gereedschappen en bibliotheken van dat systeem ziet. Working folder is relatief aan projects/ in de datamap of een volledig pad; leeg betekent projects/. In een omgeving is alleen projects/ zichtbaar, als /projects.
  5. Timeout in seconds: een uitvoering die daarna nog loopt wordt gestopt en als verlopen gemarkeerd. Een nieuwe taak begint met 3600; 0 betekent onbeperkt. When the previous run is still going: Skip this run of Run it after the previous one; er wacht dan hoogstens één uitvoering.
  6. Notify on failure en On zijn bij een nieuwe taak aangevinkt. Een uitgeschakelde taak bewaart zijn instellingen en draait alleen handmatig. Druk op Create the job.
Nieuwe taak: Name Disk report, Schedule 0 6 * * 1-5 met 06:00 van maandag tot vrijdag en de volgende vijf uitvoeringen, Command df -h /share/CACHEDEV1_DATA en date, Runs On the NAS, Working folder projects/, Timeout 60, Skip this run, Notify on failure en On aangevinkt, plus Create the job

Tijdens de omschakeling tussen zomer- en wintertijd volgen taken de regel van Debian cron. Een taak met * of */N aan het begin van het minuut- of uurveld, @hourly of @every, volgt verstreken tijd: in de herfst draait hij in beide voorkomens van het herhaalde uur; in de lente komt het overgeslagen uur niet voor. Elke andere taak voert elk tijdstip eenmaal uit. Een tijdstip in het herhaalde uur draait eenmaal; een tijdstip in het overgeslagen uur direct na de omschakeling.

03Nu uitvoeren, uitvoeringen en logs

Run now in het taakvenster start meteen een extra uitvoering, tenzij deze taak al draait. Het venster toont per uitvoering begintijd, duur, resultaat en afsluitcode. Kies een uitvoering om het log onder de lijst te lezen.

Taak Disk report: opdracht, uitvoering op de NAS, Timeout 1 min, volgende uitvoering overgeslagen, foutmelding aan, eigenaar ola; één geslaagde uitvoering met afsluitcode 0 en log met df-uitvoer en datum
  • De eerste en laatste logregel zijn van bvsd. De eerste noemt uitvoering en taak, starttijd en wie startte: een account of het schema. Deze tijd is UTC, terwijl de lijst de NAS-tijd toont. De laatste noemt resultaat en duur.
  • Een taak bewaart de laatste 100 uitvoeringen, elk met de laatste 4 KB uitvoer. Het volledige log blijft 30 dagen bewaard.
  • Bij een fout of tijdoverschrijding verschijnt een rode last run failed naast de taak; de tegel Jobs op Overview telt de taak onder failing.
  • Als de opdracht eindigt, blijven zijn achtergrondprocessen draaien. Een tijdoverschrijding, taakverwijdering of pakketstop stuurt de hele procesgroep SIGTERM en 5 seconden later SIGKILL.
  • Edit wijzigt de taak. Delete stopt een lopende uitvoering en verwijdert taak, uitvoeringen en logs. Alleen eigenaar en admin zien deze knoppen; anderen krijgen Close.

04Ingebouwde taken

De taken met built in zijn van bvsd zelf en hebben system als eigenaar.

Taak, tijdstipWat de taak doet
Back-up
standaard @daily
de back-up die op de pagina Back-ups is ingesteld, zodra Scheduled backups daar aan staat; die pagina beheert het schema en de schakelaar
Onderhoud
dagelijks om 03:30
verwijdert uit tmp/ in de datamap wat 10 dagen niet is gewijzigd en roteert log/audit.log boven 10 MB
De prullenbak legen
dagelijks om 03:45
verwijdert wat meer dan 7 dagen geleden naar trash/ in de datamap is verplaatst: verwijderde repositories, buckets en thuismappen van accounts
Vernieuwen van de toolchaincatalogus
dagelijks om 04:15
haalt de ondertekende toolchaincatalogus op en gebruikt die als de handtekening geldig en de catalogus nieuwer is
Logboeken van nginx roteren
elk uur, op minuut 7
hernoemt nginx-access.log of nginx-error.log naar .1 boven 20 MB, bewaart vijf oude bestanden en laat nginx zijn logs opnieuw openen

Een admin kan schema, tijdslimiet, gedrag bij een lopende uitvoering en foutmelding van een ingebouwde taak wijzigen en de taak uitschakelen. Naam, opdracht, omgeving en werkmap blijven vast; Delete ontbreekt.

Ingebouwde taak Empty the trash: wat wordt verwijderd, Timeout 1 h 0 min, eigenaar system, dagelijkse uitvoeringen om 03:45 allemaal geslaagd, log trash: 0 removed, 226 kept; alleen Edit en Run now

05Meldingen

bvsd schrijft elke melding in de QTS-systeemlogboeken. Notifications op de pagina System stuurt ze via shoutrrr-URL’s ook naar chat- en maildiensten: Telegram, Discord, Slack, e-mail, een webhook en andere.

  1. Druk onder Addresses (shoutrrr URLs) op Add an address en plak één URL per dienst, bijvoorbeeld telegram://<token>@telegram?chats=<chat id> of generic+https://example.com/hook.
  2. Vink onder Also sent to the addresses uit wat alleen in de systeemlogboeken moet blijven. Alle vier zijn bij een nieuwe installatie aangevinkt.
  3. Druk op Save.
Notifications: onder Also sent to the addresses zijn A job fails, A backup ends, A module restarts in a loop en The certificate aangevinkt; voorbeeldadres telegram://<token>@telegram?chats=<chat id>, met Add an address en Save
SchakelaarDe melding komt wanneer
Een taak mislukteen cron-uitvoering met foutmelding mislukt of de tijdslimiet overschrijdt, of een bewerking mislukt: bouw, dataverplaatsing of installatie
Een back-up eindigteen back-up, verificatie of herstel eindigt, ook succesvol, of een geplande back-up niet kon starten
Een module herstart steeds opnieuween proces steeds stopt en opnieuw start
Het certificaateen geüpload certificaat nog hoogstens 30 dagen geldig is, nginx terugvalt op het zelfondertekende certificaat of bvsd een nieuw zelfondertekend certificaat maakt
geen, altijd verzondeninstellingen bij het starten zijn geweigerd, een onvoltooide dataverplaatsing is gevonden, achtergebleven processen zijn beëindigd of de configuratie niet kon worden geschreven
  • Een melding over hetzelfde onderwerp wordt hoogstens eenmaal per 10 minuten verzonden, ook naar de systeemlogboeken. De volgende noemt het aantal tegengehouden meldingen.
  • Elk adres krijgt een eigen verzending met een limiet van 10 seconden. Bij een fout wordt alleen het URL-schema gelogd, omdat de rest het token bevat.
  • Alleen een admin wijzigt adressen en schakelaars. Andere accounts zien de schakelaars en het schema van elke URL.

De admin van de NAS kan adressen ook via de CLI-socket van het pakket instellen. De verzonden lijst vervangt de eerdere adressen; de schakelaars behouden hun waarden:

/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 en wat andere accounts lezen

  • De opdracht van een taak draait als root, op de NAS of in de omgeving, ongeacht de maker. Een ontwikkelaar kan taken maken en dus elke opdracht op de NAS als root uitvoeren. Geef die rol alleen aan mensen die u root op de NAS zou geven.
  • Een taak draait alleen zolang de eigenaar een ingeschakelde ontwikkelaar of admin is (vanaf versie 1.0.0-52). Is de eigenaar uitgeschakeld of lid of kijker, dan wordt elk tijdstip als overgeslagen uitvoering met reden vastgelegd, bijvoorbeeld its owner ola is disabled; Run now geeft dezelfde reden. Een lopende uitvoering wordt gestopt. De taak hervat als het account wordt ingeschakeld of weer ontwikkelaar is. Een account verwijderen verwijdert ook zijn taken, uitvoeringen en logs. Ingebouwde taken draaien ongeacht de toestand van een account.
  • Elk aangemeld account, ook een kijker, leest de opdrachten en uitvoer van alle taken. Zet wachtwoorden en tokens buiten de opdracht: bewaar ze in een bestand onder etc/ in de datamap dat alleen root kan lezen (chmod 600) en laat de opdracht dat bestand lezen.