Nginx学习(三) Nginx的日志配置

1、日志介绍
日志的配置在nginx.conf中
可以为每个server配置不同的日志,如下

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  a.html index.html index.htm;
        }

这说明 该server, 它的访问日志的文件是 logs/host.access.log ,使用的格式”main”格式.除了main格式,你可以自定义其他格式。
main格式默认:

 #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

2、自定义一个日志格式

自定义日志格式mylog

log_format  mylog '$remote_addr- "$request" '
                     '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';

在server中配置mylog

 server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        access_log logs/mylog.access.log mylog;

        location / {
            root   html;
            index  a.html index.html index.htm;
        }

可以发现mylog.access.log

[root@localhost conf]# curl localhost:80
<html>
<h>welcom visit nginx!!</h>
</html>
[root@localhost conf]# cd ../logs/
[root@localhost logs]# ls
access.log  error.log  mylog.access.log  nginx.pid
[root@localhost logs]# cat mylog.access.log 
127.0.0.1- "GET / HTTP/1.1" 200 43 "-" "curl/7.29.0" "-"

3、通过定时任务完成日志切割
主要目的是实现每天备份一个新的日志文件
编写shell脚本

base_path='/usr/local/nginx/logs'
log_path=$(date -d yesterday +"%Y%m")
day=$(date -d yesterday +"%d")
mkdir -p $base_path/$log_path
mv $base_path/mylog.access.log $base_path/$log_path/mylog.access_$day.log
#echo $base_path/$log_path/access_$day.log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

编写linux定时任务

crontab -e

每天0点1分执行任务

01 00 * * * sh /usr/local/nginx/logs/runlog.sh
systemctl restart crond 
#查看任务
crontab -l
#查看执行日志 
cat /var/log/cron

到了每天0点1分会发现会将之前的日志打包到一个文件夹内,并打开新的mylog.access.log

附 定时任务表达式说明

*  *  *  *  *  command 
分 时 日 月 周 命令 
第1列表示分钟1~59 每分钟用*或者 */1表示 
第2列表示小时1~23(0表示0点) 
第3列表示日期1~31 
第4列表示月份1~12 
第5列标识号星期0~6(0表示星期天) 
第6列要运行的命令 

常用表达式

每五分钟执行  */5 * * * *
 
每小时执行    0 * * * *
 
每天执行      0 0 * * *
 
每周执行      0 0 * * 0
 
每月执行      0 0 1 * *
 
每年执行      0 0 1 1 *


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值