博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux文件删除原理及案例分析
阅读量:5880 次
发布时间:2019-06-19

本文共 960 字,大约阅读时间需要 3 分钟。

hot3.png

谨记: 大多数服务在运行时,是不能删除对应的服务正在写入的日志文件,会带来意料之外的结果!!!

    Linux是通过link的数量来控制文件删除的,link包括被调用的数量硬链接数量。

    真正的删除一个文件,只有在文件未被进程调用的情况下,删除该文件的所有硬链接数即可。

    如果在进程调用时,通过rm命令删除一个文件,是无法彻底删除的,该文件依然存在,只不过通过ls命令无法看到而已!

案例: 删除进程正在调用的/var/log/secure文件

[root@t-c6 ~]# ls /var/log/secure/var/log/secure[root@t-c6 ~]# \rm -rf  /var/log/secure[root@t-c6 ~]# ls /var/log/securels: 无法访问/var/log/secure: 没有那个文件或目录

    通过命令lsof可以看到,该文件并未彻底删除,因为系统进程正在写入数据到该文件中,进程调用数不为零导致的!

[root@t-c6 ~]# lsof | grep deletedrsyslogd    917   root    2w      REG              252,1  5573745      41014 /var/log/secure (deleted)

如何解决该问题?

    重启对应的服务

[root@t-c6 ~]# /etc/init.d/rsyslog restart关闭系统日志记录器:                                       [确定]启动系统日志记录器:                                       [确定]

    将来有一天发现磁盘block满了,通过du -sh /* | grep G,并未发现太大的文件,可能是删除了不该删除的文件,导致文件大小一直增长,导致block满了,可通过 # lsof | grep deleted 查看 

只有进程调用数为0并且硬链接数为0,该文件才能彻底删除! 

 

注:我使用的系统为CentOS release 6.9 (Final) 

转载于:https://my.oschina.net/u/3285916/blog/1622198

你可能感兴趣的文章
django数据库中的时间格式与页面渲染出来的时间格式不一致的处理
查看>>
Python学习笔记
查看>>
java String
查看>>
renhook的使用
查看>>
Linux学习笔记(十二)--命令学习(用户创建、删除等)
查看>>
DOCKER windows 7 详细安装教程
查看>>
养眼美女绿色壁纸
查看>>
U盘启动盘制作工具箱 v1.0
查看>>
增强myEclipse的提示功能
查看>>
Zabbix汉化方法
查看>>
Java I/O系统基础知识
查看>>
Java多线程设计模式(2)生产者与消费者模式
查看>>
对象并不一定都是在堆上分配内存的
查看>>
刘宇凡:罗永浩的锤子情怀只能拿去喂狗
查看>>
php晚了8小时 PHP5中的时间相差8小时的解决办法
查看>>
JS(JavaScript)的初了解7(更新中···)
查看>>
svn文件管理器的使用
查看>>
Ansible playbook 使用
查看>>
for/foreach/linq执行效率测试
查看>>
js /jquery停止事件冒泡和阻止浏览器默认事件
查看>>