私は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
引数に関連付けられたコマンドラインを解釈するシェルを起動するwatch
fromコマンドを使用する場合は、次のようにします。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
それを使用しないのですか?