Rsyncバックアップ同期データツール
23846 ワード
Rsync is a fast and extraordinarily versatile file copying tool.
Rsyncはオープンソースで、迅速で、多機能で、全量と増分のローカルまたはリモートのデータ同期、バックアップを実現する優れたツールです.
Rsyncの機能:
1、リンクファイル、デバイスなどの特殊ファイルのコピーをサポートする.
2、指定されたファイルやディレクトリの同期を排除する機能があり、パッケージコマンドtarの--exclude=PATTERN排除機能に相当する.
3、元のファイルやディレクトリの権限、時間、ソフト・ハード・リンク、所有者、グループなどのすべての属性を維持することができます.
4.変更されたファイルのみを同期するインクリメンタル同期を実現することができる.
5、rcp、rsh、sshなどの方法でファイルを転送することができます.(rsync自体はファイルを暗号化しません).
6、socket(プロセス方式)でファイルとデータ(すなわちクライアントとサービス側)を伝送することができる.
7、匿名の認証(システムユーザーを必要としない)のプロセスモード伝送をサポートし、データのバックアップとミラーリングを容易かつ安全に行うことができる.
Rsyncインストール:
一般的なLinuxシステムにはrsyncツールが付属しています
Rsync構文:
Local: rsync [OPTION...] SRC... [DEST]
Access via remote shell: Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST] Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon: Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST] rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST] Push: rsync [OPTION...] SRC... [USER@]HOST::DEST rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
構文の説明:
Local:ローカル
[OPTION]:rsyncのパラメータ
SRC:ソースデータ所在地ディレクトリ
[DEST]またはDEST:宛先格納データ所在地ディレクトリ
Pull:ローカルでrsyncを介してリモートホストのデータをローカルホストに引き寄せます.
Push:ローカルでrsyncを介してローカルデータをリモートホストにプッシュします.
[:PORT]:ポート
今回rsyncサーバを作成するとsocket方式でデータを転送します
A、サービス側
1、まずサービス側にrsyncプロファイルを作成し、rsyncには独自のプロファイルがないので、手作業で作成する必要があります.
プロファイルの場所:/etc/rsyncd.conf
パラメータ構成は
rsyncd.conf — configuration file for rsync in daemon mode
2、ユーザーwwwの作成及びバックアップディレクトリの構成権限
3、匿名ユーザーとパスワードファイルの作成
4、パスワードファイルの変更権限
5、Rsyncサービスを起動する
B、クライアント
1、まず匿名用のパスワードファイルを作成する
2、パスワードファイルの変更権限
C、テスト
サーババックアップディレクトリのステータス
クライアントがサービス側にデータをプッシュ
サービス・エンドの表示
D、Rsyncサービス起動スクリプトの構成
スクリプトは/etc/initに格納.d/rsyncd
テスト
Rsyncはオープンソースで、迅速で、多機能で、全量と増分のローカルまたはリモートのデータ同期、バックアップを実現する優れたツールです.
Rsyncの機能:
1、リンクファイル、デバイスなどの特殊ファイルのコピーをサポートする.
2、指定されたファイルやディレクトリの同期を排除する機能があり、パッケージコマンドtarの--exclude=PATTERN排除機能に相当する.
3、元のファイルやディレクトリの権限、時間、ソフト・ハード・リンク、所有者、グループなどのすべての属性を維持することができます.
4.変更されたファイルのみを同期するインクリメンタル同期を実現することができる.
5、rcp、rsh、sshなどの方法でファイルを転送することができます.(rsync自体はファイルを暗号化しません).
6、socket(プロセス方式)でファイルとデータ(すなわちクライアントとサービス側)を伝送することができる.
7、匿名の認証(システムユーザーを必要としない)のプロセスモード伝送をサポートし、データのバックアップとミラーリングを容易かつ安全に行うことができる.
Rsyncインストール:
一般的なLinuxシステムにはrsyncツールが付属しています
[root@backup shell]# rpm -qa rsync
rsync-3.0.6-12.el6.x86_64
Rsync構文:
Local: rsync [OPTION...] SRC... [DEST]
Access via remote shell: Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST] Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon: Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST] rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST] Push: rsync [OPTION...] SRC... [USER@]HOST::DEST rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
構文の説明:
Local:ローカル
[OPTION]:rsyncのパラメータ
SRC:ソースデータ所在地ディレクトリ
[DEST]またはDEST:宛先格納データ所在地ディレクトリ
Pull:ローカルでrsyncを介してリモートホストのデータをローカルホストに引き寄せます.
Push:ローカルでrsyncを介してローカルデータをリモートホストにプッシュします.
[:PORT]:ポート
今回rsyncサーバを作成するとsocket方式でデータを転送します
A、サービス側
1、まずサービス側にrsyncプロファイルを作成し、rsyncには独自のプロファイルがないので、手作業で作成する必要があります.
プロファイルの場所:/etc/rsyncd.conf
パラメータ構成は
[root@backup shell]# man rsyncd.conf
rsyncd.conf — configuration file for rsync in daemon mode
#rsync_config________start
##-------------CopyRight-------------
## Name:rsync configure
## Version Number:1.00
## Type:text
## Language:text
## Date:2018-05-09
## Author:sandy
## QQ:442656067
## Email:eeexu123@163.com
## Blog:https://www.cnblogs.com/eeexu123/
##rsync.conf start##
uid = www // UID
gid = www // GID
use chroot = no //
max connections = 200 //
timeout = 300 //
pid file = /var/run/rsyncd.pid //rsync pid
lock file = /var/run/rsync.lock //
log file = /var/log/rsyncd.log //rsync
ignore errors //
read only = false //
list = false //
hosts allow = 172.16.1.0/24 //
#hosts deny = 0.0.0.0/32 //
auth users = rsync_backup //
secrets file = /etc/rsync.password //
[backup] //
path = /backup
[nfsbackup]
path = /data
#rsync_config________end
2、ユーザーwwwの作成及びバックアップディレクトリの構成権限
1 [root@backup ~]# useradd www
2 [root@backup ~]# id www
3 uid=893(www) gid=893(www) =893(www)
1 [root@backup ~]# chown -R www.www /backup/
2 [root@backup ~]# ll /backup/
3 4
4 -rw-r--r--. 1 www www 1134 3 2 15:07 rsyncd
3、匿名ユーザーとパスワードファイルの作成
1 [root@backup ~]# cat /etc/rsync.password
2 rsync_backup:oldboy
4、パスワードファイルの変更権限
1 [root@backup ~]# chmod 600 /etc/rsync.password
2 [root@backup ~]# ll /etc/rsync.password
3 -rw-------. 1 root root 20 2 24 13:33 /etc/rsync.password
5、Rsyncサービスを起動する
1 [root@backup ~]# rsync --daemon
B、クライアント
1、まず匿名用のパスワードファイルを作成する
1 [root@nginx ~]# cat /etc/rsync.password
2 oldboy
2、パスワードファイルの変更権限
1 [root@nginx ~]# chmod 600 /etc/rsync.password
2 [root@nginx ~]# ll /etc/rsync.password
3 -rw-------. 1 root root 7 5 11 17:42 /etc/rsync.password
C、テスト
サーババックアップディレクトリのステータス
[root@backup ~]# ll /backup/
0
クライアントがサービス側にデータをプッシュ
1 [root@nginx tools]# rsync -avz /root/tools/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
2 sending incremental file list
3 ./
4 zabbix-agent-3.0.3-1.el6.x86_64.rpm
5
6 sent 327071 bytes received 30 bytes 654202.00 bytes/sec
7 total size is 326848 speedup is 1.00
サービス・エンドの表示
1 [root@backup ~]# ll /backup/
2 320
3 -rw-r--r-- 1 www www 326848 5 31 2016 zabbix-agent-3.0.3-1.el6.x86_64.rpm
D、Rsyncサービス起動スクリプトの構成
スクリプトは/etc/initに格納.d/rsyncd
1 #!/bin/bash
2
3 #-------------CopyRight-------------
4 # Name:Rsync start or stop
5 # Version Number:1.00
6 # Type:sh
7 # Language:bash shell
8 # Date:2018-05-09
9 # Author:sandy
10 # QQ:442656067
11 # Email:eeexu123@163.com
12 # Blog:https://www.cnblogs.com/eeexu123/
13
14 # rsyncd Start or Stop the rsync server daemon
15 #
16 # chkconfig: 2345 53 23 // chkconfig
17 # description: rysnc is backup server
18
19 pid_file=/var/run/rsyncd.pid
20 RETVAL=0
21
22 #source functions libary
23 . /etc/init.d/functions
24
25 #check permission
26 [ -x /etc/init.d/rsyncd ]||{
27 echo "rsyncd is permission denied"
28 exit 1
29 }
30
31 #start rsync
32 start(){
33 if [ $UID -ne 0 ];then
34 echo "User has insufficient privilege."
35 exit 2
36 fi
37
38 if [ -e $pid_file ];then
39 echo "Rsync is running"
40 exit 3
41 else
42 /usr/bin/rsync --daemon
43 RETVAL=$?
44 if [ $RETVAL -eq 0 ];then
45 action "Rsync start" /bin/true
46 else
47 action "Rsync start" /bin/false
48 fi
49 fi
50 return $RETVAL
51 }
52
53 #stop rsync
54 stop(){
55 if [ $UID -ne 0 ];then
56 echo "User has insufficient privilege."
57 exit 2
58 fi
59
60 if [ ! -e $pid_file ];then
61 echo "Rsync is stoped"
62 exit 3
63 else
64 killproc -p $pid_file
65 RETVAL=$?
66 if [ $RETVAL -eq 0 ];then
67 action "Rsync stop" /bin/true
68 else
69 action "Rsync stop" /bin/false
70 fi
71 fi
72 return $RETVAL
73 }
74
75 #restart rsync
76 restart(){
77 if [ $UID -ne 0 ];then
78 echo "User has insufficient privilege."
79 exit 2
80 fi
81
82 stop
83 sleep 2
84 start
85 return $RETVAL
86 }
87
88 case "$1" in
89 start)
90 start
91 RETVAL=$?
92 ;;
93 stop)
94 stop
95 RETVAL=$?
96 ;;
97 restart)
98 restart
99 RETVAL=$?
100 ;;
101 *)
102 echo "USAGE:$0 {start|stop|restart}"
103 esac
104 exit $RETVAL
テスト
1 [root@backup ~]# netstat -tulnp|grep rsync
2 tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 6740/rsync
3 tcp 0 0 :::873 :::* LISTEN 6740/rsync
4 [root@backup ~]# /etc/init.d/rsyncd stop
5 Rsync stop [ ]
6 [root@backup ~]# netstat -tulnp|grep rsync
7 [root@backup ~]# /etc/init.d/rsyncd start
8 Rsync start [ ]
9 [root@backup ~]# netstat -tulnp|grep rsync
10 tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 15170/rsync
11 tcp 0 0 :::873 :::* LISTEN 15170/rsync