我们在运维服务器的时候,经常需要用到在服务器与服务器之间,本地和服务器之间的数据文件传输。这里我们可以用到数据传输软件或者命令。一般我们可以通过下面三种方式实现服务器之间传输文件。
第一、FTP/SFTP
这些是文件传输协议,允许您使用客户端程序(例如 FileZilla 或 Cyberduck)在服务器之间传输文件。您需要在传输中涉及的一台或两台服务器上设置 FTP 或 SFTP 服务器,并且您需要拥有服务器的登录凭据才能连接。
第二、SCP
这是一个命令行工具,允许您使用 SSH 在服务器之间安全地传输文件。要使用scp,您需要对传输中涉及的服务器具有 SSH 访问权限。然后您可以使用该命令scp [source file] [username]@[destination server]:[destination file]传输文件。
下面是一些常用的SCP命令:
1、从本地复制文件到远程服务器:
scp <local_file> <username>@<remote_host>:<destination_path>
示例:将本地的file.txt文件拷贝到远程服务器上的/home/user/目录下:
scp file.txt username@remote_host:/home/user/
2、从远程服务器复制文件到本地:
scp <username>@<remote_host>:<remote_file> <local_destination>
示例:将远程服务器上的/home/user/file.txt文件复制到本地当前目录:
scp username@remote_host:/home/user/file.txt .
3、通过SCP复制整个目录:
scp -r <directory> <username>@<remote_host>:<destination_path>
示例:将本地的/path/to/directory目录及其内容复制到远程服务器上的/home/user/目录下:
scp -r /path/to/directory username@remote_host:/home/user/
4、指定SSH端口号进行传输:
scp -P <port_number> <file> <username>@<remote_host>:<destination_path>
示例:通过SSH端口号2222将本地的file.txt文件拷贝到远程服务器上的/home/user/目录下:
scp -P 2222 file.txt username@remote_host:/home/user/
第三、RSYNC
此命令行工具可让您有效地在服务器之间同步文件。rsync使用允许它只传输源文件和目标文件之间的差异的协议,这可以节省大量时间和带宽。
下面是一些常用的rsync命令:
1、从本地复制文件到远程服务器:
rsync <local_file> <username>@<remote_host>:<destination_path>
示例:将本地的file.txt文件拷贝到远程服务器上的/home/user/目录下:
rsync file.txt username@remote_host:/home/user/
2、从远程服务器复制文件到本地:
rsync <username>@<remote_host>:<remote_file> <local_destination>
示例:将远程服务器上的/home/user/file.txt文件复制到本地当前目录:
rsync username@remote_host:/home/user/file.txt .
3、通过rsync复制整个目录:
rsync -r <directory> <username>@<remote_host>:<destination_path>
示例:将本地的/path/to/directory目录及其内容复制到远程服务器上的/home/user/目录下:
rsync -r /path/to/directory username@remote_host:/home/user/
指定SSH端口号进行传输:
rsync -e 'ssh -p <port_number>' <file> <username>@<remote_host>:<destination_path>
示例:通过SSH端口号2222将本地的file.txt文件拷贝到远程服务器
本文出处:老蒋部落 » 3个方法实现服务器之间传输文件 | 欢迎分享( 公众号:老蒋朋友圈 )