Macos 在服务器之间传输文件,无需下载和上载

Macos 在服务器之间传输文件,无需下载和上载,macos,ftp,terminal,Macos,Ftp,Terminal,我需要从一台服务器到另一台服务器获取一个巨大的文件,而我的互联网连接速度很慢。我试着使用Transmit,ftp程序,但我相信它正在下载文件并上传到另一台服务器 那么,有没有一种方法可以直接将文件从一台服务器移动到另一台服务器,使用ftp客户端或Mac终端,而不必下载和上传文件?ftp协议不支持这样的第三方传输。您可以尝试: $ scp host1:file host2:file2 但我不知道这是如何实现的。它可能会让你再次感受到一切,而这正是你试图避免的。也就是说,我怀疑它是这样做的,它通过

我需要从一台服务器到另一台服务器获取一个巨大的文件,而我的互联网连接速度很慢。我试着使用Transmit,ftp程序,但我相信它正在下载文件并上传到另一台服务器


那么,有没有一种方法可以直接将文件从一台服务器移动到另一台服务器,使用ftp客户端或Mac终端,而不必下载和上传文件?

ftp协议不支持这样的第三方传输。您可以尝试:

$ scp host1:file host2:file2
但我不知道这是如何实现的。它可能会让你再次感受到一切,而这正是你试图避免的。也就是说,我怀疑它是这样做的,它通过本地管道路由所有内容:

$ (ssh host1 "cat <file") | (ssh host2 "cat >file")

FTP协议不支持这样的第三方传输。您可以尝试:

$ scp host1:file host2:file2
但我不知道这是如何实现的。它可能会让你再次感受到一切,而这正是你试图避免的。也就是说,我怀疑它是这样做的,它通过本地管道路由所有内容:

$ (ssh host1 "cat <file") | (ssh host2 "cat >file")

如果您有一个服务器的shell访问权限,只需使用telnet或ssh登录到该服务器。在shell中启动一个简单的ftp客户端并登录到另一台服务器。使用基本ftp命令put或get复制文件。不过,系统管理员通常会使shell访问变得困难

如果您没有shell访问权限,但是您有一个带有PHP的web服务器,那么最简单的方法就是编写一个简单的PHP程序来完成这项工作。上传它并从浏览器触发它。这是我写的一封信:

<?php
// qdftp.php - Quick & Dirty FTP 
// Place this script in a web accessible
// folder alongside the file you want to send,
// then invoke it from a browser.
//===============================
$server = "123.123.123.123"; //target server address or domain name
$user   = "username"; //username on target server
$pass   = "password"; //password on target server
$file   = "myfile.zip"; //source file
//================================
$sessid = ftp_connect($server); //connect
$login_ok = ftp_login($sessid, $user, "$pass"); //login
if ((!$sessid) || (!$login_ok)):
    echo "failed to connect: check hostname, username & password";
    exit; //failed? bail!
endif;
$xfer = ftp_put($sessid, $file, $file, FTP_BINARY);  //transfer
echo "file transfer " . ($xfer)? "succeded" : "failed" ;
ftp_close($sessid);
?>

最后一件事:完成后删除qdftp.php——它有你的用户名和密码

如果您有一台服务器的shell访问权限,只需使用telnet或ssh登录到该服务器即可。在shell中启动一个简单的ftp客户端并登录到另一台服务器。使用基本ftp命令put或get复制文件。不过,系统管理员通常会使shell访问变得困难

如果您没有shell访问权限,但是您有一个带有PHP的web服务器,那么最简单的方法就是编写一个简单的PHP程序来完成这项工作。上传它并从浏览器触发它。这是我写的一封信:

<?php
// qdftp.php - Quick & Dirty FTP 
// Place this script in a web accessible
// folder alongside the file you want to send,
// then invoke it from a browser.
//===============================
$server = "123.123.123.123"; //target server address or domain name
$user   = "username"; //username on target server
$pass   = "password"; //password on target server
$file   = "myfile.zip"; //source file
//================================
$sessid = ftp_connect($server); //connect
$login_ok = ftp_login($sessid, $user, "$pass"); //login
if ((!$sessid) || (!$login_ok)):
    echo "failed to connect: check hostname, username & password";
    exit; //failed? bail!
endif;
$xfer = ftp_put($sessid, $file, $file, FTP_BINARY);  //transfer
echo "file transfer " . ($xfer)? "succeded" : "failed" ;
ftp_close($sessid);
?>

最后一件事:完成后删除qdftp.php——它有你的用户名和密码

属于。一般来说,FTP支持服务器到服务器的传输,所以您的任务应该是可能的。真的吗?你是怎么做到的?你知道一个应用程序或脚本可以做到这一点吗?我尝试过谷歌搜索,但没有成功,属于。一般来说,FTP支持服务器到服务器的传输,所以您的任务应该是可能的。真的吗?你是怎么做到的?你知道一个应用程序或脚本可以做到这一点吗?我尝试过谷歌搜索,但没有成功,