rsync 备份 Anny

Refer to http://jianlee.ylinux.org/Computer/Server/rsync.html

简单使用

单机使用

同步目录 A 到目录B,以 A 目录为基准,如果 A 目录没有,B 目录有的会删除。 A 目录有, B 目录没有的,就从 A 拷贝到 B 。示例 ("/data/projects/crepo" 是 A,"./" 是 B):

$ rsync -av /data/projects/crepo ./

注意!如果带目录 "/data/projects/crepo" 带 "/" 后缀,就备份其内容到 "./" 下了,现在是备份 "/data/projects/crepo" 目录到 "./" 下。

使用 SSH 远程备份

需要远程主机开启 SSHD

#安装openssh-server,可以通过synaptic安装,也可以用apt-get安装,ssh 默认端口号22,查看是否启动 netstat -an|grep 22 或者rpm -qa|grep openssh,若没有启动,可以service sshd start

rsync -avz jianlee@172.16.70.2:/path/to/远程主机上的目录A /path/to/本地目录B

这样 A 就同步到 B 了。 "jianlee@172.16.70.2:/path/to/远程主机上的目录 A" 是 ssh 的格式。

注意,如果 "/path/to/远程主机上的目录A" 的格式以 "/" 结尾,就可以避免备 份到本地目录为 "/path/to/本地目录B/远程主机上的目录A" 形式。

rsync -avz --exclude=.git/ jianlee@172.16.70.2:/home/jianlee/work/tat/ tat

匿名 rsync 服务器

本示例要搭建一个匿名 rsync 服务(指定 ip 访问),然后在指定的机器上运行 rsync 服务:

创建 rsync 服务

很简单,创建配置文件,启动 rsync 服务即可。

我在 172.16.70.33 上创建一个 rsync 服务器,提供一个名为 "BuildSrv" 的备 份对象

创建 rsync 配置文件

编辑 /etc/rsyncd.conf 文件,如不存在请创建:

# 全局设定
# motd file 指定客户端访问显示的欢迎信息
motd file = /etc/rsyncd.motd
# read only 禁止客户端写服务器
read only = yes
list = yes
uid = root
gid = root
#hosts allow = 172.16.70.28
#hosts deny = 172.16.0.0/16
max connections = 2
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock

# 要备份的资源设置,[]里面是 module 名字,备份时指定它就可以确定要备份的对象
[BuildSrv]
comment = Build SRV
# path 是示例里要备份的目录
path = /data/lab/obs/src/

说明:

  1. "hosts allow" 可以指定可访问此 rsync 服务的机器 ip,"hosts deny"意思也很明显
  2. "log file","pid file","lock file"是通常的做法

启动 rsync 服务

下面介绍 "daemon" 和 "xinetd" 两种方式运行 rsync 服务器。

daemon 运行

只要运行下面命令即可启动 rsync 服务:

/usr/bin/rsync --daemon
xinetd (超级服务器)

也可以使用这种方式,编辑 /etc/xinetd.d/rsync 为如下:

service rsync
{
        disable = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}

启动 xinetd 服务:

/etc/init.d/xinetd start

在客户端使用 rsync 命令执行备份

注意,下面用上面创建的 "BuildSrv" module 指定要备份的对象:

$ rsync -avz --progress --delete 172.16.70.33::BuildSrv build_backup

注意, 172.16.70.33 和 "BuildSrv" 之间是 "::" (两个冒号) ,这样 rsync 自动使用 873 (rsync 服务默认端口) 来备份。"build_backup" 是备份到本地的 目录。

上面命令还复杂,可以更简单使用:

$ rsync -avz 172.16.70.33::BuildSrv build_bak2
原文地址:https://www.cnblogs.com/limei/p/2184096.html