记一次小型事故:
因日志问题导致空间存储不足想来是运维碰到的很常见的事情,本次事故发生就是日志量过大导致/var这个目录空间使用率超过了95%,so我的初衷很简单一方面删除多余日志释放空间另一方面想办法扩大/var目录的使用空间,于是我想到了通过使用软链接的方式先将/var目录整个移到/data较大的挂载目录下,然后给/data/var做个软链接到/var即可。
接下来就踩坑环节:
1、使用mv /var /data/var(小伙伴们千万不要这样做,尤其是服务器上有正在运行的服务时,/var这个目录是很关键的一个位置,此时移动必然报错,且会出现部分移动部分未移动,处理起来很麻烦)
2、使用ln -s /data/var /var(此时如果/var这个是目录的话,源目录软链接会出现在目标目录的下一级路径, 即在 /var/ 中会看见一个var的文件夹,如果存在文件则不能执行成功,因此在做软链接时要首先确保目标文件/目录不存在)
3、因为本人操作时,刚好/var目录我怕ln命令不会自动创建(闹个乌龙)手动建了一个,结果就出现了2的情况,于是乎怎么办,建了一个/var/var的软链接,那肯定不行啊,只能删掉了,说干就干cd /var,接着rm -rf /var/哎一个习惯性tab补全,还带了个"/“,再然后就全完了。。。(所以这里又有一个关键点,就是rm命令在删除目录时带不带”/“,经过测试笔者发现如果删除的是目录则带不带效果是相同的,但如果删除的是软链接就会有天差地别,不带”/“删除的是仅仅是软链接本身,带”/"则删除的可就是源数据文件了,如果恰好你还没有备份,恰好还正式环境,那你可以准备好跑路了-。-)
4、其次说一下如果不该发生的还是发生了怎么办,千万不能胡乱操作:
1)建议立刻先使用umount卸载误删文件所在的分区(前提是非/根目录),避免因为磁盘因为其他操作覆盖掉删除的内容,便于数据恢复;
2)这时可以使用lsof|grep deleted查看仍然打开的活动进程,查看到刚刚删除的内容(如果幸运的话),然后通过cd /proc/pid/fd(这里pid就是通过lsof命令获取到的进程id),接着在fd里就能找到已删除的文件,例如删除的是文件3,就cp 3 /恢复的指定目录中 即可;
3)2的方法笔者试了试,也可能是运气不太好只能恢复一小丢丢文件,建议1直接转3,查看自己系统版本uname -a或者lsb_release -a,查看文件系统df -T,笔者文件系统是ext4(普通默认ext3、ext4),因此使用extundelete工具进行文件恢复,这个工具默认是没有安装的需要到官网下载自行安装官网地址,下载完解压打开目录找到直接运行./configure然后make&&make install即可。
接下来怎么使用网上教程多的是,这里说下本人使用结果,因为是第一次碰到这种情况很多人可能都会陷入一个手忙脚乱的地步,这里提醒小伙伴们一定不能慌,慌是解决不了问题的,笔者当时就是处于慌乱之中病急乱投医,结果一顿操作导致磁盘删除的那部分空间被覆写了,当然也就无法恢复了,最后郑重提醒运维小伙伴们在进行重要操作前一定要先进行备份和充足的准备工作。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧