rsyncのデータ同期、バックアップ
タイマー:rsyncの+ cronのスケジュールされたタスク
をリアルタイムで:rsyncを+ sersync(inotifyの)
https://www.samba.org/ftp/rsync/rsync.html公式文書
- リモートコピーとのssh scpコマンド(暗号化されたコピー)
- ローカルコピーのCP
- 機能RMを削除します。
rsyncのの追加機能のいくつかは:rsyncの追加機能
- などのリンク、機器、などの特殊なコピー文書を、サポートするためのリンク、デバイス、所有者、グループ、および権限をコピーするためのサポート
- 除外と除外-から除外パッケージtarコマンドに相当し、指定したファイルまたはディレクトリの同期機能を除外することができますGNUのtarと同様のオプション、
- CVSはCVSが無視するのと同じファイルを無視するためのモードを除外します
- SSHでSSHまたはrshを含む、任意の透明リモートシェルを使用することができ、RSH暗号化送信(暗号化なしのrsync)
- スーパーユーザー権限を必要としません。
- 待ち時間のコストを最小限に抑えるために、ファイル転送のパイプライン
- 匿名または認証モード送信処理のために、匿名または認証のrsyncデーモン(ミラーリングのための理想的な)をサポートするためのサポート
rsyncのは、ネットワークサービス(ポート、ソケット)することができ
rsyncコマンドをクライアントにコマンドです
rsyncの3つの動作モード
- 第1の動作モード:ローカル
rsync -avz /root/aaa /tmp/ --->cp
rsync -avz --delete /root/aaa/ /tmp/ --->rm
- 動作の第二モード:一般的にSSHでリモートシェル、転送キーキーレス、合成正規タスク
rsync -avzP -e 'ssh -p 22' /opt/ [email protected]:/tmp/ push
rsync -avzP -e "ssh -p 22" [email protected]:/tmp/ /opt/ 带斜线代表获取的是tmp下的文件 pull
rsync -avzP -e "ssh -p 22" [email protected]:/tmp /opt/ 不带斜线代表获取的是tmp这个目录 pull
- 第3の動作モード:ネットワークはrsyncのデーモン、暗号化のパフォーマンス損失VPN(PPTP、OpenVPNの、IPsec)を必要としません。
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
主な構文:
1、同等の-vzrtopgDl -avzは、そのままの属性の同期、ファイルおよびディレクトリの中で述べています。
2、-P同期表示処理、--progressに置き換えることができる
。3、'22 -eは、SSH -p」は、SSHを介してチャネルデータ伝送を示し、-p 22を省略してもよい
4、ルート@ 192.168.105.135:/ TMP / リモートホストシステムのユーザ、アドレス、パス
5、/ opt局所経路
6は、ファイルの内容を同期させる、これらの変化のいくつかがあり、第1の比較の再同期
パラメータのオプション | 説明 |
---|---|
-v --verbose | 詳細出力モード、及び情報の送信中に進捗 |
-z --compress | 伝送の伝送効率を向上させるための圧縮 - 圧縮レベルを=圧縮NUMレベルがあってもよいです |
-a --archive | アーカイブモードでは、再帰的にファイルを配布し、すべてのドキュメントのプロパティを保持し、-rlptgoDと同等の表現しました |
-r --recursive | すべてのサブディレクトリを再帰的モード、そのディレクトリも同様に、送信されています |
-t --times | 安定した時間情報を維持 |
-o --owner | ファイルの所有者情報を保管してください |
-p --perms | ファイルのアクセス権を維持するために、 |
-g --group | ファイルを保管してください情報の集合であり、 |
-P --progress | そのような送信のタイムスケジュールなどのプロセスの同期と表示情報 |
-D --devices | デバイスファイルの情報を保管してください |
-l --links | 予約済みソフトリンク |
--delete | ノー差同期(危険) |
--exclude | 1つのファイルを除外する {A、B}、{a..d複数のファイルを除外 } --exclude-から除外する複数のファイル |
--partial | HTTP大きなファイル |
--bwlimit | --bwlimit = 100制限速度 |
エンタープライズアプリケーションのシナリオ:
- 2つのサーバー間のデータ同期
- バックアップサーバへのすべてのクライアント・サーバ・データの同期化
- inotifyを行うリアルタイムのデータ同期にrsync + inotifyをかsersyncと組み合わせrsyncの機能
生産シナリオクラスタアーキテクチャサーバのバックアップ・ソリューション:
cronの+のrsync全体のネットワークサーバのデータバックアップソリューションが提案し、実装を担当
- 会社と混乱のリーダーシップのためのネットワーク全体のデータのバックアップ、重要なデータをバックアップするソリューションを提案
- ローカルバックアップでパッケージ化して、バックアップデータを統一された固定ストレージサーバ、ストレージサーバにして、上のスクリプトによるネットワーク全体へのrsyncはinotifyアプリケーションと組み合わせるとバックアップアラーム管理者の結果をチェックします
- IDCの部屋には、定期的にエンジンルームの火災や地震の問題は、データの損失につながる防ぐために、企業内の異なるサーバー上にデータをバックアップします
rsyncの利点:
1、増分バックアップ、支持ソケット(デーモン)、集中バックアップ(スライド支持、クライアント参照されている)
も、リモートシェルモードチャネル暗号化することができる、2(SSH)送信は、ソケット(デーモン)が送信を暗号化する必要があり、 IPSec VPNのサービスまたはサービスの使用
rsyncの短所:
- 長い時間よりも同期の小さなファイルの数が多い、時々、rsyncのプロセスが終了される場合があり
- ない完全な同期が完了している間、それは隠しファイルになり、10G、このような大きなファイルは、時には間違った、ターミナルに行く、大きなファイルを同期させ、送信はHTTPおよびその他のパラメータによって達成することができます。リモートコピーは、使い捨てSCPかもしれ
rsyncのバックアップ戦闘
ステップrsyncサーバの設定
1、サーバを設定し、現在のバージョン番号とインストールパッケージのrsyncを見ます
rsync --version rsync-3.0.6-12.el6.x86_64
2、Vimはプロファイルを追加/etc/rsyncd.conf
rsyncの設定ファイル公式サイト:https://rsync.samba.org/ftp/rsync/rsyncd.conf.html
#配置文件详解,更多参数查看man rsyncd.conf
#Rsync server
#created by hejian 19:50 2019-3-17
##rsyncd.conf start##
uid = rsync //客户端具备的权限(不存在,需要创建)
gid = rsync
use chroot = no //安全相关
max connections = 2000 //客户端连接数
timeout = 600 //超时
pid file = /var/run/rsyncd.pid #进程ID文件
lock file = /var/run/rsync.lock #锁文件
log file = /var/log/rsyncd.log #日志文件
ignore errors #忽略错误
read only = false #可读写
list = false #不可以远程列表
hosts allow = 192.168.105.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup //虚拟用户
secrets file = /etc/rsync.password //存放用户账号密码的文件
#####################################
[backup] //模块调用
#comment = backup by hejian 19:50 2019-3-17
path = /backup //共享目录
[hejian]
path = /hejian
3、rsyncのユーザーが作成し、共有ディレクトリ/バックアップ、およびディレクトリへのアクセス権を与えます
useradd rsync -s /sbin/nologin -M
id rsync
mkdir /backup
chown -R rsync.rsync /backup/
4、パスワード・ファイルを作成します
echo "rsync_backup:123" > /etc/rsync.password
chmod 600 /etc/rsync.password
5、rsyncのサービスを開始し、表示
rsync --daemon
lsof -i :873
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 1647 root 3u IPv4 12479 0t0 TCP *:rsync (LISTEN)
rsync 1647 root 5u IPv6 12480 0t0 TCP *:rsync (LISTEN)
netstat -tunlp|grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1647/rsync
tcp 0 0 :::873 :::* LISTEN 1647/rsync
ss -tunlp|grep rsync
tcp LISTEN 0 5 :::873 :::* users:(("rsync",1647,5))
tcp LISTEN 0 5 *:873 *:* users:(("rsync",1647,3))
ps -ef|grep rsync
root 1647 1 0 20:11 ? 00:00:00 rsync --daemon
root 1660 1505 0 20:12 pts/0 00:00:00 grep --color=auto rsync
6、スタートからの起動を追加します
echo "rsync --daemon" >>/etc/rc.local
cat /etc/rc.local
rsyncのクライアント構成ステップ
1、パスワードファイルを作成し、権限を変更
echo "123" > /etc/rsync.password (与服务端密码保持一致,免密登陆)
chmod 600 /etc/rsync.password(与服务端密码权限保持一致)
ll /etc/rsync.password
2、送信ファイルのrsync(プッシュまたはプルがクライアントから操作されます)
(push)rsync -avz /backup/ [email protected]::backup/ --password-file=/etc/rsync.password
(pull)rsync -avz rsync://[email protected]:873/backup/ /backup/ --password-file=/etc/rsync.password
echo $? = 0 就代表程序运行是正确的
プッシュ除外
rsync -avz --exclude=a /root/test/ [email protected]::backup/ --password-file=/etc/rsync.password
トラブルシューティング
#Rsync server
#created by hejian 19:50 2019-3-17
##rsyncd.conf start##
uid = rsync
gid = rsync
use chroot = no
max connections = 2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 192.168.0.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
#####################################
[backup]
comment = backup by hejian 19:50 2019-3-17
path = /backup
仮想マシンのスナップショットは、
実際のテストの準備環境をrsyncを、IPを変更し、ホスト名を変更し、カラーテーマのパラメータを変更し、メインのバックアップ構成ファイル
クライアントのエラー
エラー:
[root@lamp01:/tmp]# rsync -avz /tmp/ [email protected]::backup --password-file=rsync.password
rsync: failed to connect to 192.168.105.136: No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]
トラブルシューティング:サーバーのファイアウォールがオンになって
エラー2:
[root@lamp01:/tmp]# rsync -avz /tmp/ [email protected]::backup --password-file=rsync.password
rsync: could not open password file "rsync.password": No such file or directory (2)
Password:
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
最初のエラーが間違ったパス--password-ファイルです=の/ etc / rsync.password
2番目のエラーは、サーバーのパスワードファイルと逆方向に書き込み、クライアント、サーバー書かれたアカウントとパスワード、クライアントの書き込み専用のパスワードです。問題は、検証が失敗に単語がつながっているスペルミスがあり、passwodファイルサーバのルートがあり、バックアップは、ユーザーがrsyncのあるファイル