Использование одинарных кавычек вместо двойных вокруг строки не даст оболочке ничего интерполировать.
Как минимум, переключитесь на одинарные кавычки вокруг присвоения переменной:
cronjob='05 21 * * * /usr/bin/mysqldump -u mysqluserhere -pmysqlpassword DBname | gzip > /path/to/mysql/$(date +\%H_\%M-\%d.\%m.\%Y)_dbbackup.sql.gz'
(crontab -u userhere -l; echo "$cronjob" ) |
crontab -u userhere -
, хотя, конечно,переменная, которую вы используете только один раз, довольно бессмысленна.
(crontab -u userhere -l
echo '05 21 * * * /usr/bin/mysqldump -u mysqluserhere -pmysqlpassword DBname | gzip > /path/to/mysql/$(date +\%H_\%M-\%d.\%m.\%Y)_dbbackup.sql.gz' ) |
crontab -u userhere -
Возможно, вам также не нужен полный путь к mysqldump
.