我正在使用 Ubuntu 10.04.4 LTS 运行基于天气的 Web 服务器。最近,运行操作系统 (/dev/sdb) 的 2TB 驱动器开始产生磁盘错误消息。服务器中有 (2) 个 2TB 驱动器,但只有一个在使用中 - 另一个 (/dev/sda) 在格式化过程中损坏。我移除了损坏的 /sda 驱动器并在其位置安装了一个新的 2TB 驱动器,然后执行“dd”将 sdb 克隆到新的 sda。大约 10 小时后,当该操作完成时,我发现服务器仍在运行,现在在新的 sda 驱动器上。我拉出 sdb 并将其替换为另一个新的 2TB 驱动器,并从 CD 中将 Ubuntu 15.10 加载到其中。
我的问题是:如何将我的 /home 目录复制到新的 sdb 驱动器?/home 目录每 5 秒左右从运行在 Win XP 计算机上的天气软件更新一次,并通过 ftp 传输到服务器。
答案1
如果不可能让系统离线几个小时只是为了从容地复制文件,我会做这样的事情:
/home
使用命令的“存档”模式将旧位置复制到新位置cp
:cp -a /old/home /new/home
。外部进程仍可继续将文件添加到“旧位置”。- 进行更改,
/etc/fstab
以便在启动时安装“新主页” - 重新启动。启动时,“新家”将被挂载,但可能缺少一些最近的文件。系统再次联机,外部进程开始将文件上传到“新家”
- 使用 rsync 将丢失的文件从“旧主目录”复制到“新主目录”:
rsync -av /old/home /new/home
上述场景假设外部进程上传每隔几秒钟就会生成新文件,但不会修改/覆盖任何现有文件。
(所有 shell 命令均摘自我的脑海,视为伪代码)