文件传输
本机主机(个人)和远程主机之间传输文件推荐使用SCP(命令行)或SFTP。
远程服务器间文件传输强烈推荐使用rsync。
1. SCP
SCP是一个非交互式的命令行工具,主要用于复制文件和目录在不同主机间,并且传输过程中同样采用SSH协议加密。
- 一些常见选项:
-r:递归复制整个目录及其子目录。-P:指定远程主机的SSH端口(默认为22)。-i:指定私钥文件用于身份验证。
2. SFTP
SFTP是一个交互式文件传输程序,它不仅提供了类似FTP的功能,还利用SSH协议保证了数据传输过程中的安全性。相比于传统的FTP,SFTP客户端和服务端之间的所有通信都会被加密,确保敏感信息不被窃听或篡改。
基本命令
ls:列出远程目录的内容。cd:改变远程目录。-
get:从远程主机下载文件到本地。如果省略本地文件名,则会以相同的文件名保存到当前本地目录。
-
put:将本地文件上传到远程主机。 -
mkdir:在远程主机上创建目录。 rm:删除远程主机上的文件或目录。
3.Rsync
rsync是一个非常强大的文件同步工具,它能够实现增量式、安全、快速的文件传输和同步。特别适合在服务器之间进行大量数据的同步操作,因为它能够检测并仅传输那些在源和目标之间有差异的文件,从而大大节省了带宽和时间。
基本语法
rsync [选项] [源文件或目录] [目标文件或目录]
举例
rsync -avzhP /path/to/source /path/to/destination
选项
-
-a:递归复制,并且保留源文件或目录的所有属性,包括权限、时间戳、符号链接等。 -
-v:详细输出,显示rsync执行的详细过程。 -
-z:压缩数据传输,可以节省带宽。 -
-h:以人类可读的格式显示大小。 -
-P:等同于--partial --progress,在传输过程中如果连接中断,可以继续上次的传输,同时显示传输进度。 -
--delete:在目标目录中删除不存在于源目录中的文件,保持目标目录与源目录一致。 -
--exclude:排除某些文件或目录。 -
--include:包含某些文件或目录,与--exclude相反。 -
--stats:显示传输的统计信息。 -
--bwlimit:限制传输带宽,单位为KB/s。