watchコマンドは、N秒ごとにディレクトリ内のファイルを削除します。

watchコマンドは、N秒ごとにディレクトリ内のファイルを削除します。

私はN秒ごとにディレクトリ内のファイルを削除するためにwatchコマンドを使用しようとしましたが、コマンドはバックグラウンドで実行されます。

これが私が使用する予定です:

nohup watch -n1200 rm -rf /var/log/radius/radacct/8.44.25.17/detail-2013* &

動作していますが、実行中のプロセスを見ると、次のような出力が表示されます。

[root@Free-Radius 8.44.25.17]# ps -aef | grep watch
root     27326 10649  0 15:23 pts/0    00:00:00 watch -n1200 rm -rf /var/log/radius/radacct/8.44.25.17/detail-20130816
root     27404 10649  0 15:24 pts/0    00:00:00 grep watch

detail-20130817これで明日削除されない新しいファイルが作成されます。 watchコマンドを使用してこれを達成する方法はありますか?私は簡単なbashスクリプトやcronタスクを使って簡単に実行できることを知っていますが、ウォッチを使用して実行できるかどうかを知りたかったです。

答え1

引数に関連付けられたコマンドラインを解釈するシェルを起動するwatchfromコマンドを使用する場合は、次のようにします。procps

nohup watch -n1200 'rm -rf /var/log/radius/radacct/8.44.25.17/detail-2013*' &

一部の他の実装では、シェルを手動で呼び出す必要があります。

nohup watch -n1200 sh -c 'rm -rf /var/log/radius/radacct/8.44.25.17/detail-2013*' &

なぜcronそれを使用しないのですか?

関連情報