Laat Nextcloud Cron automatisch draaien met een Systemd-timer.

Als de beheerderspagina van Nextcloud aangeeft dat de achtergrondtaken recent niet zijn uitgevoerd, kunnen opschoontaken, meldingen en andere geplande taken achterlopen. Op een systemd-server is de oplossing meestal om Nextcloud cron.phpals webserveraccount vanuit een systemd-service te starten en die service vervolgens te plannen met een ingeschakelde timer. De huidige beheerdershandleiding van Nextcloud bevat een voorbeeld met twee units; de paden en het serviceaccount moeten overeenkomen met uw installatie.

Controleer eerst wat er misgaat.

Nextcloud-achtergrondtaken worden uitgevoerd wanneer cron.phpze worden aangeroepen. Een systemd- service definieert de uit te voeren opdracht; een timer start die service volgens een schema. Als de service handmatig wordt uitgevoerd maar de timer nooit afgaat, richt u zich op de activering van de timer. Als de timer wel afgaat maar de service faalt, inspecteer dan de opdracht, de PHP-omgeving en de machtigingen.

Controleer de daadwerkelijke Nextcloud-directory en HTTP-gebruiker voordat u iets bewerkt. Dit voorbeeld gaat uit van `<gebruikersnaam>` /var/www/nextclouden `<gebruikersnaam> www-data`, wat gebruikelijk is op Debian en Ubuntu. Het account kan ` <gebruikersnaam> wwwrun`, apache`<gebruikersnaam>` of een andere gebruiker zijn op andere systemen. Nextcloud vereist dat de commandoregeltaken worden uitgevoerd als de HTTP-gebruiker, zodat het eigenaarschap van bestanden consistent blijft. Zie de Nextcloud occ-documentatie .

Test hetzelfde PHP-uitvoerbare bestand en cron-script dat je van plan bent dat systemd gebruikt:

sudo -u www-data /usr/bin/php -f /var/www/nextcloud/cron.php

Vervang het account, het PHP-pad en het Nextcloud-pad voor uw hostingprovider. Als de opdracht een PHP-fout, een ontbrekende extensie, een permissieprobleem, de onderhoudsmodus of een databaseverbindingsfout meldt, los dat dan eerst op; de timer kan een mislukte opdracht niet herstellen.

Bevestig dat Nextcloud gebruikmaakt van de systeem-cronfunctie.

Open de beheerdersinstellingen → Basisinstellingen → Achtergrondtaken en selecteer Cron als dit nog niet is geselecteerd. Je kunt deze opdracht ook uitvoeren vanuit de Nextcloud-directory:

cd /var/www/nextcloud
sudo -E -u www-data php occ background:cron

Nextcloud merkt op dat het selecteren van Cron in de beheerdersinstellingen niet strikt noodzakelijk is als het cron.phpscript vanaf de commandoregel wordt uitgevoerd, omdat het script de modus automatisch instelt. Door dit expliciet in te stellen, wordt de beoogde productiemodus duidelijk. Nextcloud raadt systeemcron aan voor productieomgevingen; in de documentatie over achtergrondtaken worden ook systemd-timers als alternatieve planner beschreven.

Herstel de systemd-service

Maak of update /etc/systemd/system/nextcloudcron.servicemet de volgende inhoud. Gebruik het volledige pad naar PHP, zodat systemd niet afhankelijk is van een interactieve shell PATH.

[Unit]
Description=Nextcloud cron.php job

[Service]
User=www-data
ExecCondition=/usr/bin/php -f /var/www/nextcloud/occ status -e
ExecStart=/usr/bin/php -f /var/www/nextcloud/cron.php
KillMode=process

Wijzig Userhet webserveraccount en beide paden naar de overeenkomende PHP- en Nextcloud-locaties. De voorwaarde controleert of de instantie normaal functioneert voordat de taak wordt uitgevoerd. Als de voorwaarde niet wordt voldaan, kan systemd de service overslaan; controleer of Nextcloud in de onderhoudsmodus staat en bekijk het logboek voordat u de voorwaarde verwijdert of wijzigt. Behoud de voorwaarde KillMode=process, aangezien deze in het Nextcloud-voorbeeld wordt gebruikt zodat externe programma's die door cron worden gestart, kunnen worden voortgezet nadat het cron-proces is beëindigd. De service-eenheid heeft geen [Install]sectie nodig.

Repareer en activeer de timer.

Maak /etc/systemd/system/nextcloudcron.timerdit schema aan. Het begint vijf minuten na het opstarten en wacht vervolgens vijf minuten na elke serviceactivering.

[Unit]
Description=Run Nextcloud cron.php every 5 minutes

[Timer]
OnBootSec=5 min
OnUnitActiveSec=5 min
Unit=nextcloudcron.service

[Install]
WantedBy=timers.target

Herlaad systemd zodat het de unit-bestanden leest, en schakel vervolgens de timer in en start deze met één commando:

sudo systemctl daemon-reload
sudo systemctl enable --now nextcloudcron.timer

Door deze optie in te schakelen, start de timer bij toekomstige opstartmomenten; anders --nowstart hij direct. Schakel de service zelf niet in alsof het een terugkerende timer betreft. De timer is de eenheid die onder de huidige timers.targetNextcloud-handleiding valt. De huidige handleiding van Nextcloud legt deze intervalinstellingen en het vereiste activeringscommando uit; oudere versies van de handleiding bevatten een verouderde installatie-sectie voor de service, dus volg in plaats daarvan het huidige voorbeeld van de eenheid.

Spoor een gemiste run op en controleer de oplossing.

Controleer de status van de timer en de volgende geplande uitvoering:

systemctl status nextcloudcron.timer
systemctl list-timers nextcloudcron.timer

De timer moet de status 'wachtend' of 'actief' weergeven en in de lijst moet de volgende activeringstijd worden getoond. Controleer vervolgens de laatst uitgevoerde versie van de service:

systemctl status nextcloudcron.service
journalctl -u nextcloudcron.service --since today

Een timer kan actief blijven, zelfs als elke service-uitvoering mislukt. Controleer daarom beide units. Als de service ontbreekt of als systemd het bestand weigert, voer systemd-analyze verify /etc/systemd/system/nextcloudcron.service /etc/systemd/system/nextcloudcron.timerdan uit, corrigeer de gemelde syntax- of padfout en herlaad systemd. Als de service niet succesvol afsluit, geeft de loguitvoer vaak een ongeldig PHP-pad, een verkeerde gebruiker, een mislukte voorwaarde of een Nextcloud-runtimefout aan. Als de timer geen volgende uitvoering heeft, controleer dan de exacte bestandsnaam van de timer, voer uit daemon-reloaden bevestig dat deze is ingeschakeld met systemctl is-enabled nextcloudcron.timer.

Controleer na de volgende timeractivering de status van de Nextcloud-achtergrondtaken opnieuw. Deze zou een recente uitvoeringstijd moeten weergeven in plaats van een waarschuwing dat de taak verouderd is. Als zowel de timer als de service succesvolle uitvoeringen melden, maar de beheerderspagina er nog steeds verouderd uitziet, controleer dan de logboeken van de instantie en de PHP-versie die door de webserver wordt gebruikt; de PHP-versie voor de commandoregel kan afwijken van de PHP-versie voor de webserver. Deze configuratie is bedoeld voor het plannen van taken via systemd op een normale Linux-host. Container- en appliance-installaties beheren cron mogelijk via hun eigen service supervisor, dus gebruik de door dat platform ondersteunde methode in plaats van host-eenheden toe te voegen die geen toegang hebben tot de bestanden van de container.

Laat een reactie achter

Laat Nextcloud Cron automatisch draaien met een Systemd-timer.

Controleer de cron-modus van Nextcloud, repareer de systemd-service en timer, en controleer of achtergrondtaken na het opstarten en vervolgens elke vijf minuten worden uitgevoerd.

Verwijder de bestandsvergrendelingswaarschuwing van Nextcloud met Redis.

Schakel betrouwbare Nextcloud-bestandsvergrendeling in, kies de juiste Redis- of Valkey-backend en controleer of de waarschuwing verdwijnt zonder het risico te lopen dat bestanden tegelijkertijd worden gewijzigd.

Wat er nodig is om een ​​A+ beveiligingsrating voor Nextcloud te behalen

Wat er nodig is om een ​​A+ beveiligingsrating voor Nextcloud te behalen

Los veelvoorkomende Nextcloud-scanbevindingen op met de nieuwste updates, HTTPS en HSTS, nauwkeurige reverse-proxy-vertrouwensinstellingen en controles op de openbare server.

Schakel Nextcloud-serverversleuteling in met meetbare impact.

Configureer Nextcloud SSE voor de opslag die het nodig heeft, bescherm de encryptiesleutels en meet de impact op de overdracht en het CPU-gebruik voordat u bestaande bestanden versleutelt.

Voeg Elasticsearch Full-Text Search toe aan Nextcloud

Koppel de bestandszoekfunctie van Nextcloud aan Elasticsearch, indexeer de inhoud van documenten en kies een configuratie die past bij uw server- en beveiligingsbehoeften.

Stel een betrouwbaar vervalbeleid in voor verwijderde bestanden in Nextcloud.

Stel een betrouwbaar vervalbeleid in voor verwijderde bestanden in Nextcloud.

Configureer Nextcloud om verwijderde bestanden na een bepaalde bewaartermijn te verwijderen, achtergrondtaken betrouwbaar in te plannen en opdrachten te vermijden die de prullenbak van elke gebruiker leegmaken.

Wis de Nextcloud-waarschuwing voor ontbrekende database-indexen.

Wis de Nextcloud-waarschuwing voor ontbrekende database-indexen.

Voer de OCC-reparatie van Nextcloud veilig uit, bekijk de wijzigingen in de database en controleer waarom de waarschuwing mogelijk blijft bestaan.

Verhoog de uploadlimiet van Nextcloud voor webbestanden tot boven de 2 GB.

Verhoog de uploadlimiet van Nextcloud voor webbestanden tot boven de 2 GB.

Sta grotere Nextcloud-browseruploads toe door PHP, Nginx of Apache, tijdelijke opslag en time-outinstellingen op elkaar af te stemmen en te controleren welke limiet het bestand blokkeert.

Wis de PHP-geheugenwaarschuwing van Nextcloud op de webserver.

Stel de PHP-geheugenlimiet in die Nextcloud daadwerkelijk gebruikt, herstart de juiste service en bevestig de instelling van 512 MB in het beheerdersoverzicht.

Verbind een S3-compatibele bucket met Nextcloud externe opslag.

Koppel een compatibele objectopslagbucket in Nextcloud met behulp van de S3-backend, met het juiste eindpunt, de juiste inloggegevens, het juiste toegangsbereik en de juiste verificatiestappen.