次のコードを使用して、営業日ごとに毎分crontab
新しいファイルを作成する を作成しようとしています。.tar
*/1 * * * 1,2,3,4,5 tar -cf /home/user/Archiv/$(date +"%Y%m%d%H%M").tar /home/user/Textverarbeitung/ -P
これは機能しません。なぜですか?
答え1
cron
は改行として扱われます。 で使用されているリテラルを取得するに%
は、 をエスケープする必要があります。\%
%
date
したがって、次のものが必要です:
date +"\%Y\%m\%d\%H\%M"
または、スクリプトを使用して、スクリプト内のすべてのコマンドを使用し、からスクリプトを呼び出すこともできますcrontab
。
からman 5 crontab
:
コマンド内のパーセント記号 (%) は、バックスラッシュ (\) でエスケープしない限り、改行文字に変換され、最初の % の後のすべてのデータは標準入力としてコマンドに送信されます。シェルの末尾の "\" のように、1 つのコマンド ラインを複数の行に分割する方法はありません。
答え2
\%
の代わりに使用します%
- cron は%
改行として使用します。