Linux下服务器日志清理
2018-01-03 14:22
267 查看
之前在做一个项目,服务器部署在Linux系统下,后来发现服务器运行每天产生大量的日志文件,一个多月产生了60多G的日志文件,消耗巨大的存储空间。后来就想办法让Linux系统自动每天清理7天以前的日志文件。
实现过程是写一个删除日志的shell脚本。
解释一下,服务器产生的日志放在/home/webServive/logs路径下。
使用相关用户登录Linux系统,例如我用的用户是ryan,然后在/home/webServive路径下新建logs.sh脚本,编辑相关shell脚本代码,如下所示。此处的角标表示的是你在此服务器下部署的应用数量,我这里是三台;
#!/bin/bash
logs_paths[0]="/home/webServive/logs"
logs_paths[1]="/home/webServive/logs
"logs_paths[2]="/home/webServive/logs"
for logs_path in ${logs_paths[@]};
do
find $logs_path -mtime +7 -name "localhost_access_log.*.txt" -exec rm -rf {} \;
find $logs_path -mtime +7 -name "catalina.*.log" -exec rm -rf {} \;
find $logs_path -mtime +7 -name "manager.*.log" -exec rm -rf {} \;
find $logs_path -mtime +7 -name "host-manager.*.log" -exec rm -rf {} \;
find $logs_path -mtime +7 -name "localhost.*.log" -exec rm -rf {} \;
#备份日志
cp $logs_path/catalina.out $logs_path/catalina.`date +%Y-%m-%d`.log
#清空日志
cat /dev/null > $logs_path/catalina.out
echo $logs_path
done
以上是脚本内容;
保存文件;
授权
chmod 777 /home/logs.sh
加载定时
crontab -e
30 23 * * * sh /home/logs.sh 注:此处的时间是每天23点30分定时清理
重启定时文件
service crond restart
https://www.cnblogs.com/lzhryan/articles/6888128.html 此网址是网上所找,大家可以借鉴;
实现过程是写一个删除日志的shell脚本。
解释一下,服务器产生的日志放在/home/webServive/logs路径下。
使用相关用户登录Linux系统,例如我用的用户是ryan,然后在/home/webServive路径下新建logs.sh脚本,编辑相关shell脚本代码,如下所示。此处的角标表示的是你在此服务器下部署的应用数量,我这里是三台;
#!/bin/bash
logs_paths[0]="/home/webServive/logs"
logs_paths[1]="/home/webServive/logs
"logs_paths[2]="/home/webServive/logs"
for logs_path in ${logs_paths[@]};
do
find $logs_path -mtime +7 -name "localhost_access_log.*.txt" -exec rm -rf {} \;
find $logs_path -mtime +7 -name "catalina.*.log" -exec rm -rf {} \;
find $logs_path -mtime +7 -name "manager.*.log" -exec rm -rf {} \;
find $logs_path -mtime +7 -name "host-manager.*.log" -exec rm -rf {} \;
find $logs_path -mtime +7 -name "localhost.*.log" -exec rm -rf {} \;
#备份日志
cp $logs_path/catalina.out $logs_path/catalina.`date +%Y-%m-%d`.log
#清空日志
cat /dev/null > $logs_path/catalina.out
echo $logs_path
done
以上是脚本内容;
保存文件;
授权
chmod 777 /home/logs.sh
加载定时
crontab -e
30 23 * * * sh /home/logs.sh 注:此处的时间是每天23点30分定时清理
重启定时文件
service crond restart
https://www.cnblogs.com/lzhryan/articles/6888128.html 此网址是网上所找,大家可以借鉴;
相关文章推荐
- linux 服务器下入侵之后的日志清理
- linux服务器自动切割并清理日志
- linux 清理过期日志
- 在linux下用echo命令来清理日志,清理完毕之后不需要重启
- linux下实现每天自动发送服务器日志到邮箱(使用sendmail)
- linux把日志发送到日志服务器上
- Linux配置syslog服务器及CentOS配置rsyslog客户端远程记录日志
- 转载blog_Linux下Tomcat日志定期清理 及 logrotate 配置
- Linux日志清理
- 配置linux syslog日志服务器
- Linux下架构日志服务器
- 在Linux系统中安装系统日志服务器
- Linux被占用的日志文件清理后磁盘空间释放,但ll查看仍然显示曾经达到的最大大小,此时copy该文件也是按曾经最大的值占用空间
- Linux ORACLE清理、截断监听日志文件(listener.log)
- linux 日志主服务器 syslog
- Linux系统日志管理:(4)rysylog日志服务、日志服务器以及日志转储
- linux 日志服务器的构建
- 如何把linux设置成cisco路由器的日志服务器?
- linux-实现日志的定时清理