Php 在两台服务器之间同步文件夹

Php 在两台服务器之间同步文件夹,php,sync,rsync,fallback,mirroring,Php,Sync,Rsync,Fallback,Mirroring,我必须为外部应用程序实现回退解决方案(身份验证系统)。因此,我必须保持主身份验证服务器的身份验证文件夹与备用服务器同步。该文件夹包含几个.php文件、.bin文件和其他一些文件。不幸的是,我不知道应该如何实现(例如每小时)将这些文件夹同步到我的备用服务器 所有服务器都使用CPanel/WHM,也许有解决方案,或者我如何保持它们的同步?我想到了一个.php脚本,它通过FTP登录并同步它们。我会为这个.php脚本放置一个cronjob。但我甚至不知道这是否可能。如果主服务器处于脱机状态,它当然不会以

我必须为外部应用程序实现回退解决方案(身份验证系统)。因此,我必须保持主身份验证服务器的身份验证文件夹与备用服务器同步。该文件夹包含几个.php文件、.bin文件和其他一些文件。不幸的是,我不知道应该如何实现(例如每小时)将这些文件夹同步到我的备用服务器

所有服务器都使用CPanel/WHM,也许有解决方案,或者我如何保持它们的同步?我想到了一个.php脚本,它通过FTP登录并同步它们。我会为这个.php脚本放置一个cronjob。但我甚至不知道这是否可能。如果主服务器处于脱机状态,它当然不会以负面方式影响我的备用服务器


我应该/可以如何实现这一点?

我建议您使用RSYNC,假设您没有共享托管计划

Rsync代表“远程同步”,是一个远程和本地文件 同步工具。它使用了一种算法来最小化数量 仅移动已更改的文件部分而复制的数据


要使其正常工作,您需要访问服务器上的SFTP端口,当然还需要访问linux终端

我建议您使用RSYNC,假设您没有共享托管计划

Rsync代表“远程同步”,是一个远程和本地文件 同步工具。它使用了一种算法来最小化数量 仅移动已更改的文件部分而复制的数据


要使其正常工作,您需要访问服务器上的SFTP端口,当然还需要访问linux终端

莱昂内尔·阿滕西奥关于rsync的建议很好

下面是我使用的rsyncshell脚本。它位于我的项目中名为
/publish
的文件夹中。gist包含shell脚本提到的rs_exclude.txt文件

rsync.sh

通过cron运行

编辑你的crontab。

Crontab条目每行一个。注释字符是磅(#)符号。对cron条目使用以下语法

这些示例假定您将rsync.sh脚本放在
~/rsync
这些示例还将创建rsync输出的日志文件

每分钟

* * * * * ~/rsync/rsync.sh > ~/rsync/rsync.log
每5分钟一次

*/5 * * * * ~/rsync/rsync.sh > ~/rsync/rsync.log

保存crontab并退出编辑器。您应该会看到一条消息,确认您加入了crontab。

Leonel Atencio对rsync的建议非常好

下面是我使用的rsyncshell脚本。它位于我的项目中名为
/publish
的文件夹中。gist包含shell脚本提到的rs_exclude.txt文件

rsync.sh

通过cron运行

编辑你的crontab。

Crontab条目每行一个。注释字符是磅(#)符号。对cron条目使用以下语法

这些示例假定您将rsync.sh脚本放在
~/rsync
这些示例还将创建rsync输出的日志文件

每分钟

* * * * * ~/rsync/rsync.sh > ~/rsync/rsync.log
每5分钟一次

*/5 * * * * ~/rsync/rsync.sh > ~/rsync/rsync.log

保存crontab并退出编辑器。您应该会看到一条消息,确认您添加到crontab中。

您到底在同步什么?如果只是文件,你能用git/CI部署吗?git、svn、rsync、scp-选择一个。:)你到底在同步什么?如果只是文件,你能用git/CI部署吗?git、svn、rsync、scp-选择一个。:)rsync也可以通过ssh使用+1用于rsync。我喜欢它。你们能告诉我如何周期性地(或一次性地)运行rsync命令,当然包括键入目标的ssh密码吗?我尝试了一个使用inotify的小shell脚本。但这不起作用,因为我想同步一个挂载的文件夹。rsync也可以通过ssh使用+1用于rsync。我喜欢它。你们能告诉我如何周期性地(或一次性地)运行rsync命令,当然包括键入目标的ssh密码吗?我尝试了一个使用inotify的小shell脚本。但这不起作用,因为我想同步一个挂载的文件夹。谢谢你们,让我来试试。你们能告诉我如何定期(或一次更改)运行rsync命令,当然包括键入目标的ssh密码吗?我尝试了一个使用inotify的小shell脚本。但这不起作用,因为我想同步已装入的文件夹。若要定期运行,请使用。为了自动登录,而不必每次都键入密码,请快速访问google,查找在已装入文件夹上工作的通知程序,这会显示它要复杂得多(有些人提到在远程服务器上运行一个进程,该进程会将更改事件转发给远程客户端)我将cron设置为频繁启动—因为rsync速度非常快,所以每隔几分钟就可以启动一次。谢谢你们,让我们来试试这个。你们能告诉我如何定期(或一次更改)运行rsync命令,当然包括键入目标的ssh密码吗?我尝试了一个使用inotify的小shell脚本。但这不起作用,因为我想同步已装入的文件夹。若要定期运行,请使用。为了自动登录,而不必每次都键入密码,请快速访问google,查找在已装入文件夹上工作的通知程序,这会显示它要复杂得多(有些人提到在远程服务器上运行一个进程,该进程会将更改事件转发给远程客户端)我已经设置了cron,让它经常开火——每隔几分钟就可以了,因为rsync速度非常快。