两台Linux服务器之间复制文件
一、scp
1.简介
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的
2.软件安装(双方服务器都需要安装)
~]# yum install openssh-client -y
3.使用场景
本地机器:192.168.1.2
远程机器:192.168.1.3
以下方式适用于复制单个文本文件和压缩包文件
a.将本地机器/tmp/local.txt复制到远程服务器的/root目录下
~]# scp /tmp/local.txt root@192.168.1.3:/root
输入密码即可
b.将远程机器/tmp/remote.txt复制到本地服务器/root目录下
~]# scp root@192.168.1.3:/tmp/local.txt /root
输入密码即可
以下方式适用于要复制目录
a.将本地机器/tmp目录 复制到远程服务器的/root目录下
~]# scp -r /tmp root@192.168.1.3:/root
输入密码即可
b.将本地机器/tmp目录(保留原文件的修改时间,访问时间和访问权限)复制到远程服务器的/root目录下
~]# scp -rp /tmp root@192.168.1.3:/root
注意:远程复制目录一般更推荐采用打包然后复制的方式
以下方式适用于对方服务器端口不是22的情况(这里端口指的是ssh端口)
将本地机器/tmp/local.txt复制到远程服务器(端口为63225)的/root目录下
~]# scp -P 63225 /tmp/local.txt root@192.168.1.3:/root
二、rsync
1.简介
实现两端主机的文件同步(rsync软件很强大,这里我们只是介绍其文件复制功能)
2.软件安装(双方服务器都需要安装)
~]# yum install rsync -y
3.使用场景
本地机器:192.168.1.2
远程机器:192.168.1.3
rsync可以实现增量复制(适用于多个文件的场景),所以我们这里只是介绍目录同步
将本地机器的/var/www/html/www.a.com同步到远程机器的/var/www/html目录下
~]# rsync -avzP /var/www/html/www.a.com root@192.168.1.3:/var/www/html
输入密码即可
-a --archive : 归档模式,表示递归传输并保持文件属性。等同于"-rtopgDl"。
-z : 传输时进行压缩提高效率。
-p --perms: 保持perms属性(权限,不包括特殊权限)
-v : 显示详细信息
三.screen
1.简介
在远程服务器难免会因为网络原因,导致复制中断,我们使用screen解决此类问题
2.安装软件(在执行命令的机器安装即可)
~]# yum install screen -y
3.使用
~]# screen
然后执行复制命令即可
4.如何查看是否复制完成
如果你使用的是scp
~]# ps -ef |grep scp |grep -v grep
如果你使用的是rsync
~]# ps -ef |grep rsync |grep -v grep
如果传输完成即没有结果输出