cronjobはディレクトリ内のファイルを消去します。

cronjobはディレクトリ内のファイルを消去します。

APIサーバーなので、Apache(centos Webパネル)を使用しているWebサーバーのログに問題があります。数日後、サーバーのdomlogsディレクトリはサーバーの競合を引き起こすのに十分な大きさになります(100 GB以上のログ)。したがって、コマンドを使用してファイルを消去する必要があります。

root@local: cd /var/domlogs
root@local: > logfile.log

これにより、ログリンクが失われたり、ログを復元してファイルを再生成しなくてもファイルが空になります。

X日ごとに同じことを行うcronjobを作成するにはどうすればよいですか?

ベストアンサー1

Apacheプロセスを実行しているユーザーIDにcrontabを設定するか、rootIDの下にcrontabを設定できます。ここで、crontabエントリは次のとおりです。

@daily     cd /var/domlogs; > logfile.log

これらの簡単な操作のためにシェルスクリプトを書く必要はありません。;コマンドと文字を分離するだけです。

@daily は毎日真夜中に実行される GNU 拡張です。https://crontab.guru/別の波でプレイしてください。

月曜日、水曜日、金曜日の午前2時30分など、より具体的な時間を確認するには、以下を試してください。

 30 2 * * 1,3,5   cd /var/domlogs; > logfile.log

これは私がcrontabに入れたものです(#シェルスクリプトのようにcrontabへのコメントとして):

#Minute   Hour    Day     Month   Wkday   UnixCmd
#0-59     0-23    1-31    1-12    0-7     UnixCmd

現在のユーザーのcronジョブを設定するには、crontab -eそれを使用してエディタを呼び出して上記のコマンドを入力します。

より高度なタスクを実行するには、クローンタスクのさまざまな制限に注意してください。初期環境には環境設定PATHなどが非常に制限されています。 cronジョブが実行されると、出力が出力ファイルにリダイレクトされない限り、ジョブの標準出力と標準エラーは、cronを起動するように設定されたユーザーに電子メールで送信されます。

おすすめ記事