-
2022-03-22 14:29:29
#!/bin/bash
# 日志保存位置
base_path='/home/ap/webapp/nginx/logs'# 日志相对位置
api_path='apilogs'# 创建门户接口日志目录
mkdir -p $base_path/$api_path# 公共服务接口日志相对路径
publicservice_path='publicservicelogs'# 创建公共服务接口日志目录
mkdir -p $base_path/$publicservice_path# 获取今天时间信息
nowtime=$(date +"%Y%m%d%H%M")# 设置保存时文件大小值(500M)
maxsize=$((512*1024*1024))# 判断文件大小再处理,大于设定值则备份
filename=api_access.log
filesize=`ls -1 $base_path/$filename | awk '{ print $5}'`
#prefixname=api_access_if [ $filesize -gt $maxsize ]
then
echo "$filesize > $maxsize"
mv $base_path/$filename $base_path/$api_path/api_access_$nowtime.log
else
echo "$filesize < $maxsize"
fi# 服务日志路径
servicefilename=access.log
servicefilesize=`ls -1 $base_path/$servicefilename | awk '{ print $5}'`
#prefixname=api_access_if [ $servicefilesize -gt $maxsize ]
then
echo "$servicefilesize > $maxsize"
mv $base_path/$filename $base_path/$api_path/api_access_$nowtime.log
else
echo "$servicefilesize < $maxsize"
fi# 通过Nginx信号量控制重读日志
kill -USR1 `cat $base_path/nginx.pid`
更多相关内容 -
日志分割带有完整的说明,对linux上面产生的日志进行分割
2018-04-04 13:13:50日志分割带有完整的说明,对linux上面产生的日志进行分割日志分割带有完整的说明,对linux上面产生的日志进行分割 -
linux日志分割
2021-12-14 14:15:53想象一下springboot开发的项目 一般都自带tomcat 如果我们... 日志分割 sudo -u springboot nohup /usr/bin/java -Xms512m -Xmx512m -jar /home/java/xxxx-1.3.4.jar --server.port=8085 >> /tmp/xxx.log...想象一下springboot开发的项目 一般都自带tomcat 如果我们直接以jar的形式执行,那么就需要不挂断执行那么日志怎么办?会不会越来越大?
根据网络安全法第二十一条规定,网络日志应留存不少于六个月。
咋办?
日志分割
sudo -u springboot nohup /usr/bin/java -Xms512m -Xmx512m -jar /home/java/xxxx-1.3.4.jar --server.port=8085 >> /tmp/xxx.log 2>&1 &
日志是一个很重要的记录,一般程序出现问题,都要通过日志来排除,那么我们怎么处理这个日志呢?不管又会一直变大,删除又不行
日志有多种分割方式
我例举我习惯使用的一种
用shell来执行
current_date=`date -d "-1 day" "+%Y%m%d"` split -b 104857600 -d -a 4 /tmp/xxxx.log /tmp/java/xxxxx_${current_date}_ cat /dev/null >/tmp/xxxx.log
获取前一天的日期,把日志文件按照100M每份分割(你也可以设置小一点大一点),带日期加4个后缀 生成的文件类似 testlog_20211213_0000
最后清空原来的日志文件
当然你也可以使用宝塔面板来操作,确实很方便宝塔服务器面板,一键全能部署及管理
http:// https://www.bt.cn/?invite_code=MV91ZWNla3Y=
可以很好管理我们服务器部署的项目
这样建一个计划任务 让它每日自动给我们分割日志,我们就可以很好的玩耍了
-
linux日志分割命令 - logrotate
2021-05-12 12:37:22linux日志分割命令 - logrotate首页 计算机相关 linux命令 linux日志分割命令 - logrotatelogrotate 可以根据配置文件 /etc/logrotate.conf,/etc/logrotate.d/ 来对日志文件进行轮替操作。/etc/logrotate.conf 配置...linux日志分割命令 - logrotate
首页 计算机相关 linux命令 linux日志分割命令 - logrotate
logrotate 可以根据配置文件 /etc/logrotate.conf,/etc/logrotate.d/ 来对日志文件进行轮替操作。
/etc/logrotate.conf 配置如下# 默认一个礼拜轮替一次
weekly
# 默认保留4个日志文件
rotate 4
# 由于文件被改名,轮替后创建新文件
create
# 被轮替的文件后缀名用日期来显示
dateext
# 是否对轮替文件进行压缩
#compress
# 这里面的配置文件都会读进来
include /etc/logrotate.d
# 这里针对轮替文件进一步设置
# 同名的设置会覆盖上面的默认
/var/log/wtmp {
monthly #一个月轮替一次
create 0664 root utmp #指定新文件的权限,所属账号和群组
minsize 1M #一个月到了,如果文件小于1M,不轮替
rotate 1 #只保留一个,比如 btmp-20180701
}
/var/log/btmp {
missingok #代表如果日志文件不存在,直接跳过不报错
monthly
create 0600 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
/etc/logrotate.d/syslog
下面对4个日志文件进行轮替,如果要在{}里执行命令,则应该按照下面的格式,sharedscripts开头。/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
prerotate #这里代表轮替之前执行的命令,这里只是为了举例子,没实际用处。
ls -al || true
endscript
sharedscripts
postrotate #这里代表在轮替后重启 rsyslogd服务
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}[root@study ~]# logrotate [-vf] logfile
选项与参数:
-v :启动显示模式,会显示 logrotate 运行的过程喔!
-f :不论是否符合配置文件的数据,强制每个登录文件都进行 rotate 的动作!#读取配置文件并检查,满足条件的则轮替
logrotate -v /etc/logrotate.conf
#强制轮替
logrotate -vf /etc/logrotate.conf
logrotate 由 crontab 每天都会执行一次检查,所以无需你操心,下面解释下几个额外配置参数。#只有文件大于10M时,时间到了才会被轮替。
#文件不大于10M,时间到了也不会轮替
size=10M
#文件大于10M时,不管时间有没有到,都会轮替。
#文件不大于10M,时间到了也会轮替
maxsize 10M
#文件大于10M,且时间也要到了才轮替。
minsize 10M
#可以为dateext指定格式,man 3 strftime查询。
dateformat
-
Linux下Tomcat日志分割
2021-05-12 06:21:41本文主要讲述使用cronolog分割tomcat的catalina.out文件。1. 下载编译安装wget ...本文主要讲述使用cronolog分割tomcat的catalina.out文件。
1. 下载编译安装
wget https://files-cdn.cnblogs.com/files/shidian/cronolog-1.6.2.tar.gz
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2./configure
make
make install
2. 查看cronolog安装后所在目录(验证安装是否成功)
which cronolog
一般情况下显示为:/usr/local/sbin/cronolog
如下图所示:
3. 编辑Tomcat目录bin下的catalina.sh文件
找到下面这个,类似这样的行有2处:
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 "&"
第一处:Tomcat是带"-security"参数的启动。
第二处:默认Tomcat启动方式,也就是else下面那部分,我们只修改这里。
另外还要把touch "$CATALINA_OUT"这样注释掉。
修改后的结果如下所示:
# touch "$CATALINA_OUT"
if [ "$1" = "-security" ] ; then
if [ $have_tty -eq 1 ]; then
echo "Using Security Manager"
fi
shift
eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
-D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
-classpath "\"$CLASSPATH\"" \
-Djava.security.manager \
-Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" \
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 "&"
else
# eval $_NOHUP "\"$_RUNJAVA\"" "\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
# -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
# -classpath "\"$CLASSPATH\"" \
# -Dcatalina.base="\"$CATALINA_BASE\"" \
# -Dcatalina.home="\"$CATALINA_HOME\"" \
# -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
# org.apache.catalina.startup.Bootstrap "$@" start \
# >> "$CATALINA_OUT" 2>&1 "&"
"$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /usr/local/sbin/cronolog /opt/tomcat/apache-tomcat-9.0.13/logs/catalina.%Y%m%d.out >> /dev/null &
fi
将原来else的脚本屏蔽掉,加入后面的这段代码。
4. 重启Tomcat
重启后logs目录如下所示:
配置cronolog完成了,观察每天是否有个新的catalina.yymmdd.out的日志文件生成,定期删除日期较旧的日志文件。
-
Linux系统Tomcat日志分割jar包及配置文件
2018-11-15 17:42:34Linux Tomcat下使用Log4j接管catalina.out 日志文件生成方式,按天分割,解决catalina.out日志文件过大问题 1、将log4j-1.2.17.jar、tomcat-juli-adapters.jar两个jar包和log4j.properties文件拷贝到 Tomcat 的 lib... -
Linux下把tomcat日志按日期自动分割
2020-09-15 07:55:41主要介绍了Linux下把tomcat日志按日期自动分割的相关资料,需要的朋友可以参考下 -
linux日志分割、去重、统计
2021-05-09 02:39:14一、实例单条日志模板:2018-11-08 02:17:22 [Iceberg]process params:IcebergOfferServiceImpl.Params(pk=BF06NA2YEE60DKXVL0ARUJ5N, ua=Mozilla/5.0 (Linux; Android 6.0.1; SM-A500F Build/MMB29M; wv) Apple... -
Linux下日志按日分割的shell
2020-09-15 16:14:26主要介绍了Linux下日志按日分割的shell,需要的朋友可以参考下 -
Java项目linux启动脚本以及日志分割安装软件
2021-05-26 15:31:34该资源包含启动springboot项目的shell脚本文件、以及日志分割必备的cronolog压缩文件 -
Linux较大日志文件分割
2021-02-22 09:56:15Linux较大日志文件分割 在日常排查项目问题的时候,日志文件是非常有参考价值的。但是如果项目运行时间比较久,产生的日志量是海量的,此时查看较大日志文件就会很麻烦,我们可以使用linux提供的split命令,将较大的... -
linux分割nohup日志
2022-03-07 17:49:481、编写分隔脚本(下是测试代码) 命令:vim test.sh 输入一下内容: ... # 需要切片日志文件 source=/data/java/nohup.out #切片过后的日志文件存放路径: target=/data/java/log/nohup"$curdate"_ fi... -
Linux下 分割日志大文件
2017-09-20 17:22:59Linux下分割日志有两种常用命令ddsplit(推荐使用)1.dd:作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。参数注释:if=filename:输入的文件名of=finename:输出的文件名bs=bytes:一次读写的字节... -
Linux按时间分割日志
2019-07-23 18:51:00一、由来:需要做一个定时任务定期从MySQL数据库同步数据到Oracle,5m/次,同步日志写在一个文件恐有不妥,故而需要分割,一般按天,这里为了调试,按分操作。 1.任务如下:分别指定任务的脚本,任务读取文件... -
【运维实战】一次linux日志分割之路——将日志按照每小时进行分割,并按照“日期-小时”格式保存
2021-05-11 01:33:57两点,一个是按照每小时进行分割,一个是将日志以“日期+时间”的形式进行保存。1.将日志按照每小时进行分割:利用crontab输入crontab -e,手动添加一个定时任务0 */1 * * * /bin/bash /root/tools/log_per_hour.sh... -
linux vsftpd日志切分工具
2020-04-22 15:08:07工作过程中需要统计ftp情况,但是系统自己切分的日志不满足要求。所以自己写切分脚本,主要原理,从源文件切分出前一天日期的数据到备份文件,然后抹除源日志文件前一天数据。使用方法 一般的都是结合crond 使用,... -
Linux-nohup日志拆分
2018-08-06 16:07:46主要涉及Linux下对nohup的日志按照每天定时拆分生成新的日志并清空nohup原来的日志 -
linux日志分割方法
2017-08-04 13:24:251.split split [-][-b ][-C ][-l ][要切割的文件][输出文件名] wc -l check.log 查看大概多少行 ...split -l 100000 check.log check_new.log 会分成n个日志文件 2. dd if=文件名:输入文件 -
Linux tomcat下catalina.out日志文件分割
2021-01-10 10:47:43Linux tomcat下catalina.out日志文件分割 前言: tomcat默认使用Java.util.logging记录日志,默认只记录tomcat的日志,不记录应用的日志。tomcat支持采用log4j进行日志记录,配置方法如下: 1.更新最新的tomcat_juli... -
Linux中tomcat日志切割
2019-08-21 10:59:03linux中将tomcat的catalina.out文件按照catalina.20180821.out类似于这种格式做每天切割 -
Linux 服务器log日志切割三种方法【附命令行】
2021-05-09 02:39:11今天爱分享给大家带来Linux 服务器log日志切割方法【三种附命令行】,希望能够帮助到大家。业务服务器上产生了一个 10G 的log文件,然后很悲催的是什么样的文本编辑器都打不开,然后只能切分一下文件,再查看文本... -
linux下实现日志切割的两种方法 logrotate
2021-08-08 17:57:51linux下实现日志切割的两种方法 logrotate -
Linux下tomcat日志catalina.out按天(/周)分割
2017-05-24 13:13:51针对linux环境上tomcat不断输出到catalina.out文件的问题,提供一个按天分割catalina.out的脚本,以及操作说明。绝对可用! -
nginx日志分割 for linux
2021-01-10 05:15:34使用方法,先将以下脚本保存为 cutlog.sh,放在/.../bin/bash#function:cut nginx log files shell#设置您的网站访问日志保存的目录,我的统一放在了/home/wwwlogs目录下log_files_path=”/home/wwwlogs/”log_files_d -
Linux中tomcat日志按日期自动分割
2021-05-12 01:05:57Linux中tomcat日志分割需要用到cronolog1. 安装cronologtar –zxvf cronolog-1.6.2.tar.gz./configure && make && make install解压,编译, 安装(安装后目录一般在/usr/local/中)2. 为了能够一次正确... -
linux下日志切分
2016-08-30 10:01:37tomcat默认生成catalina.out文件,随着...在此介绍一种方法,通过cronolog工具对其catalina.out进行分割。(若需要删除旧日志,写个定时任务进行删除即可。) 1. 下载cronolog cronolog-1.6.2.tar.gz 2. 安装cron -
Linux之tomcat应用日志分割(基于logrotate)
2021-02-01 17:31:26日志文件过大,当出现问题需要排查的时候读取该日志会非常耗时,有些时候还需要将日志下载传送给开发人员排查,非常的不方便,为了维护catalina.out日志文件的可读性需要此文件按照周进行分割。