慢重启 – 了解fsck和tune2fs

我的网络服务器出现了问题:当它已经运行了很长时间,然后由于某种原因而停机时,它需要永远启动。

我的解决方法是创建一个cron来不时重启服务器(我被侮辱了这一点,善待)。 重启速度非常快,服务器能够在超时之前响应请求,所以我很酷。

但是现在我被告知可能导致这种情况的原因是在X天之后强制执行fsck,并且在Y安装之后也是如此,所以我的解决方案将无济于事。

所以问题是我应该怎么做fsck? 强制它更频繁地运行,还是禁用它? 它可以随时运行,还是必须在启动时运行? 如何使用tune2fs的一个例子也是受欢迎的。

首先回答最简单的问题:“随时”检查文件系统(即系统运行时)称为“在线”检查,一般情况下,不支持。 原因很简单:当安装文件系统时,内核对实际的块设备做任意事情 – 这很好,因为它跟踪它正在做什么。 但是当你把fsck扔进混合体时,它对原始块设备来说太混乱了,并没有告诉内核它正在做什么。 因此,在对磁盘进行更改时,它们基本上会互相踩到脚趾,最终导致文件系统损坏。 即使您只是在“只读”模式下“检查”,结果fsck返回也将毫无意义,因为fsck不知道内核在做什么。

要更改安装文件系统时检查文件系统的频率,您将使用tune2fs,如您所述。 假设你想每30次重启一次。 做

 # tune2fs -c 30 /dev/sdaX 

(用块文件系统替换块设备。)

或者,如果由于某种原因您想要完全禁用基于挂载计数的检查,

 # tune2fs -c 0 /dev/sdaX 

如果您想查看日历,可以使用-i 。 例如,要检查每周,请执行

 # tune2fs -i 1w /dev/sdaX 

您可以使用d表示天数, w表示数周, m表示数月。 同样,要禁用基于日历的检查,请为该间隔指定值0请,请不要禁用所有检查。 在某些时候,您将破坏您的文件系统。

一般情况下,如果文件系统是记录的,您可以稍微延长间隔,尽管它不是替代品。 有关更多信息,请阅读e2fsck和tune2fs的手册页; 他们是我获得大部分信息的地方。 希望这可以帮助!

更改计划的重新启动以包含以下其中一项

 touch /forcefsck; reboot 

要么

 shutdown -rF now 

/forcefsck的存在将告诉操作系统扫描磁盘(我很确定这是第二个命令所做的事情。

使用cron在服务器负载最小的时间段内安排此操作,并在确信其正确运行后禁用其他计划扫描(日期/安装次数)。