Configuring Nextcloud Cron jobs in TrueNAS SCALE

Hello all,

First of all my apolagies for whom might find that the answer to my question is already out there, and that I simply have not looked hard enough… I can assure you I have spend numerous hours looking for a solution, without any luck.

I am running official Nextcloud 29.0.0, Chart Version:2.0.2 on TrueNAS-SCALE-23.10.2.

Nextcloud is running just fine, using an “SMB/CIFS” “External storage”. However I am looking into implementing some cron jobs, and have no clue how to do so. Cron does seem to be running, as I have selected it when installing the app.

Can anyone assist me in adding a Nextcloud cron job? I did find some documentation using docker, but docker commands are not recognized?

Thanks in advance,

Bart

To see if cron is running properley, click on your photo / icon at the top right corner of your Nextcloud webpage. From there, click “Administration settings”, and a security and setup warnings page will be displayed, including commenting on your cron.

Hopefully you get the nice green tick!

Thanks, cron is running.

Now only to add cron jobs…

System Settings → Advanced, see the section to add them there.

That wouldn’t add cron jobs inside the Nextcloud app.

Nextcloud is supposed to enable the standard job (maintenance of stuff) automatically if you select cron (Recommended). They used to have a bug in the IX app for this but it was resolved long ago. But he does have the green tick. If you want other cron jobs other than the background nextcloud created one (which OP says he does), I find it much easier to schedule outside of Nextcloud, i.e., simply have it run the command(s) or script inside the container. More visible, etc. So, I still use the UI for that. YMMV.

But the OP mentions docker commands, still indicating he wants to outside of the container. Docker is not there, like virtually all “guides”, out of date. The way you do that is like this (example):

k3s kubectl exec -n ix-nextcloud --stdin --tty "$(/usr/local/bin/k3s kubectl -n ix-nextcloud get pods --field-selector status.phase=Running -o name | cut -f2 -d'/')" -- su -s /bin/bash www-data -c 'php occ maintenance:mode --on'

You can replace the’php occ maintenance:mode --on’ command with whatever you want to run within the container.

2 Likes

Thanks @sfatula . I’ll give that a go!

Let me know if any trouble.

Hello @sfatula, took a while before I found the time to test it. I assume the problem is that Truenas has 3 Nextcloud pods running.

Error from server (NotFound): pods "nextcloud-redis-74444979dc-jgktt\nnextcloud-postgres-6779b848-sbw8b\nnextcloud-6d4b74cd88-4qs9d" not found

Also running the command with the pod name entered manually gives me the following.

# Linux truenas 6.1.74-production+truenas #2 SMP PREEMPT_DYNAMIC Wed Feb 21 20:30:38 UTC 2024 x86_64

        TrueNAS (c) 2009-2024, iXsystems, Inc.
        All rights reserved.
        TrueNAS code is released under the modified BSD license with some
        files copyrighted by (c) iXsystems, Inc.

        For more information, documentation, help or support, go here:
        http://truenas.com

Welcome to TrueNAS
Last login: Mon May 13 12:56:20 CEST 2024 on pts/117
# k3s kubectl exec -n ix-nextcloud --stdin --tty $nextcloud-6d4b74cd88-4qs9d -- su -s /bin/bash www-data -c php occ preview:generate-all
FATA[0000] exec: "kubectl": cannot run executable found relative to current directory 
# 
# k3s kubectl exec -n ix-nextcloud --stdin --tty $nextcloud-6d4b74cd88-4qs9d -- su -s /bin/bash www-data -c php /var/www/html/occ preview:generate-all
FATA[0000] exec: "kubectl": cannot run executable found relative to current directory 
# 

Best regards,

Bart

Hello
I can’t see any solution here, so this is mine:
k3s kubectl exec -n ix-nextcloud --stdin -i “nextcloud-???-???” – su -s /bin/bash www-data -c ‘php /var/www/html/occ preview:generate-all’
cron doesn’t want tty.
Exchange question marks with your number and character code under workloads.

Hello, I have the same issue, I guess, for about 10 days, since an update probably, I don’t get any cron job update. I tried update again as a new version was here, I tried to edit disable cron, update, then again edit re-enable, update, but it’s still not working.
I tried to run a few command manually to maybe run the cron from TrueNAS UI but I don’t get a running command so far.
Why this happened? Anyone have a good solution?

The number and character code changes on restart/update(?).
Use:
k3s kubectl exec -n ix-nextcloud --stdin -i “$(/usr/local/bin/k3s kubectl -n ix-nextcloud get pods --field-selector status.phase=Running -o name | cut -f2 -d’/’ | grep -v postgres | grep -v redis)” -c nextcloud – su -s /bin/bash www-data -c ‘php /var/www/html/occ files:scan --all’

1 Like

OK I found a solution in the old forum here and modified it to run the cron job instead. Thanks to @Shigure

First get the pod name

k3s kubectl get pods -A | grep nextcloud

Then run this to add the indices, where nextcloud-abcdef12345-ghijk34 is the pod name got from last command.

k3s kubectl exec -n ix-nextcloud --stdin --tty nextcloud-abcdef12345-ghijk34 -- su -s /bin/bash www-data -c 'php cron.php'

Worked for a couple of days now, it seams to solve this but I would prefer a proper solution without external task to run, and with a lower interval than the minimum of 1h that TrueNAS GUI offer.

2 Likes

Yes, i completely agree with @slay425. The app Preview Generator for example does not work correctly without adding a cron job an doing so through the truenas gui can’t be right…