Rsync实现服务器文件定时同步备份

来源:互联网 发布:洞洞板画图软件 编辑:程序博客网 时间:2024/05/16 13:56

1.1.           Rsync

1.1.1. Linux服务端

Ø 下载并安装

cd /home/software

wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz

tar -zxvf rsync-3.1.2.tar.gz

cd rsync-3.1.2

./configure --prefix=/usr/local/rsync

make

make install

 

Ø 配置rsync-server(rsyncd.conf、rsyncd.motd、rsyncd.pid)

# 配置rsyncd.conf服务启动配置

touch /usr/local/rsync/rsyncd.conf

vim /usr/local/rsyncd.conf

### 全局参数 ###

port=873

motd file=/usr/local/rsync/rsyncd.motd

log file=/usr/log/rsyncd.log

pid file=/var/run/rsyncd.pid

### 模块参数 ###

[hometest]

path=/home/test

use chroot=true

uid=0

gid=0

read only=false

exclude=/readme.txt /runtime

auth users=markdeng

secrets file = /usr/local/rsync/rsyncd.secrets

 

#  配置rsyncd.secrets服务端用户、密码(用户为系统已有用户)

touch /usr/local/rsync/rsyncd.secrets  # 此文件权限必须设置:600

vim /usr/local/rsync/rsyncd.secrets

user:password

chmod 600 /usr/local/rsync/rsyncd.secrets

 

# 配置连接服务时展示的信息

touch /usr/local/rsync/rsyncd.motd

vim /usr/local/rsync/rsyncd.motd

welcome use rsync service

 

#启动服务端

/usr/bin/rsyncd --daemon --config=/usr/local/rsync/rsyncd.conf

#查看进程

ps –ef | grep rsync

 

 

1.1.2. Windows客户端

Ø 下载安装:

下载并安装4.0.5版本windows客户端。

Ø 同步语法:

1.        rsync [OPTION]... SRC [SRC]...[USER@]HOST:DEST

2.        rsync [OPTION]...[USER@]HOST:SRC DEST

3.        rsync [OPTION]... SRC [SRC]...DEST

4.        rsync [OPTION]...[USER@]HOST::SRC [DEST]

5.        rsync [OPTION]... SRC [SRC]...[USER@]HOST::DEST

6.        rsync [OPTION]...rsync://[USER@]HOST[:PORT]/SRC [DEST]

Ø 六种工作模式:

1.        拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。

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

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

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

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

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

 

Ø rsync中的参数:

u -r 是递归

u -l 是链接文件,意思是拷贝链接文件;

u -p 表示保持文件原有权限;

u -t 保持文件原有时间;

u -g 保持文件原有用户组;

u -o 保持文件原有属主;

u -D 相当于块设备文件;

u -z 传输时压缩;

u -P 传输进度;

u -v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;

u -e ssh的参数建立起加密的连接。

u -u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时

u --progress是指显示出详细的进度情况

u --delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致

u --password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

 

1.1.3. Windows客户端同步服务端备份文件

Ø 环境条件:

服务端备份文件夹:/appdata/bak/

服务端模块名称: hometest

服务端使用的用户:root:123456

客户端存储路径:d:\Backup_Server\rsync

 

Ø 操作指令:

#创建root用户的密码文件

echo password > d: \Backup_Server\rsync.pwd

#修改密码文件权限为600(部分环境需要)

“C:\Program Files (x86)\cwRsync\bin\chmod”  600  d:\Backup_Server\rsync.pwd

#同步指令

"C:\Program Files (x86)\cwRsync\bin\rsync" --port=873-vzrtopg --progress --delete root@101.200.156.74::hometest/cygdrive/d/Backup_Server/rsync--password-file=/cygdrive/d/Backup_Server/rsync.pwd

 

#若出现以下错误,则再新建一个文本文档另外存储密码,在同步指令上输入该文件作为密码

echo password > d: \Backup_Server\root.pwd.txt

"C:\Program Files (x86)\cwRsync\bin\rsync" --port=873-vzrtopg --progress --delete root@101.200.156.74::hometest/cygdrive/d/Backup_Server/rsync --password-file=/cygdrive/d/Backup_Server/rsync.pwd< d: \Backup_Server\root.pwd.txt

 

Ø 设置定时器:

通过windows计划任务设置周期定时执行。上面的同步指令脚本

 

0 0
原创粉丝点击