linux两台服务器之间文件/文件夹拷贝
跨服务器拷贝需要用到的命令是scp.
----------------------拷贝文件夹----------------------------------------------
把当前文件夹tempA拷贝到 目标服务器10.127.40.25 服务器的 /tmp/wang/文件夹下
scp -r 原文件夹 user@IP:/home(目标文件路径)
其中user是目标服务器的用户名,执行命令提示输入密码,然后输入密码即可
----------------------拷贝文件----------------------------------------------
把当前文件夹tempA.txt拷贝到 目标服务器IP 服务器的 /tmp/wang/文件夹下
scp 源文件 usr@IP:/home(目标文件位置)
其中usr是目标服务器的用户名,执行命令提示输入密码,然后输入密码即可
如:
scp who.py root@192.168.1.11:/root/tools
结果:
[root@izwz9c6q7af34lokld0hqcz tools]# ll
total 0
[root@izwz9c6q7af34lokld0hqcz tools]# pwd
/root/tools
[root@izwz9c6q7af34lokld0hqcz tools]# ll
total 1
-rw-r--r-- 1 root root 197 Feb 8 13:52 who.py
[root@izwz9c6q7af34lokld0hqcz tools]#
scp是Security copy,基于ssh协议登录,用于在两台主机之间加密拷贝文件或目录,既可以从本机拷贝到远程主机,也可以从远程主机拷贝到本机。
root@coderbee:~# scp
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[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 详细方式显示输出。scp和ssh(1)会显示整个过程的调试信息。用于调试连接、验证和配置问题。
-c cipher 以 cipher对数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config 指定一个ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限制用户所能使用带宽,以k bit/s为单位。
-o ssh_config
-P port 大写P,port是传输数据使用的端口号。
-S program 指定加密传输时所使用程序,此程序必须能够理解ssh(1)的选项。
[[user@]host1:]file1 ... 源文件或目录
[[user@]host2:]file2 目的文件或目录
scp的基本使用形式: scp [-r] 源文件或目录 目的文件或目录, -r选项用于拷贝目录。
在本机上的文件或目录是不需要指定用户名和host的。远程主机可以不指定用户名,在命令执行后会要求输入用户名和密码。主机与路径之间是用冒号:分隔的。
对于拷贝遵循:
拷贝文件时,如果目的路径是个目录,则拷贝到目的目录下,文件名不变;如果目的路径是个文件,则拷贝到以此路径指向的文件里,也就是说可以通过指定不同的文件名来直接重命名。
如果是拷贝目录,则目的路径必须是个目录,且必须使用 -r 选项。
举例:
从远程主机拷贝文件到本地目录: scp coderbee@coderbee.net:/home/coderbee/soft/setup.sh .
从本地拷贝文件到远程主机并重命名: scp my.txt coderbee@coderbee.net:/home/coderbee/soft/mytxt
拷贝本地目录到远程主机目录: scp -r basic coderbee@coderbee.net:/home/coderbee/soft/