Linux 两台服务器之间传输文件和文件夹的方法

这篇具有很好参考价值的文章主要介绍了Linux 两台服务器之间传输文件和文件夹的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux 两台服务器之间传输文件和文件夹的方法

Linux 是一种开源的操作系统,它可以运行在多种设备上,包括服务器、个人电脑、手机等。Linux 有很多优点,比如稳定、安全、灵活、免费等。Linux 也有很多不同的发行版,比如 Ubuntu、CentOS、Debian 等,它们都有自己的特色和优势。

如果你有两台 Linux 服务器,你可能会遇到这样的需求:你想要在两台服务器之间传输文件或文件夹。这样可以方便地备份数据、同步配置、迁移项目等。那么,你应该怎么做呢?有哪些方法可以实现这个功能呢?

本文将介绍三种常用的 Linux 两台服务器之间传输文件和文件夹的方法,分别是:

• 使用 scp 命令

• 使用 rsync 命令

• 使用 sftp 命令

使用 scp 命令
scp 是 secure copy 的缩写,它是一个基于 SSH 的命令行工具,可以在两台 Linux 服务器之间安全地复制文件或文件夹。scp 的语法如下:

scp [options] source destination

其中,source 和 destination 都可以是本地或远程的路径,格式如下:

user@host:path

其中,user 是登录远程服务器的用户名,host 是远程服务器的 IP 地址或域名,path 是远程服务器上的文件或文件夹的路径。如果 source 或 destination 是本地的路径,则不需要 user@host: 前缀。

options 是可选的参数,可以用来控制 scp 的行为,比如:

• -r:递归地复制整个目录及其子目录和文件

• -p:保留源文件或目录的属性(如修改时间、访问权限等)

• -P:指定 SSH 连接的端口号(默认为 22)

• -v:显示详细的输出信息

例如,如果你想要从本地服务器(IP 地址为 192.168.1.100)复制一个名为 test 的文件夹到远程服务器(IP 地址为 192.168.1.200),并且使用 root 用户登录,并且保留源文件夹的属性,并且使用 2222 端口号,则你可以使用以下命令:

scp -r -p -P 2222 test root@192.168.1.200:~

这个命令会将本地服务器上的 test 文件夹复制到远程服务器上的 root 用户的家目录下,并且保留源文件夹的属性,并且使用 2222 端口号进行 SSH 连接。如果你想要反向复制,则只需要交换 source 和 destination 的位置即可。

scp 命令的优点是简单易用,只需要一条命令就可以完成复制任务。但是 scp 命令也有一些缺点,比如:

• scp 命令每次都会重新建立 SSH 连接,这会消耗一定的时间和资源

• scp 命令不会检查源文件和目标文件是否有差异,每次都会完整地复制所有内容,这会浪费一定的带宽和空间

• scp 命令不支持断点续传,如果中途出现网络故障或其他原因导致复制中断,则需要重新开始复制


使用 rsync 命令
rsync 是 remote sync 的缩写,它是一个强大的命令行工具,可以在两台 Linux 服务器之间高效地同步文件或文件夹。rsync 的语法如下:

rsync [options] source destination

其中,source 和 destination 都可以是本地或远程的路径,格式如下:

user@host:path

其中,user 是登录远程服务器的用户名,host 是远程服务器的 IP 地址或域名,path 是远程服务器上的文件或文件夹的路径。如果 source 或 destination 是本地的路径,则不需要 user@host: 前缀。

options 是可选的参数,可以用来控制 rsync 的行为,比如:

• -a:归档模式,相当于 -rlptgoD,即递归地同步整个目录及其子目录和文件,并且保留源文件或目录的属性(如修改时间、访问权限等)

• -z:压缩模式,可以减少传输的数据量

• -v:显示详细的输出信息

• -e:指定 SSH 连接的参数,比如端口号、密钥文件等

• -P:显示进度信息,并且支持断点续传

例如,如果你想要从本地服务器(IP 地址为 192.168.1.100)同步一个名为 test 的文件夹到远程服务器(IP 地址为 192.168.1.200),并且使用 root 用户登录,并且使用 2222 端口号,并且使用压缩模式,并且显示进度信息,则你可以使用以下命令:

rsync -azv -e "ssh -p 2222" test root@192.168.1.200:~

这个命令会将本地服务器上的 test 文件夹同步到远程服务器上的 root 用户的家目录下,并且使用压缩模式,并且显示进度信息,并且使用 2222 端口号进行 SSH 连接。如果你想要反向同步,则只需要交换 source 和 destination 的位置即可。

rsync 命令的优点是高效灵活,它会根据源文件和目标文件之间的差异,只传输变化的部分,从而节省带宽和空间。它也支持断点续传,如果中途出现网络故障或其他原因导致同步中断,则可以从上次中断的位置继续同步。但是 rsync 命令也有一些缺点,比如:

• rsync 命令需要在两台服务器上都安装 rsync 软件包,否则无法使用

• rsync 命令有很多参数,需要花一些时间学习和熟悉


使用 sftp 命令
sftp(SSH File Transfer Protocol)是一种安全的文件传输协议,它基于SSH协议,可以在两台服务器之间加密传输文件和文件夹。sftp命令可以在Linux系统中使用,它提供了一些类似于Linux shell命令的子命令,可以用来浏览、管理和修改远程服务器上的文件和文件夹。本文将介绍如何在Linux中使用sftp命令传输文件和文件夹。

连接到远程服务器
要使用sftp命令,首先需要连接到远程服务器。连接的语法与使用SSH连接相同:

sftp [username]@[remote hostname or IP address]

其中,[username]是远程服务器上的用户名,[remote hostname or IP address]是远程服务器的主机名或IP地址。例如:

sftp alice@192.168.1.100

如果远程服务器使用的不是默认的SSH端口22,可以使用-P选项指定端口号:

sftp -P [port] [username]@[remote hostname or IP address]

例如:

sftp -P 2222 alice@192.168.1.100

如果远程服务器需要密码验证,会提示输入密码。如果使用了SSH公钥验证,会自动验证。连接成功后,会进入sftp交互模式,显示一个类似于这样的提示符:

sftp>

传输文件
在sftp交互模式下,可以使用put和get子命令来传输文件。put子命令用来把本地系统上的文件上传到远程服务器上,get子命令用来把远程服务器上的文件下载到本地系统上。它们的语法如下:

put [local path] [remote path]
get [remote path] [local path]

其中,[local path]是本地系统上的文件路径,[remote path]是远程服务器上的文件路径。例如:

put /home/alice/test.txt /tmp/test.txt
get /tmp/test.txt /home/alice/test.txt

这两条命令分别把本地系统上的/home/alice/test.txt文件上传到远程服务器上的/tmp/test.txt位置,和把远程服务器上的/tmp/test.txt文件下载到本地系统上的/home/alice/test.txt位置。

如果不指定目标路径,那么默认使用当前工作目录。例如:

put /home/alice/test.txt
get test.txt

这两条命令分别把本地系统上的/home/alice/test.txt文件上传到远程服务器上的当前工作目录下,并命名为test.txt,和把远程服务器上当前工作目录下的test.txt文件下载到本地系统上的当前工作目录下。

如果要传输多个文件,可以使用通配符(*)来匹配多个文件名。例如:

put /home/alice/*.txt /tmp/
get /tmp/*.txt /home/alice/

这两条命令分别把本地系统上的所有以.txt结尾的文件上传到远程服务器上的/tmp/目录下,并保持原来的文件名,和把远程服务器上的/tmp/目录下所有以.txt结尾的文件下载到本地系统上的/home/alice/目录下,并保持原来的文件名。

传输文件夹
要传输整个文件夹及其内容,需要使用-r选项来递归传输所有子目录和子文件。例如:

put -r /home/alice/test /tmp/test
get -r /tmp/test /home/alice/test

这两条命令分别把本地系统上的/home/alice/test文件夹及其内容上传到远程服务器上的/tmp/test位置,和把远程服务器上的/tmp/test文件夹及其内容下载到本地系统上的/home/alice/test位置。

浏览和管理文件和文件夹
除了传输文件和文件夹,sftp命令还提供了一些其他的子命令,可以用来浏览和管理远程服务器上的文件和文件夹。这些子命令有些与Linux shell命令相同,有些与Linux shell命令类似,但是有一些区别。下面列出了一些常用的子命令:

• cd [path]:切换到远程服务器上的[path]目录。

• lcd [path]:切换到本地系统上的[path]目录。

• pwd:显示远程服务器上的当前工作目录。

• lpwd:显示本地系统上的当前工作目录。

• ls [options] [path]:列出远程服务器上的[path]目录下的文件和文件夹。可以使用与Linux shell命令相同的选项,如-a,-l等。

• lls [options] [path]:列出本地系统上的[path]目录下的文件和文件夹。可以使用与Linux shell命令相同的选项,如-a,-l等。

• mkdir [path]:在远程服务器上创建一个新的目录,路径为[path]。

• lmkdir [path]:在本地系统上创建一个新的目录,路径为[path]。

• rmdir [path]:删除远程服务器上的一个空目录,路径为[path]。

• rm [path]:删除远程服务器上的一个文件,路径为[path]。

• rename [old path] [new path]: 重命名远程服务器上的一个文件或目录,从旧路径 [old path] 到新路径 [new path] 。

• symlink [old path] [new path]: 在远程服务器上创建一个符号链接,从旧路径 [old path] 到新路径 [new path] 。

退出sftp交互模式
要退出sftp交互模式,可以使用以下任意一种方法:

• 输入子命令 exit

• 输入子命令 quit

• 按下组合键 Ctrl+D

退出后,会返回到本地系统的shell提示符。

以上就是Linux 两台服务器之间传输文件和文件夹的方法,希望对你有帮助。文章来源地址https://www.toymoban.com/news/detail-744014.html

到了这里,关于Linux 两台服务器之间传输文件和文件夹的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux服务器之间跳转、传输文件

    示例1 直接连接远程主机端口 前提条件: 两台服务器A、B;当前所在位置:服务器A;SSH服务已安装。 判断: 在服务器A中执行命令 ping B的IP地址 ,在能ping通的前提条件下 进入服务器A后,输入: 主机名:要跳转的Linux服务器的主机名 IP:要跳转的Linux服务器的ip地址 或者:

    2024年02月01日
    浏览(80)
  • SSH连接SFTP传输:如何使用libssh库在Linux环境下进行(文件、文件夹)传输到远端服务器

    target_host :远端主机IP target_username :远端主机用户名 ssh_options_set() 函数设置会话的选项。最重要的选项是: SSH_OPTIONS_HOST:要连接到的主机的名称 SSH_OPTIONS_PORT:使用的端口(默认为端口 22) SSH_OPTIONS_USER:要连接的系统用户 SSH_OPTIONS_LOG_VERBOSITY:打印的消息数量 直接传输密

    2024年04月13日
    浏览(72)
  • 两台服务器间进行文件传输

    目录 方法1:使用SCP 方法2:使用rsync 使用SSH密钥 两台服务器之间进行文件传输通常可以使用SCP(Secure Copy Protocol)或rsync命令。这两种方法都是在UNIX和Linux系统上常用的工具,用于安全地复制文件和目录。以下是使用这两种方法的示例: SCP是一种在两台服务器之间安全地复制

    2024年02月08日
    浏览(42)
  • linux远程服务器和本地服务器相互之间传输文件方法SSH(乌班图系统)

    提前知道几点 : 1.使用的 MobaXterm软件 2.访问本地、远程服务器,需要账号和密码(远程机器上的 用户名和密码 远程机器的 IP 地址或主机名(在同一子网上))。每次访问需要输入密码,可以搜 Ubuntu SSH 免密登录 3.主要是先要访问本地服务器,才能访问远端服务器,显卡装

    2024年02月15日
    浏览(58)
  • Java 两台服务器间使用FTP进行文件传输

    背景:需要把服务器A中的文件拷贝至服务器B中,要求使用FTP进行传输,当文件传输未完成时文件是tmp格式的,传输完毕后显示为原格式(此处是grib2)。

    2024年02月15日
    浏览(49)
  • 用xshell把本地的文件夹传入服务器中,在两个服务器之间互传文件夹

    假设有两个服务器A和B,现在你需要把A里面的东西传入B里面。 进入B服务器,如你想把A服务器中/root/one/unet放在B服务器中root/ww下,输入以下命令 其中YY是你的端口号,xx是你的ip 根据提示输入密码就行(密码就是你登录服务器的密码) 假设你想把D盘下面的vnet文件夹放入服务

    2024年02月16日
    浏览(47)
  • SSH连接SFTP传输:如何使用libssh库在windows环境下进行(文件、文件夹)传输到远端服务器

    由于windows上的编译器一般都是没有libssh库的,所以如何我们想要使用libssh库那么我们将会使用cmake来编译libssh官网给出的源代码 libssh库下载地址: https://www.libssh.org/files/ 我们在编译libssh库之前需要先配置一些环境: a) 安装 Visual Studio 或者 MinGW b) 安装OpenSSL http://slproweb.com/p

    2024年04月24日
    浏览(67)
  • windows10ftp搭建,实现主机与虚拟机文件传输文件,以及解决FTP文件夹错误,无法与服务器建立连接。

    1.我是用的win10虚拟机来搭建ftp 首先,打开控制面板,点击程序 2.选择启用或关闭Windows功能 3.勾选以下选项,点击确定。这一步的主要目的是开启IIS管理控制台 进入等待 4.搜索IIS管理器,双击打开  5.右击网站,选择添加FTP站点  6.这时弹出下面界面, FTP站点名称 任意填写,

    2024年02月08日
    浏览(58)
  • 两台服务器分别绑定一台交换机,两台服务器之间网络却ping不通,怎么办?

    如果两台服务器分别绑定在同一台交换机上,但是它们之间无法互相ping通,可能有以下几种原因导致。 1.检查网络连接: 确保两台服务器的网线正确连接到交换机的可用端口。检查连接的物理状态,包括插头是否牢固、灯光指示是否正常等。 2.验证IP配置: 确保两台服务器

    2024年02月06日
    浏览(49)
  • 【运维】Linux 跨服务器复制文件文件夹

    如果是云服务 建议用内网ip scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来

    2024年02月08日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包