時間が経つにつれて、成長しているログファイルの下では、ログファイルには、サーバの効率に深刻な影響が大きすぎる、ログファイルの定期的な切削加工を必要としています。
通常、一日の切断により、時間のカットで、日によってカット毎月カットを、持っている道をカット。
それでは、どのようにそれをカットしていますか?
アイデア:
- ログファイルの保存パスを作成します。
- 曜日の時間として名前を変更するログファイル
- nginxのは、新しいログファイルを再生成するので、-USR1数nginxのを殺すメインプロセスにシグナルを送ります
アイデアを知って、具体的には、ポイントコード私を見ることができません
00:00に以下の例のためのnginxのアクセスログのaccess_logを切断毎日、詳細に切断する工程を説明
ステップ1:日カットシェルスクリプトによって次のログ・ファイルを入力し、div_nginx_log.shスクリプトを作成します。
#!/bin/bash
// nginx的日志文件路径
logs_path="/data1/logs/"
// 创建日志文件存放路径
mkdir -p ${logs_path}$(date -d "yesterday" + "%Y")/$(date -d "yesterday" + "%m")/
// 将日志文件以当天时间为名字进行重命名
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
// 发送kill -USR1信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件
kill -USR1 `cat /var/nginx/nginx.pid`
ステップ2:nginxのログファイルをカット、午後12時00分毎日のcrontabを設定します。
// 进入编辑crontab
crontab -e
// 输入配置
// div_nginx_log.sh脚本的路径要写绝对路径
00 00 * * * /bin/bash /root/div_nginx_log.sh
上記の二つのステップによると、それは完了です
注意:
あなたはcrontabの効果を買う余裕はない設定を変更した場合、クーロンをリロード:リロード/etc/init.d/cron
crontabのサービスを再起動するのに十分でない場合:/etc/init.d/crond再起動を