shell命令之scp

scp即secure copy,主要用于远程文件拷贝。用法如下:

scp [-option] [[user@]host1:]file1 ... [[user@]host2:]file2
参数如下:
-1  强制scp命令使用协议ssh1  
-2  强制scp命令使用协议ssh2  
-4  强制scp命令只使用IPv4寻址  
-6  强制scp命令只使用IPv6寻址  
-B  使用批处理模式(传输过程中不询问传输口令或短语)  
-C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能)  
-p  保留原文件的修改时间,访问时间和访问权限。  
-q  不显示传输进度条。  
-r  递归复制整个目录。  
-v  详细方式显示输出。   
-c cipher  以cipher将数据传输进行加密,这个选项将直接传递给ssh。   
-F ssh_config  指定一个替代的ssh配置文件,此参数直接传递给ssh。  
-i identity_file  从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。    
-l limit  限定用户所能使用的带宽,以Kbit/s为单位。     
-o ssh_option  如果习惯于使用ssh_config(5)中的参数传递方式,   
-P port  注意是大写的P, port是指定数据传输用到的端口号   
-S program  指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

现在假设服务器的ip为:10.12.13.14,域名是www.abc.com。
1、从服务器分别复制文件和文件夹到本地:

scp root@10.12.13.14:/home/file /myMachine/x (可以将ip换成域名,也可以去掉root@)

scp -r www.abc.com:/home/file/ /myMachine/myFile/

2、本地复制到服务器

复制文件
scp /myMachine/x root@10.12.13.14:/home/file
复制文件夹
scp -r /myMachine/myFile/ www.abc.com:/home/file/ 
### 如何使用 SCP Shell 命令进行远程文件传输 #### 将本地文件复制到远程服务器 为了将单个文件从本地计算机发送至远程服务器上的特定位置,可以采用如下命令: ```bash scp myfile.txt user@example.com:/home/user/ ``` 这条指令会把名为 `myfile.txt` 的文件上传到位于 `/home/user/` 路径下的远程机器上[^1]。 对于更复杂的场景,比如想要传送整个目录而非单一文件,则需加上 `-r` 参数来实现递归拷贝操作: ```bash scp -r mydirectory/ user@example.com:/home/user/ ``` 这将会把本机中的 `mydirectory` 及其内部所有内容完整无缺地迁移到目标主机相应的位置下[^3]。 #### 由远程服务器下载文件到本地 当需求转变为获取远端资源并保存于当前设备时,只需调整源与目的地参数顺序即可完成反向的数据迁移过程。具体形式如下所示: ```bash scp user@remotehost:/path/to/remotefile /local/path/ ``` 此命令表示从 `user@remotehost` 下载 `/path/to/remotefile` 到本地的 `/local/path/` 中[^4]。 #### 配置免密登录提高效率 频繁输入密码可能会影响工作效率,在这种情况下配置SSH公钥认证机制是一个不错的选择。通过以下两步可达成目的: 1. 在客户端生成一对新的 SSH 密钥对; 2. 把生成好的公钥追加进服务端对应用户的 `.ssh/authorized_keys` 文件里[^5]。 这样设置之后再执行上述任何一种类型的SCP任务都不必每次都手动提供账户凭证了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值