Score:0

Crontab is not working

cn flag
TVG

Below is the content of my crontab:

toto@toto-pc:~$ crontab -l
# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command

21 15 * * * DISPLAY=:0 /usr/bin/freefilesync /home/toto/Backup_launch/Backup_on_My_Passport.ffs_batch >/home/toto/crontab_log 2>&1
*/10 * * * * /home/toto/Backup_launch/Backup_on_OneDrive.sh

toto@toto-pc:~$

Then, I expect the Backup_on_My_Passport.ffs_batch batch job to be executed by FreeFileSync daily at 15:21 and the script Backup_on_OneDrive.sh to be executed every 10 minutes.

Backup_on_OneDrive.sh is correctly executed every 10 minutes but crontab never starts Backup_on_My_Passport.ffs_batch.

Here is the content of the crontab_log file:

Authorization required, but no authorization protocol specified

15:21:01: Error: Unable to initialize GTK+, is DISPLAY set properly?

I think the value of DISPLAY is correct:

toto@toto-pc:~$ echo $DISPLAY
:0
toto@toto-pc:~$
TVG avatar
cn flag
TVG
Excellent idea! Please see the edits in my post.
cn flag
It should probably be `export DISPLAY=:1 &&` and not 0
Score:3
cn flag
TVG

It seems to be a problem with Wayland. Then, in /etc/gdm3/custom.conf, I uncommented the line #WaylandEnable=false to force the login screen to use Xorg.

I then had to change DISPLAY=:0 by DISPLAY=:1 because echo $DISPLAY return 1.

It is now working as expected.

Score:-1
it flag

Since cron passes the command line portion of the crontab entry to /bin/sh (which may be a link to /bin/dash), which is a simpler shell, one should 1) Wrap your command in a #!/bin/bash script; 2) Invoke the script from your crontab. This will make debugging, condutionals, logging, etc much easier, and you'll NEVER have to worry about bash features that sh doesn't support.

You might also benefit from my answer (https://unix.stackexchange.com/questions/673908/why-crontab-doesnt-execute-a-scheduled-bash-script/673918#673918).

I sit in a Tesla and translated this thread with Ai:

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.