Символ %
является специальным в crontab и должен быть экранирован как \%
:
59 2 * * * : $(date +\%Y\%m\%d) Backup Settings; "$HOME/backup_settings.sh"
С man 5 crontab
в системе Ubuntu:
Вся командная часть строки, вплоть до новой строки или символа %
, будет выполнена /bin/sh
или оболочкой, указанной в переменной SHELL
файла crontab.Знаки процента (%
) в команде, если они не экранированы обратной косой чертой (\
), будут заменены символами новой строки, и все данные после первого %
будут отправлены команде в качестве стандартного ввода.
Обратите внимание, однако, что cron будет вводить команду cronjob дословно в качестве темы в любом электронном письме, которое он отправляет, а не в расширенной командной строке.
Чтобы отправить электронное письмо с вашимсобственное название, используйте mail
явно:
59 2 * * * "$HOME/backup_settings.sh" | mail -s "$(date +\%Y\%m\%d) Backup Settings" myname
(где myname
- адрес, на который вы хотите отправить электронное письмо).