如何在Linux中高效传输文件
在 Linux 中传输文件是每个系统管理员都应该知道的一项常见任务,尤其是在通过网络在本地或远程系统之间传输文件时。
Linux 为此提供了两种流行的工具:SCP(安全复制)和 Rsync。两者都提供了一种在本地或远程计算机之间传输文件的安全且便捷的方法。
在本文中,我们将探讨如何使用SCP和Rsync命令来传输文件,涵盖本地和远程文件传输。
1.了解Linux中的scp(安全复制协议)
scp 命令是一个命令行程序,用于使用 SSH(安全外壳)在两台主机之间安全地复制文件和目录,这意味着在通过 Internet 传输文件时,数据以加密方式传输。
使用 scp 的基本通用语法如下:
scp [options] source_file destination
以下是该命令的解释:
- source_file:您要复制的文件或目录。
- 目标:要将文件或目录复制到的位置。
在 Linux 中本地复制文件
如果要将文件从一个目录复制到同一台计算机上的另一个目录,可以使用:
scp ~/document.txt /tmp
将文件复制到远程服务器
要将文件从本地计算机复制到远程服务器,您需要指定远程服务器的 IP 地址和目标路径。
scp ~/document.txt [email :/home/username
从远程服务器复制文件
要将文件从远程服务器复制到本地计算机,只需颠倒源和目标即可:
scp [email :/home/username/document.txt /tmp
要复制整个目录,请使用 -r 选项(代表递归):
scp -r ~/tecmint /tmp
2.了解Linux中的rsync
rsync命令是另一个使用最广泛的文件传输命令行工具,用于在源和目标之间传输文件和目录,通常用于同步目录。
使用rsync的基本语法是:
rsync [options] source destination
本地传输文件
要在本地传输文件或目录,您可以使用带有 -a
选项的 rsync 来启用存档模式,该模式会保留权限、所有权和时间戳。
-v
选项代表 verbose,它显示文件传输的进度。
rsync -av ~/myfolder /backup
将文件传输到远程服务器
为了将文件传输到远程服务器,rsync默认使用SSH,这里需要指定远程服务器的IP地址和位置:
rsync -av ~/myfolder [email :/home/username
上面的命令会将myfolder
传输到远程服务器,如果再次运行它,rsync将只复制已更改的文件。
从远程服务器传输文件
要将文件从远程服务器传输到本地计算机,请使用:
rsync -av [email :/home/username/myfolder /backup
使用 Rsync 同步目录
rsync 的主要优势之一是它能够同步目录,这意味着您可以使两个目录保持同步,无论它们位于同一台计算机上还是不同的计算机上。
例如,要将本地目录与远程目录同步:
rsync -av /local/directory/ username@remote_host:/remote/directory/
要将远程目录与本地目录同步,您需要颠倒 rsync 命令中的源和目标。
rsync -av username@remote_host:/remote/directory/ /local/directory/
如果传输由于网络故障或其他原因而中断,您可以使用 --partial
选项恢复传输,该选项允许从中断处恢复文件传输:
rsync -av --partial /path/to/source username@remote_host:/path/to/destination
结论
使用 scp 和 rsync 等工具在 Linux 中传输文件是一项简单的任务。虽然 scp 简单且安全,但 rsync 提供了更高级的功能,例如同步和效率。
了解如何有效地使用这些工具将帮助您跨本地和远程系统管理文件和数据。