一 背景
有时候我们需要在linux服务器之间传送文件,这时候会用到2个常见的命令sync和scp
二、scp的使用
速记:s表示ssh 连接 cp 拷贝
2.1 基本语法
$ scp [option] /path/to/source/file user@server-ip:/path/to/destination/directory
/path/to/source/file – 这是打算复制到远程主机的源文件。
user@server-IP: – 这是远程系统的用户名和 IP 地址。请注意 IP 地址后面加冒号。
/path/to/destination/directory – 这是文件将复制到的远程系统上的目标目录。
以下是scp命令常用的几个选项【option】:
-C - 这会在复制过程中压缩文件或目录。
-P - 如果默认 SSH 端口不是 22,则使用此选项指定 SSH 端口。
-r - 此选项递归复制目录及其内容。
-p - 保留文件的访问和修改时间。
2.2 实例
服务器之间传文件或文件夹,如果开了防火墙或指定端口,可以用-p去指定
##拉取服务器xx.xx.xx.xx上的/mnt/data/test/245.txt文件到当前目录:
scp -P 22 root@xx.xx.xx.xx:/mnt/data/test/245.txt ./
##拉取取服务器xx.xx.xx.xx上的文件夹/mnt/data/test 到当前目录:
scp -P 22 -r root@xx.xx.xx.xx:/mnt/data/test ./
----------------------
##推送文件到指定服务器xx.xx.xx.xx的/mnt/data/test目录下:
scp -P 22 ./245.txt root@xx.xx.xx.xx:/mnt/data/test/
##推送文件夹到指定服务器xx.xx.xx.xx上的/mnt/data目录下:
scp -P 22 -r ./test root@xx.xx.xx.xx:/mnt/data/
2.3 scp连接失败WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
解决办法:
vim /root/.ssh/known_hosts
把里面得内容删除