cp コマンドが crontab でエラーを発生させます。

cp コマンドが crontab でエラーを発生させます。

私の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"

関連情報