Nginx のログの切り取りと保存に関しては、logrotate ツールを使用できます。これを達成するための簡単なチュートリアルを次に示します。
- まず、logrotate ツールがインストールされていることを確認してください。ほとんどの Linux ディストリビューションでは、次のコマンドを使用してインストールできます。
sudo apt-get install logrotate # Debian/Ubuntu
sudo yum install logrotate # CentOS/RHEL
- Nginx ログ記録用の構成ファイルを作成します。ターミナルで、vi や nano などのテキスト エディタを使用して、次のような新しいファイルを作成します
nginx-logrotate.conf
。
sudo nano /etc/logrotate.d/nginx-logrotate.conf
- 開いた構成ファイルに次のように入力します。
/path/to/nginx/logs/*.log {
daily # 每天切割日志文件
missingok # 如果日志文件不存在也不会报错
rotate 7 # 保留最近7个日志文件
compress # 压缩旧的日志文件
delaycompress # 延迟压缩,直到下次切割时才压缩
notifempty # 如果日志文件为空,则不切割
create 0644 <user> <group> # 设置新生成的日志文件的权限和所有者,用具体的用户和组替换<user>和<group>
sharedscripts # 在所有日志文件都处理完毕后,运行一次脚本
postrotate # 切割后执行的命令
/usr/sbin/nginx -s reopen
endscript # 脚本结束
}
/path/to/nginx/logs/
<p> を実際の Nginx ログ ディレクトリへのパスに置き換え、 <user>
<p> を <group>
適切なユーザーとグループに置き換える必要があることに注意してください 。
- 構成ファイルを保存して閉じます。
現在、logrotate は指定された構成に従って Nginx ログ ファイルを毎日切り取り、最後の 7 つのログ ファイルを保持します。必要に応じて、保存するログ ファイルの数、カット頻度など、構成ファイル内のオプションを調整できます。
最後に、古いログ ファイルが大量のディスク領域を占有しないように、定期的に古いログ ファイルを確認してクリーンアップしてください。crontab またはその他のスケジュールされたタスク ツールを使用して、一定期間より古い古いログ ファイルを削除するなどのクリーンアップ コマンドを定期的に実行できます。