两台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
如果传输完成即没有结果输出

上一篇:Linux用户和用户组管理总结


下一篇:两台Linux主机之间文件的复制