嗨,我想从A服务器通过FTP传输less量文件(这是非常大的大小)到B服务器。
我有服务器A的FTP和服务器B的FTP的凭据 – 服务器B是我自己的服务器运行UNIX。
所以任何人都可以build议我通过ftp从服务器A到服务器B的方式来传输文件
为什么不在服务器B上运行(s)ftp? ssh到服务器B,从shell启动ftp [server A]。 然后获取文件。
有一个协议专门为这个任务,移动文件之间的两个远程FTP服务器,它被称为FXP(文件交换协议: http : //en.wikipedia.org/wiki/File_eXchange_Protocol )。
如果你的服务器支持它,我build议这将是走的路,任何体面的FTP客户端将允许您启动转移。
否则,您可以使用另一台机器作为FTP客户端的中介,但速度可能会慢很多(取决于您的Internet连接),并且会占用更多的带宽。
使用安全副本(SCP)将为您工作。
scp / path / to / directory / filename remoteuser @ serverB:/ path / to / directory / filename
在Windows上
使用puttylogin服务器A,切换到root用户,使用scp命令传输文件。
在Linux上
login到服务器A,切换到root用户,并使用scp命令传输文件。
假设您仅限于使用ftp,因为您没有声明可以使用scp进行访问,最简单的方法是使用服务器B上的ncftp工具从服务器A下载文件。为此,存在许多命令行工具, wget,curl等等。如果你需要定期做,可以通过cron或者其他一些方法自动完成。
诸如scp或rsync之类的工具与ssh是最好的,因为它们encryptionstream量,并且(可以说)更易于设置传输整个目录。 所以你可能要先testing一下,看看你能不能(在服务器B上)运行如下的东西:
ssh usernameA @ serverA#将usernameAreplace为用户名,serverAreplace为serverA的名称/ IP
并看看你是否可以login。 如果可以的话,那么你可以使用scp或rsync。 如果系统之间的连接速度慢或者不可靠,rsync比较好,可以使用以下格式的命令:(在服务器B上下载文件)rsync -a -v -z –partial usernameA @ serverA:/ path / to /文件。
这将rsync从serverA的文件作为usernameA到你的当前工作目录serverB,如果rsync被中断,再次运行它将从连接丢失时重新启动。 -z增加压缩,如果文件已经压缩以节省几个cpu周期,就不要使用-a打开一堆选项,本质上说要复制保存文件的所有内容(datestamps等)