
私のcrontabには、「data」というファイルを「Archive」という既存のディレクトリにコピーし、日付スタンプを追加する次のコマンドがあります。コマンドラインから手動で実行すると正常に動作します。
01 0 * * * cp /home/data /home/Archive/data.$(date +%F)
ただし、cronが(同じユーザーとして)上記のコマンドを実行すると、ファイルはコピーされず、次のエラーが発生します。
cp:0653-437 2018はディレクトリではありません
答え1
シェルの問題かもしれません。実行されるスクリプトにこのコマンドを入れてみてください。
#!/bin/bash
スクリプトを手動で実行して動作していることを確認し、cronで実行してみてください。
答え2
問題は、そのようなディレクトリがないことです。この oneliner はディレクトリの作成を処理します。
01 0 * * * export NEWDIR=/home/Archive/data.$(date +%F) ; mkdir -p "$NEWDIR"; cp /home/data "$NEWDIR"