您的位置:首页 > 运维架构 > Nginx

nginx 引号 x22

2016-09-23 16:54 253 查看
这个好像是nginx故意这样做的。

因为Nginx默认的log_format使用双引号作为间隔符,为了避免日志分析时候出现混乱,所以将双引号解析为x22了。

只能每天日志切割的时候,自己替换日志中的x22字符为双引号了

我的解决方法:
sed 's#\\x22#"#g' test.txt

可以加-i参数以让修改在文件中生效!

#!/bin/bash

#setting log path
log_files_path="/usr/local/nginx/logs/"
log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")

#setting nginx
nginx_sbin="/usr/local/nginx/sbin/nginx"

if [ ! -d $log_files_dir ]; then
mkdir -p $log_files_dir
fi

cd $log_files_path

#setting log name
log_files_name=(www.abc.com)
log_files_num=${#log_files_name[@]}

for((i=0;i<$log_files_num;i++));do
mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}/${log_files_name[i]}.log
/bin/sed -e 's/x22/"/g' ${log_files_dir}/${log_files_name[i]}.log > ${log_files_dir}/${log_files_name[i]}_$(date -d "yesterday" +"%Y%m%d").log
/bin/rm ${log_files_dir}/${log_files_name[i]}.log
done

kill -USR1 `cat /usr/local/nginx/nginx.pid`

自己手动转
touch convert.log
sed -e 's/x22/"/g' api.starconnect.cn.log > convert.log
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: