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.
- Planningcron-velden en volgende uitvoeringen
- Opdrachtbash, uitgevoerd als root
- Nu uitvoereneen uitvoering en het log
- Ingebouwdde eigen taken van het pakket
- 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.
- 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
- Druk op New job en geef de taak een naam onder Name.
- 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 zoalsCRON_TZ=Europe/London 0 3 * * *gebruikt een andere tijdzone. - Schrijf Command (bash) zoals in een terminal. Meerdere regels draaien als één script; hun uitvoer wordt het log.
- 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 betekentprojects/. In een omgeving is alleenprojects/zichtbaar, als/projects. - 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.
- 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.
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.
- 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, tijdstip | Wat 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.
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.
- Druk onder Addresses (shoutrrr URLs) op Add an address en plak één URL per dienst, bijvoorbeeld
telegram://<token>@telegram?chats=<chat id>ofgeneric+https://example.com/hook. - Vink onder Also sent to the addresses uit wat alleen in de systeemlogboeken moet blijven. Alle vier zijn bij een nieuwe installatie aangevinkt.
- Druk op Save.
| Schakelaar | De melding komt wanneer |
|---|---|
| Een taak mislukt | een cron-uitvoering met foutmelding mislukt of de tijdslimiet overschrijdt, of een bewerking mislukt: bouw, dataverplaatsing of installatie |
| Een back-up eindigt | een back-up, verificatie of herstel eindigt, ook succesvol, of een geplande back-up niet kon starten |
| Een module herstart steeds opnieuw | een proces steeds stopt en opnieuw start |
| Het certificaat | een geüpload certificaat nog hoogstens 30 dagen geldig is, nginx terugvalt op het zelfondertekende certificaat of bvsd een nieuw zelfondertekend certificaat maakt |
| geen, altijd verzonden | instellingen 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.