私のcronコマンドは良いですか? [閉鎖]

私のcronコマンドは良いですか? [閉鎖]

cron次のコマンドを使用して、週に1回、ログをクリーンアップしようとします。

@weekly find /var/log/ \( -iregex ".*\.[2-20]+" -o -iname "*.gz" \) -exec rm {} \; 2>&1

いいですか?

ベストアンサー1

[2-20]+2数字が範囲内にあるかどうかをテストする正しい方法ではありません20。正規表現の角かっこは、その中の文字と一致する単一の文字にのみ一致します。-文字の範囲(たとえば、2-9またはa-z2-2を指定するために文字セットに使用されます2。 Soは、、などのすべての文字とシーケンスを一致させることと[2-20]+同じです。[20]+20220022200

それはする必要があります([2-9]|1[0-9]|20)。これは、toまたは次の21つの数字と一致します。910920

GNUを使用している場合は、演算子を代わりにfind使用できます。-delete-exec rm {} \;

2>&1標準出力をリダイレクトしない場合は使用する必要はありません。デフォルトでは、標準出力と標準エラーの両方がユーザーにメールで送信されます。

@weekly find /var/log/ \( -iregex '.*\.([2-9]|1[0-9]|20)' -o -iname "*.gz" \) -delete

おすすめ記事