web-dev-qa-db-ja.com

Cron:cron経由でディレクトリを削除する方法

私はすでにcronをインストールしていますが、ここにあります

1 0 * * * rm -R/path/to/my/folder/$(date + '%Y-%m-%d' -d "昨日")

「昨日名」のような「2014-12-14」のような毎日のフォルダーを削除したい

「grep CRON」コマンドを実行したときのubuntu/var/log/syslogは次のとおりです。

12月16日00:01:01 {サーバー名} CRON [21031]:(ルート)CMD(rm -R/path/to/my/folder/$(date + ')12月16日00:01:01 {サーバー名} CRON [ 21030]:(CRON)情報(MTAがインストールされていない、出力を破棄)

2

マンページ(man 5 crontab)のコメント:

行のコマンド部分全体(改行または%文字まで)は、/ bin/shまたはcrontabファイルのShell変数で指定されたシェルによって実行されます。コマンド内のパーセント記号(%)は、バックスラッシュ()でエスケープされない限り、改行文字に変更され、最初の%以降のすべてのデータは標準入力としてコマンドに送信されます。

したがって、日付形式のすべての%\%に置き換える必要があります。

1 0 * * * rm -R /path/to/my/folder/$(date +'\%Y-\%m-\%d' -d "yesterday")
2
Florian Diesch

このコマンドを使用できます

find /path/to/dir -maxdepth 0 -ctime +1 -exec rm -fr {} +

すなわち

1 0 * * * find /path/to/dir -maxdepth 0 -ctime +1 -exec rm -fr {} +

クレジットはここに行きます

0
rɑːdʒɑ