linux同步文件命令 linux 同步文件

linux rsync怎么同步文件

一、rsync简介

我们提供的服务有:网站设计制作、网站设计、微信公众号开发、网站优化、网站认证、汕尾ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的汕尾网站制作公司

用于替代rcp的一个工具,rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时rsync

server会开一个873端口,等待客户端去连接,连接时,rsync

server会检查口令是否相符,若通过口令查核,则可以通过进行文件传输,第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份;

二、rsync常用参数

-v,--verbose 详细模式输出;

-a,--archive 归档模式,表示以递归的方式传输文件,并保持所有文件属性不变,相当于使用了组合参数-rlptgoD;

-r, --recursive 对子目录以递归模式处理;

-l, --links 保留软链结;

-p, --perms 保持文件权限;

-t, --times 保持文件时间信息;

-g, --group 保持文件属组信息;

-o, --owner 保持文件属主信息;

-D, --devices 保持设备文件信息;

-H, --hard-links 保留硬链结;

-S, --sparse 对稀疏文件进行特殊处理以节省DST的 空间;

--delete 删除那些DST中SRC没有的文件;

-z, --compress 对备份的文件在传输时进行压缩处理;

三、rsync的六种不同的工作模式;

1)拷贝本地文件;

当SRC和DES路径信息中不包含冒号":"分隔符时,就启用这种工作模式:

[root@cmmailapp1 /]# rsync -avSH /home/coremail/ /cmbak/

2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器,当DST路径地址包括冒号":"分隔符时启动该模式;

[root@cmmailapp1 /]# rsync -avSH /home/coremail/ 192.168.11.12:/home/coremail/

3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器,当SRC地址路径包括冒号":"分隔符时启动该模式;

[root@cmmailapp2 /]# rsync -avSH 192.168.11.11:/home/coremail/ /home/coremail/

4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。

如:rsync -av root@172.16.78.192::www /databack

5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。

如:rsync -av /databack root@172.16.78.192::www

6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。

如:rsync -v rsync://192.168.11.11/data

四、rsync服务端的配置;

环境:192.168.11.11为生产机;192.168.11.12为备份机;

那么需要192.168.11.11需要作为rsync的client;

192.168.11.12作为rsync的service端;

1、192.168.11.12_service端的配置;

1)[root@cmmailapp2 data]# touch /etc/rsyncd.conf //此文件为rsync的主配置问题,默认不存在需要手动创建;

2)定义同步的配置;

[root@cmmailapp2 data]# cat /etc/rsyncd.conf

[data]

path = /data/

auth users = coremail

uid = root

gid = root

secrets file = /etc/rsyncd.secrets

read only = no

[mysql]

Path = /home/coremail/var/mysql

auth users = coremail

uid = root

gid = root

secrets file = /etc/rsyncd.secrets

read only = no

[cmxt]

Path = /home/coremail/

auth users = coremail

uid = root

gid = root

secrets file = /etc/rsyncd.secrets

read only = no

3)定义密码文件/etc/rsyncd.secrets

[root@cmmailapp2 data]# cat /etc/rsyncd.secrets

coremail:coremail

4)启动rsync启动服务

[root@cmmailapp2 data]# cat /etc/xinetd.d/rsync

# default: off

# description: The rsync server is a good addition to an ftp server, as it \

# allows crc checksumming etc.

service rsync

{

disable = yes //需要修改为no;

socket_type = stream

wait = no

user = root

server = /usr/bin/rsync

server_args = --daemon

log_on_failure += USERID

}

[root@cmmailapp2 data]# chkconfig --level 2345 rsync on

[root@cmmailapp2 data]# chkconfig rsync on

[root@cmmailapp2 data]# chkconfig --level 2345 xinetd on

[root@cmmailapp2 data]# service xinetd restart

Stopping xinetd: [ OK ]

Starting xinetd: [ OK ]

2、192.168.11.11_client端的配置;

[root@cmmailapp1 /]# cat /etc/rsyncd.secrets

coremail

[root@cmmailapp1 /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/coremail@192.168.11.12::data

[root@cmmailapp1 /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/coremail@192.168.11.12::mysql

[root@cmmailapp1 /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/coremail@192.168.11.12::cmxt

五、定义定时自行rsync同步,指定同步的日志所在的路径/var/log/rsync/下;

[root@cmmailapp1 log]# cat /root/rsync.sh

DATE=`date +%Y%m%d%H%M`

rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::data/var/log/rsync.date.$DATE

rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::mysql/var/log/rsync.mysql.$DATE

rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::cmxt/var/log/rsync.cmxt.$DATE

chmod u+x /root/rsync.sh

[root@cmmailapp1 log]# crontab -l

0 3 * * * /root/rsync.sh

执行时候的日子记录文件:

[root@cmmailapp1 log]# ls |grep 'rsync'

rsync.cmxt.201110180915

rsync.date.201110180915

rsync.mysql.201110180915

linux之间传文件用什么工具好呢?

1. 前言

linux之间传文件命令用什么命令?本文介绍一种最常用,也是功能强大的文件同步和传输工具Rsync,本文提供详细傻瓜式教程。

在本教程中,我们将通过实际使用案例和最常见的rsync选项的详细说明向您展示如何使用rsync。

本教程适用于Ubuntu系统、Linux Mint系统、Deepin深度Linux系统、Fedora系统、Debian系统、Elementary OS系统、OpenSUSE系统、CentOS系统、RHEL系统,Arch Linux等等GNU Linux发行版。

2. `rsync`介绍

Rsync是一个快速且通用的命令行实用程序,它可以使Windows与Linux之间,Linux与Linux之间传文件或者Linux与MAC OS之间传文件。或从Linux本地文件系统到远程Rsync守护进程之间同步文件和文件夹。它只传输源和目标之间的差异,从而提供快速增量文件传输。

Rsync可以用于镜像数据、增量备份、在Linux系统之间传文件,也可以用于Linux与Windows之间传输文件,还可以替代日常使用的scp、sftp和cp命令,他们一般也用于Linux之间传文件或者Linux与MAC OS之间传文件。

3. 如何安装`Rsync`

rsync实用程序预装在大多数Linux发行版和macOS上。你可以输入以下命令,检查你的系统是否已安装:

查看Rsync版本的输出结果:

如果您的系统上没有安装rsync,您可以使用发行版的包管理器轻松地安装它。

在Ubuntu 或者Debian体系的Linux系统上安装rsync

在CentOS 或者Fedora系统上安装rsync

4. Rsync命令使用语法

在讨论如何使用rsync命令之前,让我们先回顾一下基本语法。

rsync实用程序表达式采用以下形式:

rsync提供了许多选项来控制其行为和功能。最广泛使用的选项是:

-a, --archive, 归档模式, 相当于 -rlptgoD。这个选项告诉rsync递归地同步目录、传输特殊设备和块设备、保存符号链接、修改时间、组、所有权和权限。

-z, --compress. 这个选项将强制rsync在传送文件到目标计算机时压缩数据。仅当到远程计算机的连接很慢时才使用此选项。

-P, 相当于--partial --progress。使用此选项时,rsync将在传输期间显示一个进度条,并保留部分传输的文件。当通过缓慢或不稳定的网络连接传输大文件时,它非常有用。

--delete. 使用此选项时,rsync将从目标位置删除无关文件。它对镜像很有用。

-q, --quiet。如果希望禁用非错误消息,请使用此选项。

-e. 此选项允许您选择不同的远程shell。默认情况下,rsync被配置为使用ssh。

5. 使用Rsync最基本的功能使Linux之间传输文件

要将一个文件从一个本地位置复制到另一个本地位置,可以运行以下命令:

运行该命令的用户必须具有目标位置上的读权限和目标上的写权限。

从目标位置省略文件名将复制具有当前名称的文件。如果您想将文件保存在另一个名称下,请在目标部件上指定新名称:

比如复制filename.zip到目标目录并重新把文件名修改为newfilename.zip

在下面的例子中,我们正在创建一个本地备份我们的网站文件:

如果目标目录不存在,rsync将创建它。

值得一提的是,rsync对后面带有斜杠/的源目录提供了不同的处理。如果在源目录上添加一个尾随斜杠,它将只将目录的内容复制到目标目录。当后面的斜杠被省略时,rsync将把源目录复制到目标目录中。

6. 如何使用Rsync与远程服务器同步文件(包括上传下载)

当使用rsync进行远程传输时,必须同时安装在源机器和目标机器上。rsync的新版本被配置为使用SSH作为默认远程shell。

在下面的例子中,我们将一个目录从本地转移到远程机器:

如果你需要配置2台Linux之间免密码登录,请查看以下教程:

如果你想把数据从远程传输到本地机器,你需要使用远程位置作为一个源:

如果远程主机上的SSH监听的端口不是默认的22端口,那么可以使用-e选项指定端口:

比如远程服务器的SSH端口被修改为1234

当传输大量数据时,建议在屏幕会话中运行rsync命令或使用-P选项:

7. 使用Rsync传送或同步文件时,排除某些文件或者目录

当使用Rsync排除文件或目录时,需要使用它们到源位置的相对路径。

有两个选项可以排除文件和目录。第一个选项是使用--exclude参数,并在命令行中指定要排除的文件和目录。

在下面的例子中,我们排除了位于src_directory中的123和abc目录:

第二个选项是使用--exclude-from参数,并指定要在文件中排除的文件和目录。

vi exclude-file.txt

加入需要排除的文件,比如文件file1.c,目录zcwyou:

8. 总结

在本教程中,您学习了如何使用Rsync在多台Linux之间传输、复制或同步文件和目录。在Rsync用户手册页面上有更多关于Rsync的内容。

如果你有任何问题,请留下你的意见。

Linux xsync脚本——同步文件

在/usr/local/bin 目录下创建 xsync 文件,向里面添加:

最后chmod 777 xsync给文件添加执行权限即可。

使用xsync filename就能将filename分发到集群中的各个节点中。


当前标题:linux同步文件命令 linux 同步文件
地址分享:http://cdiso.cn/article/doipccc.html

其他资讯