当前位置: 首页 > news >正文

珠海企业机械网站建设装饰公司怎么做网站

珠海企业机械网站建设,装饰公司怎么做网站,个人网站名称创意大全,汉中建网站某天,收到监控系统的告警信息,说磁盘空间占用过高,登上服务器,使用 df -h 一看,发现磁盘占用率已经 96%了: 通过查看 /usr/local/nginx/conf/vhost/xxx.conf 找到 access_log 和 error_log 的路径&#x…

某天,收到监控系统的告警信息,说磁盘空间占用过高,登上服务器,使用 df -h 一看,发现磁盘占用率已经 96%了:
在这里插入图片描述

通过查看 /usr/local/nginx/conf/vhost/xxx.conf 找到 access_log 和 error_log 的路径,进去后,du -sh 查看了下总大小,一共占用了 31GB,二话不说,直接 rm xxx_access.log 删除掉nginx的 access_log 文件,然后兴冲冲的 df -h 一看,磁盘空间并没有下降,还是占用96%,什么鬼?

为什么文件被进程占用之后删除不会释放磁盘空间呢?

因为在 Linux 中,文件存储在硬盘上的最小存储单位是扇区(Sector),每个 sector 只有 512字节大小;多个 sector 可以组成文件块 (block) 。当我们读取某个文件数据的时候,操作系统就需要知道这个文件存储在哪个 block 上。文件的数据存放位置信息被存放到了 inode (索引节点)上。也就是说,在 Linux 下,文件由指针部分(inode)和数据部分(data)组成。

因此,执行 rm xxx 命令删除文件的时候,只是删掉了inode数据,而文件的实际数据部分在 inode 被清除掉之后,会被覆盖并写入新的内容。但是如果文件在删除的时候是被打开的(有一个进程正在使用该文件,文件被进程锁定或者有进程一直在向这个文件写数据等)状态,那么进程依旧可以读取该文件,系统就会认为该文件的磁盘空间一直被占用。

虽然删除了 access_log 文件,但是由于 nginx 进程还在一直向这个文件写入内容,文件的 inode 并没有清除掉,系统内核认为文件并未删除,这才出现空间不释放的情况。也就是说:当一个进程持续的写入一个文件的时候,直接删除这个文件,磁盘空间并不会得到释放。

可以通过 lsof | grep deleted | grep access_log 命令查看是不是有进程一直还在写入这个文件:
在这里插入图片描述
可以看到这个文件被进程 nginx 锁定,而且 nginx 进程一直在往这个文件写数据,最后一列的 deleted 状态表示这个文件已经被删除。由于进程还在一直往里面写数据,导致磁盘空间并未释放。

解决方案:

  • 方法1:写入一个空数据到这个文件中:cat /dev/null > /home/wwwlogs/access.log 或者 echo " " > /home/wwwlogs/access.log
  • 方法2:重启 nginx 进程让操作系统回收磁盘空间: /usr/local/nginx/sbin/nginx -s reload

这样操作后,磁盘空间直接下降了:
在这里插入图片描述
另外,有一些查看文件相关的命令,记录下来备用:

# 查看当前磁盘占用
df -h# 查看当前目录大小
du -sh# 查看当前目录下第一层文件夹的大小,按照由大到小排序
du -sh * | sort -rh (文件过多的话,可以加 | less)# 同上,但可以指定层级
du -lh --max-depth=1 | sort -rh# 查看进程打开的文件
lsof | grep xxx (记得加上grep,否则返回的数据会很多)

后续工作:
由于此前没有对nginx的日志进行切割,导致nginx的日志文件越来越大,因此,需要写一个shell脚本,通过定时任务按照每天(或者其他自定义维度)对日志文件切割存储,并自动删除一段时间之前的日志文件。

shell脚本文件:vim /root/cut_nginx_log.sh

#!/bin/bash
#日期参数   
date=`date -d "yesterday" +"%Y%m%d"`# 复制原来的日志文件
cp /home/wwwlogs/access.log /home/wwwlogs/backup/access_${date}.log# 清空原有的日志文件
cat /dev/null > /home/wwwlogs/access.log# 删除7天前的日志文件
find /home/wwwlogs/backup -mtime 7 -type f -name \*.log | xargs rm -f

增加执行权限: chmod +x /root/cut_nginx_log.sh

定时任务:crontab -e

0 0 * * *  /root/cut_nginx_log.sh
http://www.yayakq.cn/news/622756/

相关文章:

  • 山东省水利建设市场信用信息平台网站织梦cms收费不交有事吗
  • 网站英语培训成立学校网站建设小组
  • 毕业作品是做网站的答辩会问什么创维爱内购网站
  • 如何域名解析网站建设免费软件开发app
  • 网站 数据库 sql 导入数据库文件糖果果屋网站建设规划书
  • 个人网站建设的目的wordpress红酒主题
  • wordpress站点美化网上找客户有哪些网站
  • 深圳网站建设与推广西安网站制作公司官网
  • 扶余市建设局网站营销策略有哪些4种
  • google企业网站seo浏览器主页
  • 公司网站设计图用什么建设网站
  • 长沙哪里做网站好河北互联网公司
  • 自建网站免费教程zoho crm zoho crm 系统
  • 中铁广州建设有限公司网站手机建设网站公司
  • ai效果图网站手机可以搭建网站么
  • 浙江台州网络设计网站网站服务器租用哪家好
  • 哪些网站可以接点私活做的大型企业策划咨询公司
  • 黔南州建设局门户网站多多卡起货网站建设
  • 高端企业门户网站建设费用深圳网站制作首荐祥奔科技
  • 如何做一个更新网站小说网站源码带采集
  • 建立网站该怎样做密云青岛网站建设
  • 网站域名和服务器到期山东省聊城建设学校网站
  • django做的网站wordpress后台登录网址
  • 成都快速建网站印刷行业网站建设
  • 江苏省 建设 注册中心网站怎么制作一个团购小程序
  • 企业网站服务器建设方法北京网站建设+招聘信息
  • 做怎样的网站能赚钱zuiruo笑话类博客wordpress主题
  • 企业站seo哪家好导购网站如何做
  • 家具公司网站页面设计模板红灰搭配网站模板
  • 教育 网站模板番禺免费核酸检测