定期修改密码
cd /etc
lsattr passwd shadow
如果这2文件有带i属性, 则表示无法修改, 用下面命令去掉
chattr -i passwd shadow
然后是修改密码命令
passwd
输入新密码: ******
再次输入: ******
修改成功, 把2个文件加上i属性防止被窜改
chattr +i passwd shadow
定期清理磁盘空间
通用方法, 删除指定目录7天前的文件
find /appLog -type f -mtime +7 -exec rm {} \;
也或以针对nginx, tomcat处理
其中大都是由于nginx, tomcat的日志积压
1. 定期检查目录里的文件夹大小
进入目标目录
cd /slc/web-file/lizhiwei/APP
查看各目录磁盘空间占用, 把所有目录(包括子目录)都显示出来
du -h
子目录太多看着烦, 只显示1级目录就行了
du -h --max-depth=1
然后挑大的进去删除日志
2. 切割日志
1.tomcat采用 cronolog 从程序上把日志按天分切割
2.nginx采用crontab执行自己写的sh, 定时每天23:59分定时执行
三. 历史日志
tomcat 可以采用logback, 直接在配置上设置历史日志压缩及最近7天
<!-- 日志文件每天生成,保留30天的日志文件,防止日志打爆磁盘 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.base}.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
<maxHistory>30</maxHistory>
<!--日志文件最大占用空间,防止日志打爆磁盘 -->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
方法一:tomcat使用shell切割日志
cd /yf-weloop-rawdata/apache-tomcat-7.0.73/bin
d=`date --date='0 days ago' +%Y-%m-%d`
d7=`date -d'7 day ago' +%Y-%m-%d`
echo '-----'
echo 'tomcat catalina.out log backup start'
echo 'system time: '`date`
echo 'current date: '${d}
echo 'next 7 days: '${d7}
cd ../logs/
echo 'copy catalina.out to catalina.out.'${d}
cp catalina.out catalina.out.${d}
echo 'clear catalina.out'
#这样直接把文件 ""> 的方法, 仅在redcap有效, 在centos使用, 后面的内容不会追加
echo "" > catalina.out
echo "rm catalina.out -7d before: catalina.out.${d7}"
if [ -a "catalina.out.${d7}" ]; then
rm -rf catalina.out.${d7}
echo 'rm catalina.out.'${d7}' success'
else
echo 'rm catalina.out.'${d7}' failure, it''s not existx'
fi
echo 'tomcat catalina.out log backup end'
echo '-----'
方法二:tomcat自身catalina.out的切割
step 1:
touch "$CATALINA_OUT"
改
#touch "$CATALINA_OUT"
step 2:
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_OUT" 2>&1 "&"
改
org.apache.catalina.startup.Bootstrap "$@" start 2>1 \
| cronolog "$CATALINA_OUT.%Y%m%d" >> /dev/null &
step 3:
在else下面的语句同step 2
效果
nginx 则需要自己写sh, 删除指定30天前的日志
#nx 日志文件所在的目录
LOGS_PATH=/usr/local/nginx/logs
## 获取昨天的 yyyy-MM-dd
YESTERDAY=$(date -d "yesterday" +%Y%m%d)
## 移动文件
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
echo $(date +%Y-%m-%d" "%H:%M:%S) 保存昨天的日志文件 >> ${LOGS_PATH}/cut-log.log
## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
echo $(date +%Y-%m-%d" "%H:%M:%S) 通知nginx重写日志 >> ${LOGS_PATH}/cut-log.log
## 删除15天前的日志
rm -f ${LOGS_PATH}/access_$(date -d "10 day ago" +%Y%m%d).log
rm -f ${LOGS_PATH}/error_$(date -d "10 day ago" +%Y%m%d).log
echo $(date +%Y-%m-%d" "%H:%M:%S) 删除15天前的日志:access_$(date -d "10 day ago" +%Y%m%d).log >> ${LOGS_PATH}/cut-log.log
echo $(date +%Y-%m-%d" "%H:%M:%S) 删除15天前的日志:error_$(date -d "10 day ago" +%Y%m%d).log >> ${LOGS_PATH}/cut-log.log
查看并发,连接数, 通过端口号
一般tomcat是8080
netstat -na | grep ESTAB | grep 8080 | wc -l
一般nginx是80
netstat -na | grep ESTAB | grep 80 | wc -l
文件排序, 日志数据处理分析
cat lizw.10.log |awk -F, '{print $(NF)}' > lizw.10-1.log
把日志里每行的最后一列打印到新的文件
-F, 以","作为分隔符
$(NF), 倒数第1列, 如果是$(NF-1), 则是倒数第2列
sort -u lizw.10.log > lizw.10.u.log
文件去重, 相同的行只留唯一
sort -nk 2 -t: lizw.10.u.log > lizw.10.sun.log
-nk 2 按数值排序, 以第2列为准
-t: 以":"作为列的分隔符
10进制<->16进制
10->16
printf "%x\n" 2579728
输出:275d10
16->10
printf "%d\n" 0x275d10
输出:2579728
筛选文件里匹配关键字的行
cat access.log.20170713|grep "deviceId"
筛选文件里匹配关键字的行里的内部 (-o)
cat access.log.20170713|grep -o "deviceId\":\w\{1,10\}"
或 标准正则表达式写法 (-P)
cat access.log.20170713|grep -oP "deviceId\":\d{1,10}"
- 大小: 179 KB
分享到:
相关推荐
Linux运维自动化运维脚本.zip,自动化运维脚本 介绍 Linux系统运维中各种一键脚本 使用教程 openssh一键升级脚本,支持centos6、centos7、centos8。 Linux运维自动化运维脚本.zip,自动化运维脚本 介绍 Linux系统...
LINUX运维案例 Linux 运维是一个非常广泛的领域,涉及到操作系统的安装、配置、管理、优化和故障排除等多方面的内容。本文档对 Linux 运维进行了系统性的介绍,涵盖了 Linux 的发展介绍、常用命令、各种服务搭建、...
Linux运维工程师是互联网行业中至关重要的角色,他们负责保障服务系统的稳定性和高可用性。随着互联网规模的扩大和技术的快速发展,运维工程师的角色也在不断演变,从基础的系统维护扩展到复杂的技术管理和产品设计...
Linux运维趋势_第0期_运维自动化 Linux运维趋势_第1期_监控与报警 Linux运维趋势_第2期_可用性 Linux运维趋势_第3期_运维与开发 Linux运维趋势_第4期_性能瓶颈 Linux运维趋势_第5期_内网开发环境 Linux运维趋势_第6...
Linux运维故障锦集
linux 运维之道PDF,有需要的同学可以下载来看看。
根据提供的文件信息,我们可以推断出这是一门关于Linux运维与架构的学习课程,旨在帮助学员从零基础开始学习,最终成长为一名具备高级技能的Linux运维架构师。下面将基于这个理解,详细介绍该课程可能涉及的一些核心...
Linux运维之道 第2版 ,高清完整版带书签。个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
Linux 运维实战:CentOS76 操作系统从入门到精通 本资源是关于 Linux 运维实战的全面指南,涵盖了 CentOS76 操作系统从入门到精通的所有方面。通过本资源,您将了解 Linux 系统的概述、CentOS76 的安装和基础配置、...
### Linux运维中的常见故障排查与解决方法 #### 一、Shell脚本不执行 **问题描述**:在实际工作中,可能会遇到这样的情况:一个看似正常的Shell脚本在Linux环境下无法执行,报出“:bad interpreter: No such file ...
《Linux运维之道》将围绕 Linux操作系统这样一个基础平台,讲解如何使用操作系统实现各种开源产品的应用案例。全书主要从运维工作中的应用服务入手,全面讲解基本 Linux操作系统以及各种软件服务的运维工作。
【Linux运维】 在IT行业中,Linux运维是关键的一环,负责系统稳定运行、性能优化、安全维护等工作。本资料包包含多个与Linux运维相关的学习资源,帮助你深入理解和掌握这个领域。 1. **TCP/UDP SOCKET调试** TCP...
Linux运维趋势是一个不断演变的领域,它涉及到操作系统、网络管理、安全管理、自动化工具以及数据分析等多个方面。随着云计算、大数据和物联网等技术的发展,Linux运维的角色也在发生着深刻的变化。以下是对这一主题...
Linux 运维经典命令汇总 Linux 作为一个广泛使用的操作系统,了解经典的 Linux 运维命令是非常重要的。本文总结了 18 条经典的 Linux 运维命令,涵盖了系统时间、内核、CPU、内存、硬盘、IO 使用、目录大小、系统...
Linux运维入门到高级全套系列.pdf
Linux运维趋势0-18期合集是一份包含18个不同主题的资源包,旨在深入探讨Linux操作系统在运维领域的最新动态、最佳实践和技术趋势。这份合集对于那些希望提升Linux运维技能或关注Linux运维行业发展的专业人士来说是极...