将文件传输到不同服务器的最佳方法是什么?

发布于 2024-07-24 10:14:04 字数 358 浏览 4 评论 0原文

我运行的文件主机超出了单个服务器的容量,并且我需要实现多个服务器的文件存储。 我希望尽可能便宜地做到这一点,因此那些花哨的大容量存储方法是不可能的。 我只是想将用户上传到托管所有 http 和 mysql 的“网关”服务器的文件移动到其中一台媒体服务器。 它可以在用户请求结束时完成,也可以通过 cron 每几分钟完成。

此时,我真正熟悉的唯一方法是使用 ftp_put php 函数,然后简单地将文件 ftping 到不同的服务器,但我过去在使用此方法时遇到过问题,特别是对于较大的文件,并且很多将要传输的文件将超过 100mb。

谁能为此提出一个好的解决方案? 我最好寻找一个纯粹的软件解决方案...希望只不过是一个 php/bash 脚本。

Im running a file host thats grown beyond the capacity of a single server, and I need to implement multiple server storage of files. I'd like to do this as cheap as possible, so those fancy mass storage methods are out of the question. I simply want to move a file thats uploaded by the user to the "gateway" server, which hosts all the http and mysql, to one of the media servers. It can either be done at the end of the user's request, or via cron every couple of minutes.

At this point the only method Im truly familiar with, is using ftp_put php function, and simply ftping the file to a different server, but I've had problems with this method in the past, especially for larger files, and a lot of the files that will be getting transferred will be over 100mb.

Can anyone suggest a good solution for this? Preferably Im looking for a purely software solution... hopefully nothing more than a php/bash script.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

风月客 2024-07-31 10:14:04

一种不需要编程设置且非常安全的方法是从其他服务器安装文件夹,然后像平常一样使用 php 保存到该目录。

您不必使用 sshfs,还有许多其他方法可以提供相同的解决方案。 对于这种情况,我会使用 sshfs,因为它可以跨 ssh 工作,因此安全且相对容易设置。

要实现此目的(使用 sshfs):

  1. 安装 sshfs
  2. 将 ssfs 文件挂载到 php 可访问的文件夹
  3. 使用 php 脚本将文件存储在 sshfs 挂载中,从而存储在另一台服务器上。

另一种方法是使用 crontab 在两者之间设置 rsync 命令。

One method that requires no programmatic setup, and is quite secure is to mount a folder from the other server, and use php to save to that directory like you would normally.

You don't have to use sshfs, there are a bunch of other ways to provide the same solution. I would use sshfs for this situation as it works across ssh, and therefore is secure and relatively easy to setup.

To achieve this (using sshfs):

  1. Install sshfs
  2. Mount a ssfs file to a folder accessable to php
  3. Use a php script to store the files within the sshfs mount, and therefore on the other server.

Another method is to setup an rsync command between the two using crontab.

山人契 2024-07-31 10:14:04

您可以编写一个在 cron 中运行的 bash 脚本

,并使用 scp 或 sftp 或 rsync 等命令行示例

[bash]# scp filename [email protected]:/home/alice

将“文件名”复制到远程 Galaxy.example.com 服务器上的 alice 的主目录中

you can write a bash script that run in cron

and use command line like scp or sftp or rsync

example :

[bash]# scp filename [email protected]:/home/alice

Copy "filename" into alice's home directory on the remote galaxy.example.com server

柏拉图鍀咏恒 2024-07-31 10:14:04

使用 cron、bash 脚本和 rsync。

cron:“Cron 是类 Unix 计算机操作系统中基于时间的作业调度程序。‘cron’是‘chronograph’的缩写。”

bash:“Bash 是为 GNU 项目编写的自由软件 Unix shell。”

rsync:“rsync 是一款用于 Unix 系统的软件应用程序,它将文件和目录从一个位置同步到另一个位置,同时在适当的情况下使用增量编码最大限度地减少数据传输。”

总之,将 rsync 命令放在 bash 脚本中并让 cron 定期运行它。

请参阅此处查看一些示例:

Use cron, a bash script, and rsync.

cron: "Cron is a time-based job scheduler in Unix-like computer operating systems. 'cron' is short for 'chronograph'."

bash: "Bash is a free software Unix shell written for the GNU Project."

rsync: "rsync is a software application for Unix systems which synchronizes files and directories from one location to another while minimizing data transfer using delta encoding when appropriate."

In summary, place the rsync command in a bash script and get cron to run it at regular intervals.

See here for some examples:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文