0

I'm writing a script to backup some dirs such as /etc in a nightly backup.

The script works if I run it manually and input a password, but fails to launch in crontab

For testing purpose I've made a small script called script.sh in the ~/ it doesn't launch either.

script.sh

#!/bin/zsh

echo "Salut tout le monde" >> echo.txt 2&> err.txt

sudo crontab -l looks like this

# m h  dom mon dow   command

* 1 1 * * /home/jmaurice/backups/backup_monthly.sh
* * * * * ./script.sh

ls -l script.sh

-rwxr-xr-x 1 jmaurice jmaurice 63 Aug 5 09:35 script.sh

journalctl --grep='cron' --no-pager --since='-1hour'

Aug 06 04:15:01 kali CRON[5481]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:15:01 kali CRON[5481]: pam_unix(cron:session): session closed for user root
Aug 06 04:17:01 kali CRON[6456]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:17:01 kali CRON[6457]: (root) CMD (cd / && run-parts --report /etc/cron.hourly)
Aug 06 04:17:01 kali CRON[6456]: pam_unix(cron:session): session closed for user root
Aug 06 04:25:01 kali CRON[10350]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:25:01 kali CRON[10350]: pam_unix(cron:session): session closed for user root
Aug 06 04:35:01 kali CRON[15257]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:35:01 kali CRON[15257]: pam_unix(cron:session): session closed for user root
Aug 06 04:39:01 kali CRON[17217]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:39:01 kali CRON[17217]: pam_unix(cron:session): session closed for user root
Aug 06 04:40:44 kali sudo[18107]: jmaurice : TTY=pts/0 ; PWD=/home/jmaurice ; USER=root ; COMMAND=/usr/bin/crontab -l
Aug 06 04:41:10 kali sudo[18360]: jmaurice : TTY=pts/0 ; PWD=/home/jmaurice ; USER=root ; COMMAND=/usr/bin/crontab -e
Aug 06 04:43:01 kali cron[971]: (root) RELOAD (crontabs/root)
Aug 06 04:45:01 kali CRON[20342]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:45:01 kali CRON[20343]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:45:01 kali CRON[20342]: pam_unix(cron:session): session closed for user root
Aug 06 04:45:01 kali CRON[20343]: (CRON) info (No MTA installed, discarding output)
Aug 06 04:45:01 kali CRON[20343]: pam_unix(cron:session): session closed for user root
Aug 06 04:46:09 kali sudo[20942]: jmaurice : TTY=pts/0 ; PWD=/home/jmaurice ; USER=root ; COMMAND=/usr/bin/crontab -e
Aug 06 04:47:17 kali sudo[21509]: jmaurice : TTY=pts/0 ; PWD=/home/jmaurice ; USER=root ; COMMAND=/usr/bin/crontab -e
Aug 06 04:48:01 kali cron[971]: (root) RELOAD (crontabs/root)
Aug 06 04:48:01 kali CRON[21880]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:48:01 kali CRON[21880]: (CRON) info (No MTA installed, discarding output)
Aug 06 04:48:01 kali CRON[21880]: pam_unix(cron:session): session closed for user root
Aug 06 04:49:19 kali sudo[22512]: jmaurice : TTY=pts/0 ; PWD=/home/jmaurice ; USER=root ; COMMAND=/usr/bin/crontab -e
Aug 06 04:51:01 kali cron[971]: (root) RELOAD (crontabs/root)
Aug 06 04:51:01 kali CRON[23342]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:51:01 kali CRON[23342]: (CRON) info (No MTA installed, discarding output)
Aug 06 04:51:01 kali CRON[23342]: pam_unix(cron:session): session closed for user root
Aug 06 04:52:01 kali CRON[23829]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:52:01 kali CRON[23829]: (CRON) info (No MTA installed, discarding output)
Aug 06 04:52:01 kali CRON[23829]: pam_unix(cron:session): session closed for user root
Aug 06 04:53:01 kali CRON[24329]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:53:01 kali CRON[24329]: (CRON) info (No MTA installed, discarding output)
Aug 06 04:53:01 kali CRON[24329]: pam_unix(cron:session): session closed for user root
Aug 06 04:54:01 kali CRON[24839]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:54:01 kali CRON[24839]: (CRON) info (No MTA installed, discarding output)
Aug 06 04:54:01 kali CRON[24839]: pam_unix(cron:session): session closed for user root
Aug 06 04:55:01 kali CRON[25328]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:55:01 kali CRON[25329]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:55:01 kali CRON[25329]: (CRON) info (No MTA installed, discarding output)
Aug 06 04:55:01 kali CRON[25329]: pam_unix(cron:session): session closed for user root
Aug 06 04:55:01 kali CRON[25328]: pam_unix(cron:session): session closed for user root
Aug 06 04:56:01 kali CRON[25815]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:56:01 kali CRON[25815]: (CRON) info (No MTA installed, discarding output)
Aug 06 04:56:01 kali CRON[25815]: pam_unix(cron:session): session closed for user root
Aug 06 04:57:01 kali CRON[26362]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:57:01 kali CRON[26362]: (CRON) info (No MTA installed, discarding output)
Aug 06 04:57:01 kali CRON[26362]: pam_unix(cron:session): session closed for user root
Aug 06 04:58:01 kali CRON[26847]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:58:01 kali CRON[26847]: (CRON) info (No MTA installed, discarding output)
Aug 06 04:58:01 kali CRON[26847]: pam_unix(cron:session): session closed for user root
Aug 06 04:59:01 kali CRON[27331]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 04:59:01 kali CRON[27331]: (CRON) info (No MTA installed, discarding output)
Aug 06 04:59:01 kali CRON[27331]: pam_unix(cron:session): session closed for user root
Aug 06 05:00:01 kali CRON[27846]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 05:00:01 kali CRON[27846]: (CRON) info (No MTA installed, discarding output)
Aug 06 05:00:01 kali CRON[27846]: pam_unix(cron:session): session closed for user root
Aug 06 05:01:01 kali CRON[28342]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 05:01:01 kali CRON[28342]: (CRON) info (No MTA installed, discarding output)
Aug 06 05:01:01 kali CRON[28342]: pam_unix(cron:session): session closed for user root
Aug 06 05:02:01 kali CRON[28827]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 05:02:01 kali CRON[28827]: (CRON) info (No MTA installed, discarding output)
Aug 06 05:02:01 kali CRON[28827]: pam_unix(cron:session): session closed for user root
Aug 06 05:03:01 kali CRON[29313]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 05:03:01 kali CRON[29313]: (CRON) info (No MTA installed, discarding output)
Aug 06 05:03:01 kali CRON[29313]: pam_unix(cron:session): session closed for user root
Aug 06 05:04:01 kali CRON[29796]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 05:04:01 kali CRON[29796]: (CRON) info (No MTA installed, discarding output)
Aug 06 05:04:01 kali CRON[29796]: pam_unix(cron:session): session closed for user root
Aug 06 05:05:01 kali CRON[30285]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 05:05:01 kali CRON[30284]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 05:05:01 kali CRON[30285]: (CRON) info (No MTA installed, discarding output)
Aug 06 05:05:01 kali CRON[30285]: pam_unix(cron:session): session closed for user root
Aug 06 05:05:01 kali CRON[30284]: pam_unix(cron:session): session closed for user root
Aug 06 05:05:16 kali sudo[30396]: jmaurice : TTY=pts/0 ; PWD=/home/jmaurice ; USER=root ; COMMAND=/usr/bin/crontab -e
Aug 06 05:06:01 kali CRON[30782]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 05:06:01 kali CRON[30782]: (CRON) info (No MTA installed, discarding output)
Aug 06 05:06:01 kali CRON[30782]: pam_unix(cron:session): session closed for user root
Aug 06 05:07:01 kali CRON[31267]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 05:07:01 kali CRON[31267]: (CRON) info (No MTA installed, discarding output)
Aug 06 05:07:01 kali CRON[31267]: pam_unix(cron:session): session closed for user root
Aug 06 05:08:01 kali CRON[31754]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 05:08:01 kali CRON[31754]: (CRON) info (No MTA installed, discarding output)
Aug 06 05:08:01 kali CRON[31754]: pam_unix(cron:session): session closed for user root
Aug 06 05:09:01 kali CRON[32242]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 05:09:01 kali CRON[32243]: pam_unix(cron:session): session opened for user root(uid=0) by (uid=0)
Aug 06 05:09:01 kali CRON[32242]: pam_unix(cron:session): session closed for user root
Aug 06 05:09:01 kali CRON[32243]: (CRON) info (No MTA installed, discarding output)
Aug 06 05:09:01 kali CRON[32243]: pam_unix(cron:session): session closed for user root

script.sh should be running every minute, but I have no trace of it.

Anybody can point me to what I do wrong here ?

PS: this question has already been posted on askubuntu by mistake https://askubuntu.com/q/1480341/1717746

@Rohit Gupta I did 2 tries as below, separately of course, none of them went through still

> * * * * * /home/jmaurice/script.sh
> * * * * * ./home/jmaurice/script.sh

but thanks for your input anyway, I'm gonna try to put absolute paths in the script itself, but I don't think it'll change something

2
  • (1) Are you aware that the job runs in the root's home directory? (2) Side note, personal view: To "backup some dirs such as /etc" I wouldn't use root's crontab, I would use the system-wide crontab. I consider root's crontab a user's crontab (where user happens to be more powerful than other users, so what?), so I would use it for root's private jobs, like I use my regular user's crontab for my private jobs. If the backup is "officially" a part of the maintenance of the system itself then it should be in the system-wide crontab. Commented Aug 7, 2023 at 10:51
  • @KamilMaciorowski Thanks for your interesting input. And no I wasn't aware of that, I could have figured it out, but well, I'm still learning and miss some points sometimes.
    – hyperswiss
    Commented Aug 10, 2023 at 8:57

1 Answer 1

0

All paths in cron/crontab entries and the scripts run from there need to have absolute paths.

This is because it doesnt run with its home directory to set to yours.

Assuming that is the path it is in, change your entry to

* * * * * /home/jmaurice/backups/script.sh

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .