scp file user@host:/tmp/把本地文件复制到远程主机。
约 732 字大约 2 分钟
2026-05-14
scp 和 rsync 都可以在本地和远程主机之间传输文件。scp 简单直接,适合少量文件;rsync 支持增量同步、排除规则和断点续传,更适合目录同步和备份。
`scp` 和 `rsync` 都可以在本地和远程主机之间传输文件。`scp` 简单直接,适合少量文件;`rsync` 支持增量同步、排除规则和断点续传,更适合目录同步和备份。
scp file user@host:/tmp/把本地文件复制到远程主机。
scp user@host:/tmp/file .从远程主机复制文件到当前目录。
rsync -avz dir/ user@host:/backup/dir/增量同步目录内容。
rsync -avzn dir/ host:/backup/先看会同步什么,不真正执行。
scp file.txt user@server:/tmp/
scp user@server:/tmp/file.txt .
scp -r project/ user@server:/var/www/project/
scp -P 2222 file.txt user@server:/tmp/注意:scp 指定端口是大写 -P,而 ssh 是小写 -p。
rsync -avz project/ user@server:/var/www/project/
rsync -avz user@server:/var/log/app/ ./logs/常见参数:
| 参数 | 含义 |
|---|---|
-a | 归档模式,保留权限、时间等信息 |
-v | 显示过程 |
-z | 传输时压缩 |
--delete | 删除目标端多余文件,让两边一致 |
--exclude | 排除文件或目录 |
rsync -avz dir user@host:/backup/ # 复制 dir 这个目录
rsync -avz dir/ user@host:/backup/ # 复制 dir 里面的内容这是 rsync 最容易踩坑的地方。
rsync -avz --exclude node_modules --exclude .git project/ host:/app/
rsync -avzn --delete project/ host:/app/-n 是 dry-run,表示只预演,不真正修改目标。配合 --delete 前一定要先预演。
scp 简单直接,适合少量文件传输;rsync 更适合同步目录、增量复制和可重复执行的备份任务。
| 场景 | 推荐 | 原因 |
|---|---|---|
| 临时上传一个文件 | scp | 命令短,容易记 |
| 同步整个目录 | rsync -av | 只传变化部分 |
| 大目录反复备份 | rsync | 支持增量、排除、预演 |
| 网络不稳定 | rsync --partial | 可保留部分传输结果 |
这是最容易犯错的地方:
rsync -av dir host:/backup/ # 复制 dir 这个目录本身
rsync -av dir/ host:/backup/ # 复制 dir 里面的内容不确定时先加 --dry-run 预演,确认目标路径会变成什么样。
版权归属:Shuo Liu