通过 ssh 复制 www-data 保存的数据

通过 ssh 复制 www-data 保存的数据

我有一台 Apache 服务器(机器 #1),里面有一个数据库,我想远程 rsync 该数据库(对于那些知道的人来说,该服务器实际上是 owncloud)。我的数据由该服务器维护,其权限为 rwx------ www-data:www-data 左右。

现在我有另一台远程机器(机器 #2),我想用它来备份第一台机器的数据库。机器 #2 将通过 ssh 和 cron 作业运行 rsync。我不确定要使用哪个帐户才能通过 ssh 登录到机器 #1。

  • 我知道只有两个帐户可以读取/复制机器 #1 上的数据库,它们是 www-data 和 root。由于我无法以 www-data 身份登录(这是一个系统帐户,我不知道密码),这是否意味着我需要通过 ssh 以 root 身份登录?
  • 这可能吗?安全吗?
  • 另一种方法是创建另一个帐户,将其添加到 www-data 组并授予 www-data 组读取权限。
  • 不幸的是,这是不可能的,因为是服务器(owncloud)而不是我授予了数据库的访问权限,并且授予的权限不允许 www-data 组读取文件(至少不是所有文件):参见 rwx------

我不确定如何组织帐户和权限以便能够远程 rsync。有什么想法吗?

谢谢,

安托万。

答案1

我会mysqldump定期在机器 #1 上运行;这样会生成一个大文件。然后可以使用 rsync(使用压缩,因为它只包含 ASCII 文本,实际上是 SQL 语句)将此文件传输到机器 #2,而无需担心数据库权限。在机器 #2 上,转储文件只有所有者才能读取。由于可以从本地机器访问 #1 上的数据库,因此您甚至可以在本地执行 mysqldump,这对于测试过程非常有用。

如果机器 #1 出现任何问题,您需要从最后一个好的转储文件重新加载数据库。基本上,这是一个一行命令,可以删除整个数据库并从转储文件中加载它。备份和恢复过程有很好的文档和描述,例如这里通过谷歌搜索可以找到更多提示和技巧mysqldump

使用此标准工具比尝试自己传输数据文件更加安全和直接。

相关内容