「シェルでは機能するが、cron では機能しない」の最も一般的な理由は、実行しようとするコマンドが PATH にないことです。理由は、cron から呼び出されたシェルがログイン シェルと同じファイルをロードしないためです。
修正: 実行しようとする各コマンドに絶対パスを追加します。
あなたのコマンドで私が気付く2番目のこと。date コマンドを実行するための構文は、あまり移植性がないように見えます。それをバッククォートに変更するか、コマンド全体を shellscript に実行して (また、それを使用してパスを設定することもできます)、そのスクリプトを cron から実行します。
編集:
私の元の返信を書いている間、私のキーボードレイアウトにはバックティックがなかったので、パスカルが書いたものを確認してください。
そして、シェルスクリプトでできることの例:
以下を /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 に入れます。