linux scp远程复制命令使用

619 查看

# 拷贝本机sql目录下所有文件到远程主机data目录下
# -a 尽可能将档案状态、权限等资料都照原状予以复制。
# -B  使用批处理模式(传输过程中不询问传输口令或短语)  
# -C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能)  
# -p 保留原文件的修改时间,访问时间和访问权限。  
# -q  不显示传输进度条。  
# -r  递归复制整个目录。  
# -v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。   
# -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)的选项。

scp -r ./sql/* root@42.99.99.99:/data/

比较常用的
-r 递归复制整个目录
-l limit 限定用户所能使用的带宽,以Kbit/s为单位

常见错误

# 错误信息:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
.....此处省略1000字!!!


# 解决办法:
# 先cat一下家目录的.ssh/know_hosts
cat ~/.ssh/known_hosts

vim ~/.ssh/known_hosts

# 删除文件内容,wq保存退出,重新使用scp命令就没错误了