linux系统维护服务器磁盘满了的处理方法

一般是日志文件比较满  适当重启机器 比如ovh的debian系统积累的垃圾文件比较大重启后释放

查看cd /var/log

ls -lh  以M的形式查看  或者  du -csh /opt/ /var/log 查看opt和log文件夹的占用大小

今天连接oracle数据库报错,重启数据库显示磁盘满了,记录一下我的处理方法:

du -a查看当前目录下所有文件占用空间

du -h

1.df -h命令:通过df -h命令查看硬盘的使用情况:发现vda3挂载点已经基本满了[这个还是处理后的,之前到达49G了]

 

2.知道了是硬盘满了的问题,name下一步就是开始查找服务器中的大文件,从根目录开始查找,通过du -h –max-depth=1命令,发现是home文件夹占用空间较多

 

cd ./home,然后 通过du -h –max-depth=1命令依次往下查找,最后发现是oracle占用空间较大

du -sh *,这个命令也用于查看当前目录下各文件及文件夹占用大小,

再去仔细查找发现log文件以及listener.org占用较多,定位到了问题,下面就是解决问题:

按照上述的查找大文件的步骤定位发现/home/oracle/app/oracle/diag/tnslsnr/WH-CS-116/listener/alert文件夹下面有超过3G的log文件,久远的log一般用不到,可根据自己的情况删除,通过下述命令删除该文件夹下指定天数之前的文件(下面展示的是删除5天以前的log文件),

find . -mtime +5 -type f -name “*” -exec rm -f {} \;

完成上述操作,释放掉部分存储空间,

但是我检查发现/home/oracle/app/oracle/diag/tnslsnr/WH-CS-116/listener/trace这个文件加下面有一个listener.log的文件,而且很大

 

网上搜索发现这个文件过大会导致数据库sql的速度变慢,也会导致plsql等可视化工具连接不成功,下面记录一下处理方法:

1.重命名文件:mv listener.log listener.old20180917

2.重新开启listener日志,会自动生成一个新的listener.log的文件:lsnrctl set log_status on

3.等到没问题之后,就可以删除listener.old20180917这个文件了


需求:删除某文件夹下10天前的日志文件?(类型为.log)

具体步骤:

查询是否存在需求中的日志问价

find /home/rab/hhy/test/ -mtime +10 -name “*.log” -exec ls -l {} \;

存在执行删除(删除需谨慎,做好备份)

find /home/rab/hhy/test/ -mtime +10 -name “*.log” -exec rm -rf {} \;

详解:

/home/rab/hhy/test/ :准备目录
-mtime:按天查找
-mmin:按分钟;
+9:查找10天前的文件,当前时间为0
“*.*”:希望查找的数据类型,*.*为任意文件
-exec:固定写法
rm -rf:强制删除文件,包括目录
{} \; :固定写法,一对大括号+空格+/+;

需求:查找大于5M的日志文件?

find /home/rab/hhy/test/ -type f -size +5M

find /home/rab/hhy/test/ -type f -size +5120k

删除:

find /home/rab/hhy/test/ -type f -size +5120k -exec rm -rf {} \;


使用 crontab 计划任务自动清除系统缓存

 

#cleancaches1.sh #!/bin/bash # 每一小时清除一次缓存 echo “开始清除缓存” sync;sync;sync #写入硬盘,防止数据丢失 sleep 10 #延迟10秒 echo 3 > /proc/sys/vm/drop_caches #cleancaches2.sh #! /bin/sh used=`free -m | awk ‘NR==2’ | awk ‘{print $3}’` free=`free -m | awk ‘NR==2’ | awk ‘{print $4}’` echo “===========================” >> /tnwmall/memory/logs/mem.log date >> /tnwmall/memory/logs/mem.log echo “Memory usage before | [Use:${used}MB][Free:${free}MB]” >> /tnwmall/memory/logs/mem.log if [ $free -le 2000 ] ; then sync && echo 1 > /proc/sys/vm/drop_caches sync && echo 2 > /proc/sys/vm/drop_caches sync && echo 3 > /proc/sys/vm/drop_caches used_ok=`free -m | awk ‘NR==2’ | awk ‘{print $3}’` free_ok=`free -m | awk ‘NR==2’ | awk ‘{print $4}’` echo “Memory usage after | [Use:${used_ok}MB][Free:${free_ok}MB]” >> /tnwmall/memory/logs/mem.log echo “OKAY” >> /tnwmall/memory/logs/mem-okay.log else echo “Not required” >> /tnwmall/memory/logs/mem-required.log fi exit 1
添加计划任务 crontab -e 15 8 */1 * * /usr/bin/python3 /root/guo/caiji_wordpress_chinanews_ok.py >> /root/guo/cron-caiji.log 2>&1 15 9 */1 * * /root/cleancaches1.sh >> /root/cleancaches1.log 2>&1 15 10 */1 * * /root/cleancaches2.sh >> /root/cleancaches2.log 2>&1

未经允许不得转载:萌萌Apprentissage » linux系统维护服务器磁盘满了的处理方法

赞 (2) 打赏

评论 0

Protected with IP Blacklist CloudIP Blacklist Cloud

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏