老蒋在之前一篇"Linux VPS服务器使用时挂载硬盘且迁移系统盘数据"文章中有介绍到经常遇到网友拿到服务器之后没有检查是否商家自动挂载到需要的目录盘,然后他们就自己直接安装WEB面板和网站,其实有些商家是需要我们自己先挂载才可以安装的,或者是默认挂载的并非我们需要的目录。比如如果我们需要安装宝塔面板,其实默认是需要挂载在www目录,而商家自动挂载在HOME目录我们需要先调整。
在之前这篇文章中老蒋采用的办法是将系统盘下的www目录重命名,然后创建一个新的www目录之后挂载到这个目录下,然后再迁移数据的方法,测试是可以成功解决。老蒋在寻找文档的时候看到有网友采用的办法是先将目录迁移到临时目录下,然后挂载之后再重新将挂载盘挂载到www目录中,这个方法我觉得也不错。
思路是这样子的,我们将数据盘挂载到临时的有数据的目录,然后创建完毕空的www目录之后,再将数据盘挂载到www,这样数据就全部过来。而且迁移数据的时候我以前用的是mv或者cp命令,这里我准备用rsync 迁移数据。
第一、关闭当前服务器WEB环境
我们在操作之前需要先备份数据,如果有可以快照备份的快照备份,如果只能手动备份网站的我们需要备份到我们本地或者是其他远程服务器上,这样确保捣鼓错误还可以恢复数据。
/etc/init.d/bt stop
/etc/init.d/nginx stop
/etc/init.d/mysqld stop
这里我测试环境用的是宝塔面板,所以关闭WEB环境。
第二、迁移旧www目录并到新硬盘中
mkdir /mnt/tmp
我们先创建一个临时的目录。
mount /dev/mapper/Xvdbgroup-xvdb1 /mnt/tmp
我们在挂载数据硬盘之后,格式化盘符之后不要着急挂载,我们需要到这里挂载到临时目录。
老蒋看到已经将数据硬盘挂载在临时目录中。
rsync -avx /www/ /mnt/tmp
这里我们需要将现有的WWW目录文件迁移到临时目录中。因为我们数据硬盘在后者。
我们可以看到迁移的过程,数据哗啦啦的,感觉很帅,迁移完毕没有报错,那就继续。
rm -rf /www/*
这里我们需要删除原来www目录中的文件。这里我们清理之后就没有了,所以以前的备份很重要,但是如果我们用的是宝塔面板或者是LNMP脚本的话,会出现".user.ini: Operation not permitted"这样的问题,我们需要释放权限,然后再删除。参考《快速解决LNMP环境无法删除网站目录提示.user.ini权限问题》。
mount /dev/mapper/Xvdbgroup-xvdb1 /www
这里我们重新将挂载数据盘到www目录。有些同学可能不理解,为什么要这么多此一举呢?我们要知道,有些人的系统盘已经占满,所以需要创建临时盘文件夹到数据盘,然后将系统盘数据迁移过去。后来为什么要清理掉www里面文档呢?因为这个是系统盘里的内容,所以清理掉系统盘的占用。
第三、设置开机启动项
echo '/dev/mapper/Xvdbgroup-xvdb1 /www ext3 defaults 0 0' >> /etc/fstab
mount -a
这里我们需要设置启动项,确保在重新启动之后还可以挂在在。有些人不设置启动项那肯定直接重新或者服务器商家重启后就找不到数据硬盘了。我们也可以用blkid命令检测到挂载数据硬盘的UUID信息添加启动项。
/etc/init.d/bt restart
/etc/init.d/nginx restart
/etc/init.d/mysqld restart
这里我们需要重新启动原先关闭的服务器WEB环境。当然,我们最后可以重新启动服务器,检测是否正常,这个时候我们的数据硬盘就挂载到对应网站目录,且数据硬盘就利用起来了。
这里我们检测出来也没问题。
评论前必须登录!
注册