在远程服务器上运行自动 fsck

在远程服务器上运行自动 fsck

我对 df 还有另一个问题,现在我得出结论,我需要运行 fsck 我的分区,我一直在阅读有关它的内容,如果可能的话,我希望得到一些建议。

情况是这样的,无法物理访问服务器,但我想运行 fsck。

从我读到的内容来看,我只需要这样做touch /forcefsck,当我重新启动时它就会运行 fsck。

我的问题是,从根本上讲,fsck 将使用什么参数运行?它是否需要用户输入来纠正错误等?

运行后它会保存发生的情况的日志吗?

如果它是这样运行的那就太完美了,无论如何在重启时强制执行这一点?

fsck -v -p /machine/disk/p1 2>&1 > fscklog.txt

这里他们这样描述:

在 debian 和 debian 衍生产品(例如 ubuntu)上编辑远程服务器上的 /etc/default/rcS 并设置“FSCKFIX=yes”也是一个好主意,这会在启动时 fsck 中添加“-y”,这样就不会冒远程服务器被卡住等待某人登录控制台并运行 fsck 的风险。

但在 Centos 上似乎不存在

我目前只有 ssh 访问权限,这就是我对它如此挑剔的原因。

以下是有关服务器上的磁盘和已安装卷的一些信息:http://pastebin.centos.org/33314

谢谢。

答案1

好的,我发现在 CentOS 上你可以这样做:

touch /forcefsck
echo -n "-ys" > /fsckoptions

为了获得 fsck 所做工作的日志,我必须走一条更艰难的路:
警告:请自行承担风险,我不知道如果出错会有什么后果

编辑/etc/rc.sysinit(不要忘记备份)以获得所需的行为:

从第 500 行开始(将 -C 改为 -V 可以消除进度条)

if [ "$BOOTUP" = "color" ]; then
       fsckoptions="-C $fsckoptions"
else
       fsckoption="-V $fsckoptions"

从第 648 行开始,运行 fsck 的块更改为如下所示:

outputtt="$(fsck -T -t noopts=_netdev -A $fsckoptions)"
mount -n -o remount,rw /
echo $outputtt > /var/log/fsckoutput
mount -n -o remount,ro /

一个小优点是它不会保留新行,但在迫切需要时可以读取。
感谢大家的帮助。

答案2

CentOS/Redhat 中的“autofsck”设置与其他发行版不同。您应该使用所需的设置编辑 /etc/sysconfig/autofsck,如以下邮件列表帖子中所述:http://lists.centos.org/pipermail/centos/2006-November/029837.html

相关内容