启动缓慢,如何编写 fsck 使其像 cron 作业一样运行?

启动缓慢,如何编写 fsck 使其像 cron 作业一样运行?

有时我的网络服务器崩溃,可能需要几个小时才能启动。有人告诉我fsck可能是罪魁祸首,因为它只能在启动期间运行,只能在 X 天和 Y 安装后运行,如果服务器运行了很长时间,那么下次重新启动时它肯定会很慢。

那么我能做些什么来解决这个问题呢?我发现了关于tune2fs.但我需要通过重新启动 cronjob 来协调它?说我同意tune2fs -i 1w /dev/sda1。我担心如果我设置一个 cron 在该日期之后运行(我可以使用-l),那么在接下来的日期它们将不同步,不是吗?

另一件不清楚的事情是:崩溃后,无论如何 fsck 都会运行吗?应该是?即使它是在不到一周前运行的,它仍然会很慢吗?

答案1

tl;dr:看看你的系统日志,或者使用类似的东西bootlogd,这应该会向您显示减速发生的位置。我敢打赌,事实并非如此fsck


首先,fsck可以随时运行,不必在启动时运行。您可能指的是它只能在未安装的文件系统上运行,并且由于/其他文件系统是在系统完全运行时安装的,因此这是运行它的唯一可能的时间那些文件系统。

fsck如果它只是进行定期检查,则不应花费数小时才能完成,除非它实际上发现文件系统中的不一致之处并必须修复它们(但即使如此,一个小时听起来也不太可能,即使在具有许多不一致的大型文件系统上)。查看您的系统日志,或使用类似的内容bootlogd,这应该会向您显示减速发生的位置。我敢打赌,事实并非如此fsck

文件系统可能会出现不一致,而不会产生任何明显的副作用,这就是定期fsck检查的目的,无论文件系统是否被标记为脏。

您无法在系统运行时卸载根文件系统,因为它将正在使用中,因此您无法fsck在其上运行,因此无法正确运行 cron 作业来执行此操作。可以fsck在某些日期强制重新启动,然后重新启动,但我真的不明白这一点。我不太明白你所说的“不同步”是什么意思。

崩溃后,fsck将在任何脏文件系统上运行,即未完全卸载的文件系统。如果您的计算机在正常操作期间崩溃,那么,是的,fsck会运行。如果您的计算机在关闭的最后阶段崩溃,则可能不会,因为文件系统不会受到损害。

相关内容