Наиболее типичная причина «работает в оболочке, но не в cron» заключается в том, что команды, которые вы пытаетесь выполнить, не находятся в PATH. Причина в том, что оболочка вызывается из cron и не загружает те же файлы, что и ваша оболочка входа в систему.
Исправлено: добавление абсолютного пути к каждой команде, которую вы пытаетесь выполнить.
Второе, что я заметил в вашей команде. Синтаксис для запуска вашей команды date выглядит не очень переносимым. Измените его на обратные, или запустите, поместите всю вашу команду в шеллскрипт (также вы можете использовать ее и для задания пути) и выполните этот скрипт из cron ..
EDIT:
Во время написания моего первоначального ответа на моей раскладке клавиатуры не было обратных клавиш, поэтому проверьте, что написал Паскаль.
И пример того, что вы могли бы сделать с помощью шеллскрипта:
Скопировать следующее в /usr/local/bin/dumptable.sh
#!/bin/sh
/usr/bin/mysqldump --host=HOST --user=USER --password=PASSWORD DATABASE TABLE | /bin/gzip > /tmp/table.`/bin/date +"\%Y-\%m-\%d"`.gz
и затем поместите /usr/local/bin/dumptable.sh в cron ..