如何将文件从一台 Ubuntu 服务器复制到另一台?(用于网站迁移的 MYSQL 数据库)

如何将文件从一台 Ubuntu 服务器复制到另一台?(用于网站迁移的 MYSQL 数据库)

我对 Ubuntu 还很陌生,我的第一个任务是将一个带有 MySQL 数据库的网站复制到另一台服务器。两台服务器都是虚拟机,并且处于同一环境中。我拥有 IP 地址和登录凭据。

我当然可以从我的 Windows 计算机远程登录到两台机器(旧服务器有 Ubuntu 10.10,新服务器有 Ubuntu 12.04)。

现在我需要知道是否可以直接从一台 Ubuntu 服务器复制到另一台,或者先复制到我的计算机,然后再复制到另一台 Ubuntu 服务器。

或者可能有很多解决方案?

答案1

你可以使用 rsync 来实现这一点,
例子,

我们假设您有两台服务器的 ssh 访问权限,old.com 是旧服务器,两台服务器上的 uname 相同,要复制的文件树是 /var/somedir 登录到新服务器,


rsync-av 命令[电子邮件保护]:/var/somedir/* /var/somedir/

它将登录old.com并提示进行身份验证,然后建立文件列表并将内容复制到当前服务器上的目标。


我希望你能理解这一点...
谢谢

答案2

首先,你不能简单地走进魔多,我的意思是复制数据库。你需要这样做正确的。您需要确保没有正在进行的写入,然后确保所有内容都以 ACID 方式复制。您可以关闭数据库,移动它,然后意识到事情变得非常糟糕,因为它们是不同的版本......

幸运的是,mysql 自带了一个工具来做这件事,叫做mysqldump- 还有关于使用它的一个问题包含大量语法示例 - 应该是这样的mysql -u<user> -p < db_backup.dump。我还建议检查版本,因为你可能需要运行升级脚本版本之间。移动 DUMP 文件,不要复制数据库。运行转储,运行升级脚本,测试。正如您所见,Mysql 上有很好的资源,因此请阅读并确保您知道自己在做什么。

如果你使用 postgres,还有pg_dump(语法非常优雅)。文件级备份文档在任何地方都是正确的——因为关闭服务器是在备份时不进行写入的最可靠方法,从而破坏一致性。

要移动转储文件,有很多方法安全FTP可能是速度与安全性的理想结合。您可以使用控制协议或者将它们下载到你的 Windows 系统,然后重新上传网络鸭。由于您已经拥有 SSH,这应该是执行此操作的最简单的方法。

Web 服务器配置和文件(例如,/etc/ 和 /var/www 的有效内容)应该可以复制,因为它们不会不断改变。

答案3

您可以使用scprsync直接在 Ubuntu 服务器之间发送文件/目录。

例如:

scp -r /local_dir/path user@otherhost:/remote_dir/path

可以使用数据库服务器软件(MySQL、Postegres 等)通常提供的备份/转储和恢复功能来迁移数据库。具体过程取决于您的数据库服务器。

相关内容