2. Cronjob für Nextcloud einrichten

  • Moin,


    unabhänging von der cron.php brauche ich noch einen weiteren cronjob für meine Nextcloud. Die cron.php scheint zu laufen, wenn ich sie über ssh starte tut sie es nicht.

    Ich möchte gerne

    /usr/bin/php httpdocs/nextcloud/console.php maintenance:mimetype:update-db --repair-filecache

    ausführen. Wenn ich die über ssh probiere bekomme ich diese Meldung (die selbe bekomme ich bei der cron.php über ssh):

    Dein Datenverzeichnis ist ungültig
    Stelle sicher, dass eine Datei ".ocdata" im Wurzelverzeichnis des data-Verzeichnisses existiert.

    Kann das "Daten"-Verzeichnis nicht erstellen
    Dies kann zumeist behoben werden, indem dem Web-Server Schreibzugriff auf das Wurzel-Verzeichnis eingeräumt wird. Siehe auch
    https://docs.nextcloud.com/ser…?to=admin-dir_permissions

    An unhandled exception has been thrown:
    Exception: Environment not properly prepared. in /httpdocs/nextcloud/lib/private/Console/Application.php:166

    Stack trace:
    #0 /httpdocs/nextcloud/console.php(95):
    OC\Console\Application->loadCommands(Object(Symfony\Component\Console\Input\ArgvInput),
    Object(Symfony\Component\Console\Output\ConsoleOutput))
    #1 {main}


    Es liegt scheinbar an den Berechtigungen, da habe ich aber keine Ahnung welche richtig sind. Laut Doku soll ich den www-data Benutzer nehmen, geht natürlich nicht beim Webhosting.

    Kann mir da jemand helfen? Die .ocdata ist natürlich da. Wenn ich das Kommando über ein Nextcloudplugin laufen lasse ich alles super, lässt sich nur nicht automatisieren.

  • Thema ist erledigt. Ein Freund fand das hier:


    https://forum.netcup.de/anwend…-weboberfl%C3%A4che-lahm/


    Wie ich mir dachte wird der Benutzer bei der Ausführung von PHP über die Shell und PHP ohne Shell geändert. Daher funktionierte mein Kommando über das Nextcloudplugin, nicht aber in der Shell. Mit dieser Anpassung geht es nun auch in der Shell und noch immer im Plugin.


    Vorher hatte ich den Nextcloud Cronjob (cron.php) als PHP-Datei im Cronjob gestartet. Das geht nun NICHT mehr. Hier liegt wohl nochmal eine andere Konfiguration vor. Wenn man es aber als Befehl umstellt und davor den PHP Interpreter aufruft geht es super. Ich habe nun 2 Cronjobs, beide als "Befehl ausführen", also NICHT PHP-Datei ausführen:


    Code
    1. /usr/bin/php httpdocs/nextcloud/console.php maintenance:mimetype:update-db --repair-filecache

    und

    Code
    1. /usr/bin/php httpdocs/nextcloud/cron.php


    Klappt super, danke für die Hilfe.