服务器数据传输到新服务器

我得到一个服务器在一个不同的位置,从现在的位置,摆脱当前的。

我需要find一种方法来无缝地传输以下内容:

  • 用户在/ home中的目录
  • Apacheconfiguration
  • MySQL数据库,用户和configuration
  • Awstats信息(包括已处理的统计信息)

我主要担心MySQL数据库,是否像复制一个文件夹结构一样简单,一切都工作(当然,在新的服务器上安装MySQL后)? 那么用户网站的文件权限呢? 我知道有一些用户正在使用论坛系统,而这些用户通常都有某些需要权限的目录,比如775.有什么办法可以保留这个权限?

文件和目录

为此,您可以从两个工具开始。

对于用户的目录,Apacheconfiguration和Awstats文件,可以使用tar。

# tar cvpzf myfiles.tgz * 

这将复制子目录,保留权限并创build一个可以在新系统上解压的单个存档。 我有点不确定的是,如果每个用户的UID都在变化,它将如何保持新服务器上的用户权限。

要恢复新服务器上的tar文件,它将看起来像这样。 在你想扩展目录结构的当前目录中运行它。

 # tar xvpzf myfiles.tgz 

作为一个方面说明,你也可以查看tar文件并查看目录。 这可以让你检查文件里面的每一个东西,而不需要提取内容。

 # tar xvzf myfiles.tgz 

MySQL – 用于备份和还原的mysqldump

对于MySQL,不要在这里做一个捷径。 使用mysqldump来备份数据库,理想情况下为每个数据库做一个备份。

 # mysqldump -u [user] -p[password] [database_name] > [database_name].sql 

在新系统上,你也可以使用mysqldump恢复文件。 只要确保已经在新服务器上创build了数据库,因为我认为备份可能没有SQL备份文件中的CREATE DATABASE选项。

 # mysqldump -u [user] -p[password] [database_name] < database_name.sql 

祝你好运。

你可以做的一件事是同步旧服务器。 首先要做的可能是将/etc/passwd/etc/group组的用户添加到新服务器的相应文件中。 你可以尝试使用相同的uidgid

对于数据,您可以使用以下选项使用rsync

 --archive --verbose --recursive --hard-links --compress (optionally - compress data for faster transfer of data) -e 'ssh -p 2234' (use ssh for secure connection between servers) 

第一次,你可以rsync每个包含相关数据的目录。 权限将保持不变,因为您使用了--archive选项。 在此之后,你可以尝试模拟访问新的服务器,并检查访问是否正常工作:对于mysqlhttp ,其他…

你不说如果centos版本是相同的或不。 如果没有,你应该validationmysql版本是否是主要升级(例如,旧的服务器5.1和新的5.5)。 如果这是一个重大的升级,你应该阅读mysql文档,并可能运行mysql_upgrade 。 因为你将在这两个服务器中使用centos ,我认为,用户下运行mysql应该是一样的。 如果您在两台服务器之间复制或rsync数据,Mysql应该运行良好。

在某一时刻,您将需要重新同步数据并切断旧服务器,并将新服务器置于实时状态。 当这一刻来临,你应该停止使用两个更多的选项的mysql和rsync数据:

 --update (transfers only new data) --delete (deletes data in new server that doesn't exist anymore in old server) 

大多数情况下,我认为你可以遵循这些准则。