[教程] Linux 服务器之间安全高效传输文件的几种方法 (SCP/Rsync/SFTP 实战)

更多服务器知识,尽在hostol.com

嘿,各位 Linux 服务器的“搬运工”们!在咱们日常的服务器管理和开发工作中,把文件从一台机器搬到另一台机器,那简直是家常便饭,对不对?可能是把本地写好的代码部署到服务器上,可能是从服务器下载日志文件到本地分析,也可能是在两台远程服务器之间同步数据。这活儿看似简单,但你真的选对“搬运工具”了吗?还在用老掉牙又不安全的 FTP “裸奔”传输?或者每次传大文件都因为网络中断而从头再来,气得直跺脚?

别担心!在 Linux 的世界里,我们有好几位“身怀绝技”的“安全快递员”和“智能搬运工”,它们不仅能保证你文件传输过程的**安全**(通过加密通道),还能大大提升你的**效率**。今天,我就来给大家详细介绍并实战演练三个最常用也最好用的“大内高手”:SCP (Secure Copy)Rsync (Remote Sync),以及 SFTP (SSH File Transfer Protocol)

把它们想象成不同类型的“物流服务”:

  • SCP 就像是你的“私人专递”,简单直接,点对点安全送达一个小包裹。
  • Rsync 则更像是“智能仓储配送系统”,它能分析两边货物的差异,只运送变化的部分,特别适合同步大量文件或做增量备份。
  • SFTP 就像是一个你可以远程操控的“安全储物柜台”,你可以在里面浏览、取件、存件,进行交互式的文件管理。

这篇教程,我就带你把这三位“高手”的看家本领都学到手,让你在未来需要在 Linux 服务器之间搬运文件时,能根据不同的“包裹”类型和“运输需求”,从容地选择最合适的“快递方案”!准备好了吗?让我们开始这场“安全高效文件传输之旅”吧!

准备工作:在“发货”之前你需要什么?

在我们开始使用这些强大的工具之前,请确保你的“发货站”和“收货站”(也就是你的服务器)已经满足以下基本条件:

  • 至少两台 Linux 服务器(或一台本地 Linux/macOS/Windows(带SSH客户端) + 一台远程 Linux 服务器): 我们需要一个源端(存放文件的起始位置)和一个目标端(文件要传输到的位置)。当然,很多情况下,你的本地电脑就是源端或目标端之一。
  • 两边都有 SSH 服务并已正确配置: 这是核心!SCP, Rsync (通过SSH模式), SFTP 这三个工具,它们的“安全”都依赖于底层的 SSH (Secure Shell) 协议进行身份验证和数据加密。所以,你必须确保:
    • 目标服务器上运行着 SSH 服务 (通常是 sshd)。
    • 你知道目标服务器的 IP 地址或域名。
    • 你知道一个可以在目标服务器上登录的用户名,并且拥有相应的密码或(强烈推荐)配置了 SSH 密钥对进行免密登录。
    • 防火墙(服务器端和客户端,以及任何中间网络设备)允许 SSH 端口(默认为 22)的通信。
  • 拥有合适的权限: 你登录服务器的用户账号,需要有权限读取源文件/目录,并且有权限在目标位置创建/写入文件和目录。
  • 基础的 Linux 命令行知识: 你需要知道如何在终端里输入命令、理解基本的路径表示方法(如 /home/user/file.txt)。

如果这些都准备好了,那我们就可以开始“发货”了!

方法一:SCP (Secure Copy) - 简单直接的“安全快递员”

SCP 是什么?

SCP (Secure Copy Protocol) 是一个基于 SSH 协议在网络上的两台计算机之间安全地传输文件的命令行工具。它是 OpenSSH 套件的一部分,几乎所有的 Linux 和 macOS 系统都自带这个命令,Windows 上也可以通过 Git Bash, PuTTY (pscp.exe) 或 WSL 来使用。

你可以把 SCP 想象成一个非常靠谱的“快递员”,他会把你的“包裹”(文件或目录)通过一条“加密的秘密通道”(SSH 连接)安全地从A地送到B地。它的优点是**简单直接、安全可靠**。

核心语法:

SCP 的命令格式通常如下:

scp [选项] [源用户名@源主机:]/源路径/文件名 [目标用户名@目标主机:]/目标路径/

  • [选项]: 比如 -r (递归复制目录), -P 端口号 (如果SSH用非标准端口), -p (保留文件属性)等。
  • [源用户名@源主机:]/源路径/文件名: 指定源文件的位置。
    • 如果是本地文件,就直接写路径,如 /path/to/local/file.txt
    • 如果是远程文件,格式是 用户名@远程主机IP或域名:/远程服务器上的路径/文件名
  • [目标用户名@目标主机:]/目标路径/: 指定目标位置。格式同上。

是不是看起来有点像我们熟悉的 cp (copy) 命令?没错,只是加上了远程主机和用户名的部分。

实战示例:

  1. 从本地复制单个文件到远程服务器: 假设你要把本地 /home/myuser/backup.zip 文件复制到 IP 地址为 192.168.1.101 的远程服务器上,用户名为 remoteuser,目标路径是 /opt/backups/: [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] scp /home/myuser/backup.zip remoteuser@192.168.1.101:/opt/backups/ 执行后,系统会提示你输入 remoteuser 在远程服务器上的密码(如果你没有配置免密登录的话)。
  2. 从远程服务器复制单个文件到本地: 反过来,把远程服务器 192.168.1.101/var/log/app.log 文件下载到本地的 /tmp/ 目录: [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] scp remoteuser@192.168.1.101:/var/log/app.log /tmp/
  3. 复制整个目录(包含其下所有文件和子目录): 你需要使用 -r (recursive) 选项。例如,把本地的 /home/myuser/myproject/ 整个目录复制到远程服务器的 /var/www/ 目录下: [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] scp -r /home/myuser/myproject remoteuser@192.168.1.101:/var/www/ 这会在远程服务器的 /var/www/ 目录下创建一个名为 myproject 的文件夹,并将本地 myproject 目录下的所有内容都复制过去。
  4. 如果远程服务器 SSH 使用非标准端口(比如 2222): 你需要使用大写的 -P 参数(注意,这和 ssh 命令用小写 -p 指定端口不同!)来指定端口号: [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] scp -P 2222 /local/file.txt remoteuser@192.168.1.101:/remote/path/
  5. 保留文件原始属性(如修改时间、权限): 使用小写的 -p (preserve) 选项: [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] scp -p /local/file.txt remoteuser@192.168.1.101:/remote/path/
  6. 限制传输带宽(比如限制为 500 KB/s): 使用 -l (limit) 选项,单位是 Kbit/s (注意是小 b,比特)。500 KB/s 大约是 4000 Kbit/s。 [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] scp -l 4000 /local/largefile.zip remoteuser@192.168.1.101:/remote/
  7. 在两台远程服务器之间直接传输文件 (通过本地作为中转或使用 -3 选项): 如果你想把服务器 A 上的文件直接复制到服务器 B 上,通常 SCP 会先把文件下载到你执行命令的这台机器,然后再上传到服务器 B,效率不高。如果你的 OpenSSH 版本较新,可以使用 -3 选项强制通过中转主机(也就是你当前操作的机器)进行复制,或者在某些情况下,如果两台远程服务器之间配置了互信,它可以尝试直接在它们之间传输,但通常还是会经过你的本地机器进行数据流的转发,除非两台服务器之间有特殊的SSH配置允许直接连接和认证。 一个更可靠的、通常推荐的“远程到远程”传输方式(如果你当前机器无法直接作为高效中转),是先 SSH 登录到其中一台远程服务器,然后再从那台服务器上执行 SCP 命令去连接另一台远程服务器。或者,考虑使用后面介绍的 Rsync 或 SFTP。

SCP 的优点:

  • 命令语法相对简单,容易上手,和 cp 命令类似。
  • 基于 SSH,传输过程是加密的,非常安全。
  • 几乎所有 Linux/macOS 系统都自带,无需额外安装。

SCP 的缺点:

  • 如果传输过程中发生网络中断,SCP 通常无法断点续传,你需要从头开始重新传输整个文件,这对于大文件来说非常痛苦。
  • 在同步两个已经存在大部分相同内容的目录时,SCP 会把所有文件都重新传输一遍,不够高效。
  • 相比 Rsync,它的功能选项较少,控制粒度不够细。
  • 错误提示和进度显示有时不够友好。

总的来说,SCP 非常适合进行**一次性的、中小规模的文件或目录的安全复制**。它就像是那个不多话但办事牢靠的“快递小哥”,你告诉他把什么东西从哪送到哪,他就能安全搞定。

方法二:Rsync (Remote Sync) - 智能高效的“差异同步专家”

Rsync 是什么?

如果说 SCP 是个“老实巴交”的快递员,每次都把整个包裹原样送达,那么 Rsync (Remote Sync) 就是一位极其聪明的“物流调度大师”和“差异同步专家”。它不仅能安全地(默认也通过 SSH)传输文件和目录,更厉害的是,它能**只传输源和目标之间有差异的部分**!

这是通过一种巧妙的“delta-transfer”算法实现的:在传输前,Rsync 会比较源文件和目标文件的内容,找出哪些部分是新增的或修改过的,然后只把这些“增量”数据传输过去,并在目标端重新组合成完整的文件。这使得 Rsync 在同步大型目录、进行增量备份、或者在网络不稳定的情况下传输大文件时,效率远超 SCP。

你可以把它想象成,你要给朋友更新一个大型软件的安装包,朋友那里已经有了一个旧版本。用 SCP 的话,你得把整个新版本的几 GB 安装包全部传过去。而用 Rsync,它会智能地对比一下,发现大部分文件都没变,可能只需要传几个几十 MB 的更新补丁和新增文件就行了,大大节省了时间和带宽!

核心语法与常用选项:

Rsync 的基本语法和 SCP 类似,但它的选项参数极其丰富和强大:

rsync [选项] [源用户名@源主机:]/源路径/ [目标用户名@目标主机:]/目标路径/

特别注意: 源路径末尾是否带斜杠 / 会有很大区别!

  • 如果源路径带了斜杠(如 /source/dir/),Rsync 会复制该目录下的**内容**到目标路径。
  • 如果源路径没带斜杠(如 /source/dir),Rsync 会在目标路径下创建一个与源目录同名的目录,并将源目录及其内容复制到这个新目录里。

常用且强大的选项(这些是 Rsync 的精髓!):

  • -a (archive mode - 归档模式): 这是最常用的选项之一!它相当于同时启用了多个有用选项:-rlptgoD,即:
    • -r (recursive): 递归同步目录。
    • -l (links): 保留符号链接。
    • -p (perms): 保留文件权限。
    • -t (times): 保留文件修改时间。
    • -g (group): 保留文件所属组。
    • -o (owner): 保留文件所有者 (只有超级用户才能在目标端设置所有者)。
    • -D (devices, specials): 保留设备文件和特殊文件。
    通常,你想完整地同步一个目录并保持其原有属性时,直接用 -a 就够了。
  • -v (verbose): 显示详细的输出信息,让你知道 Rsync 正在做什么。建议新手都加上。多次使用 (如 -vv, -vvv) 会显示更详细的调试信息。
  • -z (compress): 在传输过程中压缩文件数据。对于文本类文件(如代码、日志、HTML)压缩效果好,能节省带宽,但会增加一点 CPU 开销。对于本身已经压缩过的文件(如 .zip, .jpg, .mp4),效果不大甚至可能起反作用。
  • -P: 这个选项非常有用!它相当于同时启用了 --partial (保留部分传输的文件,方便断点续传) 和 --progress (显示每个文件的传输进度条)。
  • -h (human-readable): 以人类可读的格式(如 KB, MB, GB)显示文件大小和传输速率。通常和 --progress 一起用。
  • --delete: 这是一个非常强大但也**非常危险**的选项!它会在同步时,删除目标端存在但源端已不存在的文件,使得目标端成为源端的精确镜像。在使用前务必确认你的源端和目标端路径没有搞反,并且你确实想删除目标端多余的文件! 最好先配合 --dry-run 测试。
  • --exclude='PATTERN': 排除符合指定模式的文件或目录不进行同步。例如 --exclude='*.log' 排除所有 .log 文件,--exclude='tmp/' 排除 tmp 目录。可以多次使用。
  • --include='PATTERN': 与 --exclude 配合使用,可以更精细地控制包含哪些文件。
  • -n--dry-run: **“演习模式”!** 这是 Rsync 最棒的功能之一!它会模拟整个同步过程,告诉你哪些文件会被传输、哪些会被删除(如果用了 --delete),但并**不会真的执行任何文件操作**。在你执行任何可能修改或删除文件的 Rsync 命令(特别是带 --delete 的)之前,强烈建议先用 --dry-run 跑一遍,检查输出是否符合你的预期!
  • -e 'ssh -p PORT_NUMBER': 如果你的远程服务器 SSH 使用非标准端口,需要用这个选项来指定 SSH 命令和端口。

实战示例:

  1. 将本地目录完整同步到远程服务器(常用备份场景): 假设要将本地的 /home/myuser/mywebsite/ 目录(注意末尾的斜杠,表示同步目录内容)同步到远程服务器 remote_host/backup/website/ 目录下,并显示进度、压缩传输、保留属性: [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] rsync -avzPh /home/myuser/mywebsite/ remoteuser@remote_host:/backup/website/
  2. 从远程服务器将目录同步到本地: [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] rsync -avzPh remoteuser@remote_host:/var/www/production_site/ /home/myuser/site_backup/
  3. 保持本地和远程目录的精确镜像(远程多余的会被删除!): 再次警告:--delete 参数非常危险,使用前务必用 --dry-run 测试! [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] # 先演习一下,看看会发生什么 rsync -avzPhn --delete /local/source_dir/ remoteuser@remote_host:/remote/target_dir/ # 确认无误后,再去掉 -n 参数正式执行 # rsync -avzPh --delete /local/source_dir/ remoteuser@remote_host:/remote/target_dir/
  4. 通过非标准 SSH 端口 (如 2222) 同步: [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] rsync -avzPh -e 'ssh -p 2222' /local/source_dir/ remoteuser@remote_host:/remote/target_dir/
  5. 同步时排除特定的文件和目录: [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] rsync -avzPh --exclude='*.tmp' --exclude='cache/' --exclude='.git/' /local/project/ remoteuser@remote_host:/deploy/project/

Rsync 的优点:

  • 极其高效的差异同步: 只传输变化的部分,大大节省了时间和带宽,特别适合大文件、大量文件的同步和备份。
  • 支持断点续传: 使用 -P--partial 选项,如果传输中断,下次可以从中断的地方继续,无需从头再来。
  • 选项丰富,控制精细: 可以灵活地控制是否保留权限时间戳、是否压缩、是否删除目标端多余文件、排除特定文件等等。
  • 安全可靠: 默认通过 SSH 进行加密传输。
  • 用途广泛:不仅是文件传输,更是网站部署、数据备份、目录镜像的“神器”。

Rsync 的缺点:

  • 命令选项较多,初次接触时学习曲线比 SCP 稍陡峭一点。
  • 源路径末尾是否有斜杠 / 对行为影响很大,新手容易搞混而出错。
  • 对于非常小、一次性的文件复制,可能感觉不如 SCP 那么“手起刀落”干脆(但其实也很快)。

总的来说,一旦你掌握了 Rsync 的核心选项和使用方法,它绝对会成为你服务器文件管理工具箱里最得力的干将之一!特别是对于需要**定期同步目录、进行增量备份、或者在不稳定网络下传输大文件**的场景,Rsync 是不二之选。

方法三:SFTP (SSH File Transfer Protocol) - 安全交互的“文件资源管理器”

SFTP 是什么?

SFTP (SSH File Transfer Protocol,有时也叫 Secure File Transfer Protocol) 是一个在 SSH 协议(通常是 SSH-2)之上提供的安全文件传输和管理协议。它与我们前面说的 SCP 和 Rsync 有点不一样:SCP 和 Rsync 通常是一次性执行一个“复制”或“同步”命令就结束了,而 SFTP 则是**启动一个交互式的会话**,让你感觉像是打开了一个远程服务器的“文件资源管理器”,你可以在这个会话里执行多种文件操作。

你可以把它想象成,你不是直接叫快递员(SCP)送个特定包裹,也不是让智能物流系统(Rsync)帮你同步仓库,而是你亲自(通过一个安全的加密通道)走进了远程服务器的“储物间”(文件系统),可以在里面**浏览文件列表、上传文件、下载文件、创建目录、删除文件、修改权限**等等,进行更细致、更交互式的管理。

如何使用 SFTP 命令行客户端?

几乎所有的 Linux 和 macOS 系统都自带了 sftp 命令行客户端。Windows 上也可以通过 Git Bash 或 PuTTY 套件中的 psftp.exe 来使用。

  1. 连接到远程服务器: [提示:请将以下代码片段复制并粘贴到 WordPress 的“代码”区块中] sftp remoteuser@remote_host # 如果 SSH 使用非标准端口 (如 2222),用 -P (大写P,和scp一样) # sftp -P 2222 remoteuser@remote_host 连接成功后,你会看到一个 sftp> 的提示符,表示你已经进入了 SFTP 的交互模式。
  2. 常用 SFTP 命令 (很多和 Linux shell 命令或 FTP 命令类似):sftp> 提示符下,你可以使用以下命令:
    • 导航与查看 (远程服务器):
      • ls: 列出当前远程目录的文件和文件夹。 (可以加 -l 显示详细信息,-a 显示隐藏文件)
      • cd remote_directory: 切换远程目录。
      • pwd: 显示当前所在的远程目录路径。
      • mkdir remote_directory: 创建远程目录。
      • rmdir remote_directory: 删除远程空目录。
      • rm remote_file: 删除远程文件。
      • rename old_name new_name: 重命名远程文件或目录。
    • 导航与查看 (本地电脑,命令前通常加 `l`):
      • lls: 列出当前本地目录的文件和文件夹。
      • lcd local_directory: 切换本地目录。
      • lpwd: 显示当前所在的本地目录路径。
    • 文件传输:
      • get remote_file [local_target_path]: 从远程服务器下载文件到本地。如果省略 local_target_path,则下载到当前本地目录。
      • put local_file [remote_target_path]: 从本地上传文件到远程服务器。如果省略 remote_target_path,则上传到当前远程目录。
      • mget remote_pattern*: 下载多个匹配模式的文件 (如 mget *.txt)。
      • mput local_pattern*: 上传多个匹配模式的文件 (如 mput *.jpg)。
      • 注意: SFTP 的 getput 命令如果要传输整个目录,通常需要配合 -r (recursive) 选项,例如 get -r remote_directory
    • 权限与帮助:
      • chmod XXX remote_file: 修改远程文件权限 (用法同 Linux chmod)。
      • chown UID remote_file / chgrp GID remote_file: 修改远程文件所有者/组 (需要你有相应权限)。
      • help?: 显示可用的 SFTP 命令列表。
    • 退出:
      • exit, quit, 或 bye: 断开连接并退出 SFTP 会话。

SFTP 的优点:

  • 交互式操作: 非常适合需要浏览远程文件系统、进行多次上传下载、或者进行一些基本文件管理(创建目录、删除、重命名、改权限)的场景。
  • 安全性高: 底层完全基于 SSH 协议,所有数据传输(包括命令和文件内容)都是加密的。
  • 功能比 SCP 丰富: 提供了比 SCP 更多的文件管理功能,比如断点续传(某些客户端支持)、创建目录、删除文件、修改权限等。
  • 广泛的客户端支持: 除了命令行 sftp,几乎所有的图形化 FTP 客户端(如 FileZilla, WinSCP, Cyberduck, Transmit 等)都内置了对 SFTP 协议的支持,让你可以通过熟悉的图形界面进行安全的文件传输和管理。这是 SFTP 非常受欢迎的一个原因。

SFTP 的缺点:

  • 不适合脚本自动化单次传输: 对于只需要简单复制一个文件或目录的自动化脚本,SCP 或 Rsync 的单行命令通常更方便。SFTP 的交互模式不适合直接用在脚本里(虽然也可以通过批处理模式,但较复杂)。
  • 同步大型目录效率可能不如 Rsync: SFTP 缺乏 Rsync 那种高效的“差异比较”算法,在同步两个已经存在大部分相同内容的大型目录时,它可能还是会传输很多重复数据,效率不如 Rsync。

总的来说,SFTP 是当你需要一个**安全的、交互式的、像操作本地文件一样管理远程服务器文件**的工具时的绝佳选择。特别是如果你更喜欢图形界面,那么使用支持 SFTP 的 GUI 客户端会非常方便。

总结:为你的“包裹”选择合适的“快递”方式

好了,我们今天认识了 Linux 服务器之间安全高效传输文件的三位“武林高手”:简单直接的“安全快递员” **SCP**,智能高效的“差异同步专家” **Rsync**,以及安全交互的“文件资源管理器” **SFTP**。

它们有什么共同点?那就是都依赖于强大的 **SSH 协议**作为“安全通道”,保证了我们数据传输过程中的机密性和完整性,让我们彻底告别了古老而不安全的 FTP。

那么,到底该用哪个呢?这完全取决于你手头的“包裹”是什么,以及你的“运输需求”是怎样的:

  • 如果你只是想快速、安全地**复制单个文件或小目录**,而且不需要考虑断点续传或差异同步,那么语法最简单的 **SCP** 可能就够用了,手起刀落,干净利落。
  • 如果你需要**同步两个目录**(特别是内容很多、很大的目录),或者需要进行**增量备份**,或者需要在不稳定的网络下传输大文件并希望能**断点续传**,那么功能强大、效率极高的 **Rsync** 绝对是你的不二之选,它能帮你节省大量的时间和带宽。
  • 如果你需要在远程服务器上进行更**复杂的文件管理**,比如先浏览一下目录内容,再决定上传哪些、下载哪些,或者需要创建目录、删除文件、修改权限等,那么启动一个 **SFTP** 交互式会话,或者使用支持 SFTP 的图形化客户端,会让你感觉更像在操作本地文件一样方便。

没有哪个工具是“万能”的,它们各有侧重,各有擅长的领域。掌握了这三个工具的用法,你就能根据不同的场景,灵活地为你的“数据包裹”选择最合适的“安全快递”方式了!


还有疑问?常见问题解答 (FAQs)

  1. 问: SCP, Rsync, SFTP 这三个工具,哪个传输速度最快? 答: 这个问题没有绝对答案,速度受多种因素影响(网络状况、文件大小和数量、CPU性能、磁盘I/O、是否启用压缩等)。一般经验是: 1) 对于**首次传输一个大文件或一个全新目录**,并且不考虑压缩的情况下,SCP 因为开销较小,有时可能在纯粹的传输速率上略快于 Rsync 或 SFTP。2) 但如果是在**同步已存在大部分相同内容的目录**,或者需要**断点续传**,Rsync 的差异算法和部分传输能力使其**总效率远超** SCP 和 SFTP。3) SFTP 由于其交互性和协议开销,在批量传输大量小文件或单个大文件时,通常不会比优化过的 Rsync 或 SCP 更快。结论: 对于同步和备份,Rsync 几乎总是最高效的;对于简单的一次性复制,SCP 可能略快;SFTP 更侧重交互管理而非极致速度。
  2. 问: 我用 SCP 传输大文件时,如果网络断了,能恢复吗? 答: 很遗憾,标准的 SCP 命令本身**不支持断点续传**。如果传输中断,你需要从头开始重新传输整个文件。这也是为什么在传输大文件或网络不稳定的情况下,更推荐使用 Rsync(配合 -P--partial 选项)的原因,Rsync 可以保留已传输的部分,并在下次传输时从中断处继续。
  3. 问: 我想每天自动用 Rsync 备份服务器数据到另一台机器,怎么设置? 答: 你可以通过 Linux 的**计划任务 (Cron Job)** 来实现 Rsync 的自动化备份。大致步骤是:1) 确保你已经配置好了从备份源服务器到备份目标服务器的**SSH 免密登录**(使用密钥对),这样 Rsync 执行时就不需要输入密码。2) 编写一个包含你 Rsync 命令的 Shell 脚本(比如 backup.sh),确保脚本有执行权限。3) 编辑你的 crontab (crontab -e),添加一条类似这样的记录,让它每天在特定时间(比如凌晨3点)执行你的备份脚本:0 3 * * * /path/to/your/backup.sh >/dev/null 2>&1 (>/dev/null 2>&1 是为了禁止输出,你也可以重定向到日志文件)。
  4. 问: SFTP 和 FTPS (FTP over SSL/TLS) 有什么区别?哪个更安全? 答: 它们都是安全的文件传输协议,但实现方式不同。SFTP (SSH File Transfer Protocol)** 是 SSH 协议的一个子系统,它完全运行在 SSH 的加密通道之上,只需要开放服务器的 SSH 端口(通常是 22)即可,配置相对简单,安全性与 SSH 本身一样高。而 **FTPS** 则是传统 FTP 协议的扩展,通过 SSL/TLS 来加密 FTP 的控制连接和/或数据连接。FTPS 通常需要开放多个端口(一个用于控制,数据连接端口可能动态或在指定范围),防火墙配置相对复杂一些。安全性方面: 两者如果正确配置,都可以提供很好的安全性。但由于 SFTP 共享 SSH 的端口和认证机制,管理上可能更简洁,也更不容易因为 FTP 协议本身的一些历史遗留问题(如被动模式端口范围)而产生配置困扰。目前,SFTP 因其简洁和与 SSH 的紧密集成,在 Linux/Unix 环境中更为常用。
  5. 问: 我没有配置 SSH 密钥登录,可以用密码通过 SCP/Rsync/SFTP 传输文件吗? 答: 可以,但不推荐。 这三个工具默认都使用 SSH 进行认证。如果你的服务器允许 SSH 密码登录(即 sshd_configPasswordAuthentication yes),那么你在执行 SCP, Rsync (通过 SSH 模式时), 或 SFTP 连接命令后,系统会提示你输入远程用户的密码。输入正确的密码后即可进行传输。但是,**强烈建议你配置并使用 SSH 密钥认证,并禁用服务器的 SSH 密码登录**。因为密码容易被暴力破解,而密钥认证则安全得多。使用密钥后,这三个工具的传输过程也会更加便捷(无需每次都输密码,除非你的私钥本身设置了密码短语)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值