我有一个运行 Ubuntu LTS 的(外部托管)生产服务器。它提供网页(rails)服务,并且有一个可通过 Apache 访问的 svn 存储库和一个 PostgreSQL 数据库。
我已获得服务器的 ssh 访问权限和 root 权限。
大多数“有趣”的东西都位于/var/
:svn 存储库在里面/var/svn
,网页在下/var/www
,等等。
昨天我很好奇它还剩下多少磁盘空间,所以我做了以下操作:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md1 950M 402M 500M 45% /
varrun 990M 64K 990M 1% /var/run
varlock 990M 0 990M 0% /var/lock
udev 990M 76K 989M 1% /dev
devshm 990M 0 990M 0% /dev/shm
/dev/md5 4.7G 668M 4.1G 15% /usr
/dev/md6 4.7G 1.4G 3.4G 29% /var
/dev/md7 221G 28M 221G 1% /home
none 990M 4.0K 990M 1% /tmp
我的 'var' 分区只有 4.7G,里面存放着大部分有趣的部分。而 /home/ 分区则有 221G,但大部分都没用。
我应该在开始安装东西之前检查磁盘布局。
理想情况下,我需要/var/
并/home/
“切换” -/home/
应该是 4.7G 的和/var/
221G 的。
有没有办法解决这个问题而不需要重新安装整个东西?
答案1
您可以随时将重要内容从 /var(/var/www、/var/lib/postgres、/var/svn 等)移动到 /home,然后将符号链接放回 /var。
答案2
嗯,据我所知,您将 home 的内容复制到某个临时目录(可能使用 rsync 以确保获取所有内容),然后删除 home 中的所有内容并将 rsync var 复制到当前 home。之后将 home 的临时副本复制回当前 var,然后卸载并将两个分区安装到新位置,如果一切正常,请更改 fstab 以反映更改并重新启动。当然,这会导致一些停机时间。但您不必重新安装任何东西。
答案3
SideShowCoder 的想法是正确的。它需要一些技巧,并且可能需要在进行改组时将某些项目移出服务器或移至另一个驱动器。
对于未来的设置,我强烈建议您查看 LVM。它使解决此类问题变得相对简单,并且一切都可以在不停机的情况下完成。