蒙国造博客

ssh使用scp或rsync上传下载文件

在Linux下一般用scp或者rsync个命令来通过ssh传输文件。

注意:用户要有目标的响应权限,下载需要有读权限,上传需要有写权限,否则会提示错误:Permission denied

1 下载文件

如下选择一种方式:

scp username@servername:/path/filename /var/www/local_dir  # 用scp
rsync -P -e 'ssh -p 12345' username@servername:/path/filename /var/www/local_dir  # 或者rsync,以下同理,-P显示进度

# 自动重连
RC=1 
while [[ $RC -ne 0 ]]
do
    rsync -P -e 'ssh -p 12345' username@servername:/path/filename /var/www/local_dir
    RC=$?
done

将远程文件下载到本地 local_dir 目录,例如:

scp root@192.168.0.101:/var/www/test.txt /var/www/local_dir

192.168.0.101上的 /var/www/test.txt 的文件下载到 /var/www/local_dir(本地目录)

2 上传文件

命令格式:

scp /path/filename username@servername:/path

例如:

scp /var/www/test.php  root@192.168.0.101:/var/www/

把本机 /var/www/test.php 文件上传到 192.168.0.101 服务器上的 /var/www/ 目录中。

3 下载目录

命令格式:

scp -r username@servername:/var/www/remote_dir/ /var/www/local_dir

remote_dir 为远程目录,local_dir 为本地目录,例如:

scp -r root@192.168.0.101:/var/www/test /var/www/

4 上传目录

scp  -r local_dir username@servername:remote_dir

例如:

scp -r test  root@192.168.0.101:/var/www/

把当前目录下的 test 目录上传到服务器的 /var/www/ 目录

5 指定端口

指定端口用-P参数,注意是大写的P,例如:

scp -P 8000 -r test root@192.168.0.101:/var/www/

这里指定 8000 端口。

退出移动版