rsync をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
rsync
マシン間の特定のフォルダを同期、中身を同じにするツール
バックアップとかの際によく利用します
詳細[[https://www.computerhope.com/unix/rsync.htm>+https:...
コマンド書式
#code(nonumber){{
[root@c ~]# rsync [オプション] source [source2...] destin...
オプション:
-a: '-rlptgoD' と同じ
-r: 配下のディレクトリも対象
-l: シンボリックリンクはそのままシンボリックリンクとし...
-p: パーミッションもそのままコピー
-t: タイムスタンプもそのままコピー
-g: グループ情報を保持してコピー
-o: 所有者情報を保持してコピー(rootのみ)
-D: '--devices' '--specials' と同じ
--devices: デバイスファイルもコピー(rootのみ)
--specials: 特殊ファイル(名前付きファイル)らもコピー
-A: aclを保持したままコピー
-X: 拡張属性を保持したままコピー
--log-file: ログファイル指定
-n: 実際のコピーは行わず、処理の流れが確認できる
--delete: <source>に存在しないファイルは <destination>...
--delete-after: 同期処理の後に削除を実行
--delete-before: 同期処理の前に削除を実行
--bwlimit=1024 単位はkB/s 1024kB/s --> 8,192k bit/...
--bwlimit=1250 1250kB/s --> 10,000k bit/...
}}
***cronを使っての自動バックアップ(/home) [#l44b6d95]
バックアップ対象側(&color(darkgreen){''source''};)の&colo...
(パスフレーズはなしで)
#code(nonumber){{
[root@source ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ...
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): ...
Enter same passphrase again: ...
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
(略)
[root@source ~]#
}}
作成した&color(darkorchid){公開鍵};(/root/.ssh/id_rsa.pub...
バックアップ先(&color(orangered){destination};)に渡す
#code(nonumber){{
[root@source ~]# scp .ssh/id_rsa.pub root@destination:
}}
そして、バックアップ先(&color(orangered){destination};)に...
.ssh/authorized_keysファイルに追記します
#code(nonumber){{
[root@destination ~]# mkdir ~/.ssh && chmod 700 $_
[root@destination ~]# cat id_rsa.pub >> .ssh/authorized_...
[root@destination ~]# chmod 600 .ssh/authorized_keys
[root@destination ~]# rm -f id_rsa.pu
}}
これでパスワードなしで、バックアップ対象側(&color(darkgre...
&color(red){*};&size(10){sshd_configの設定に依存しますが};
#code(nonumber){{
[root@source ~]# ssh root@destination
[root@destination ~]#
}}
その上で下記のようにバックアップが可能となる
#code(nonumber){{
[root@source ~]# rsync -avz /target/ root@destination:/...
}}
これをcronに仕込めば定期的なバックアップが行われる
#code(nonumber){{
[root@source ~]# crontab -e
MAILTO=""
*/5 * * * * rsync -XAavz /target/ root@destination:/tar...
}}
***cronを使っての自動バックアップ(その2) [#e7100637]
cronでの多重起動防止 - pidof を使う [[bash#vec6b673]]
***sshを使わないrsync [#o45744a1]
ほとんどのrsyncは既定でsshを使うようにできてる。以前なら...
sshの負荷なしでrsyncを行うにはどうすればいいのか?
ここではpushでファイル同期を行う場合を記載する。ごくごく...
サーバ側(ファイルを受ける側)
#code(nonumber){{
[root@c ~]# yum install rsync
[root@c ~]# vi /etc/rsyncd.conf
[home]
path=/home
uid=root
gid=root
read only=false
[root@c ~]# systemctl status rsyncd.service
}}
これで/homeが共有先なる。
クライアント側(ファイルを送る側)
#code(nonumber){{
[root@c ~]# rsync -av /home/illya/ c::home/illya
}}
これでパスワードなしで、「client:/home/illya」と「c:/home...
***もっと早くrsync!! [#m9e80a78]
小さいサイズのファイルが膨大にあるとき、rsyncではあんまり...
片方が満載で、片方がバックアップに拵えた空のストレージで...
っで、初回の同期なのだから別にタイムスタンプさえ合ってい...
具体的には/homeの内容をバックアップ先(2nd)の/backupに収め...
#code(nonumber){{
[root@c ~]# cd /
[root@c ~]# tar cf - home | ssh root@2nd "cd /backup ; ...
}}
でもいいように思える
バックアップ先では /backup/home として置かれる。
これはsshを経由します。たかが隣のマシンへの転送にsshの暗...
ただrootでrshを行うには調整が必要。
#code(nonumber){{
(相手側)
[root@2nd ~]# systemctl start rsh.socket
[root@2nd ~]# systemctl start rexec.socket
[root@2nd ~]# systemctl start rlogin.socket
[root@2nd ~]#
[root@2nd ~]# cat <<_EOF_>> /etc/securetty
rsh
rexec
rlogin
_EOF_
[root@2nd ~]# echo "c.sybyl.local" > .rhosts
}}
この設定の後で
#code(nonumber){{
[root@c ~]# cd /
[root@c ~]# tar cf - home | rsh -l root 2nd "cd /backup...
}}
***rsyncを最新版にしてみる [#a1aaae59]
やっぱり最新版だと早いそうな
#code(nonumber){{
[root@centos7 ~]# wget https://download.samba.org/pub/rsy...
[root@centos7 ~]# tar xf rsync-3.2.3.tar.gz
[root@centos7 ~]# cd rsync-3.2.3/
[root@centos7 rsync-3.2.3]# yum install openssl-devel lz4...
[root@centos7 rsync-3.2.3]# ./configure
[root@centos7 rsync-3.2.3]# make ; make install
}}
「--prefix=」で指定しないと /usr/local を起点にしてインス...
あとmanファイルとかが /usr/local/share/man に配置されるく...
最新のrsyncを使うなら相手方にも同じように最新版をインスト...
っで肝心の最新どうしてrsyncを使うには「--rsync-path=」で...
#code(nonumber){{
[root@c apps]# /usr/local/bin/rsync -a --rsync-path=/usr/...
}}
終了行:
rsync
マシン間の特定のフォルダを同期、中身を同じにするツール
バックアップとかの際によく利用します
詳細[[https://www.computerhope.com/unix/rsync.htm>+https:...
コマンド書式
#code(nonumber){{
[root@c ~]# rsync [オプション] source [source2...] destin...
オプション:
-a: '-rlptgoD' と同じ
-r: 配下のディレクトリも対象
-l: シンボリックリンクはそのままシンボリックリンクとし...
-p: パーミッションもそのままコピー
-t: タイムスタンプもそのままコピー
-g: グループ情報を保持してコピー
-o: 所有者情報を保持してコピー(rootのみ)
-D: '--devices' '--specials' と同じ
--devices: デバイスファイルもコピー(rootのみ)
--specials: 特殊ファイル(名前付きファイル)らもコピー
-A: aclを保持したままコピー
-X: 拡張属性を保持したままコピー
--log-file: ログファイル指定
-n: 実際のコピーは行わず、処理の流れが確認できる
--delete: <source>に存在しないファイルは <destination>...
--delete-after: 同期処理の後に削除を実行
--delete-before: 同期処理の前に削除を実行
--bwlimit=1024 単位はkB/s 1024kB/s --> 8,192k bit/...
--bwlimit=1250 1250kB/s --> 10,000k bit/...
}}
***cronを使っての自動バックアップ(/home) [#l44b6d95]
バックアップ対象側(&color(darkgreen){''source''};)の&colo...
(パスフレーズはなしで)
#code(nonumber){{
[root@source ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ...
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): ...
Enter same passphrase again: ...
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
(略)
[root@source ~]#
}}
作成した&color(darkorchid){公開鍵};(/root/.ssh/id_rsa.pub...
バックアップ先(&color(orangered){destination};)に渡す
#code(nonumber){{
[root@source ~]# scp .ssh/id_rsa.pub root@destination:
}}
そして、バックアップ先(&color(orangered){destination};)に...
.ssh/authorized_keysファイルに追記します
#code(nonumber){{
[root@destination ~]# mkdir ~/.ssh && chmod 700 $_
[root@destination ~]# cat id_rsa.pub >> .ssh/authorized_...
[root@destination ~]# chmod 600 .ssh/authorized_keys
[root@destination ~]# rm -f id_rsa.pu
}}
これでパスワードなしで、バックアップ対象側(&color(darkgre...
&color(red){*};&size(10){sshd_configの設定に依存しますが};
#code(nonumber){{
[root@source ~]# ssh root@destination
[root@destination ~]#
}}
その上で下記のようにバックアップが可能となる
#code(nonumber){{
[root@source ~]# rsync -avz /target/ root@destination:/...
}}
これをcronに仕込めば定期的なバックアップが行われる
#code(nonumber){{
[root@source ~]# crontab -e
MAILTO=""
*/5 * * * * rsync -XAavz /target/ root@destination:/tar...
}}
***cronを使っての自動バックアップ(その2) [#e7100637]
cronでの多重起動防止 - pidof を使う [[bash#vec6b673]]
***sshを使わないrsync [#o45744a1]
ほとんどのrsyncは既定でsshを使うようにできてる。以前なら...
sshの負荷なしでrsyncを行うにはどうすればいいのか?
ここではpushでファイル同期を行う場合を記載する。ごくごく...
サーバ側(ファイルを受ける側)
#code(nonumber){{
[root@c ~]# yum install rsync
[root@c ~]# vi /etc/rsyncd.conf
[home]
path=/home
uid=root
gid=root
read only=false
[root@c ~]# systemctl status rsyncd.service
}}
これで/homeが共有先なる。
クライアント側(ファイルを送る側)
#code(nonumber){{
[root@c ~]# rsync -av /home/illya/ c::home/illya
}}
これでパスワードなしで、「client:/home/illya」と「c:/home...
***もっと早くrsync!! [#m9e80a78]
小さいサイズのファイルが膨大にあるとき、rsyncではあんまり...
片方が満載で、片方がバックアップに拵えた空のストレージで...
っで、初回の同期なのだから別にタイムスタンプさえ合ってい...
具体的には/homeの内容をバックアップ先(2nd)の/backupに収め...
#code(nonumber){{
[root@c ~]# cd /
[root@c ~]# tar cf - home | ssh root@2nd "cd /backup ; ...
}}
でもいいように思える
バックアップ先では /backup/home として置かれる。
これはsshを経由します。たかが隣のマシンへの転送にsshの暗...
ただrootでrshを行うには調整が必要。
#code(nonumber){{
(相手側)
[root@2nd ~]# systemctl start rsh.socket
[root@2nd ~]# systemctl start rexec.socket
[root@2nd ~]# systemctl start rlogin.socket
[root@2nd ~]#
[root@2nd ~]# cat <<_EOF_>> /etc/securetty
rsh
rexec
rlogin
_EOF_
[root@2nd ~]# echo "c.sybyl.local" > .rhosts
}}
この設定の後で
#code(nonumber){{
[root@c ~]# cd /
[root@c ~]# tar cf - home | rsh -l root 2nd "cd /backup...
}}
***rsyncを最新版にしてみる [#a1aaae59]
やっぱり最新版だと早いそうな
#code(nonumber){{
[root@centos7 ~]# wget https://download.samba.org/pub/rsy...
[root@centos7 ~]# tar xf rsync-3.2.3.tar.gz
[root@centos7 ~]# cd rsync-3.2.3/
[root@centos7 rsync-3.2.3]# yum install openssl-devel lz4...
[root@centos7 rsync-3.2.3]# ./configure
[root@centos7 rsync-3.2.3]# make ; make install
}}
「--prefix=」で指定しないと /usr/local を起点にしてインス...
あとmanファイルとかが /usr/local/share/man に配置されるく...
最新のrsyncを使うなら相手方にも同じように最新版をインスト...
っで肝心の最新どうしてrsyncを使うには「--rsync-path=」で...
#code(nonumber){{
[root@c apps]# /usr/local/bin/rsync -a --rsync-path=/usr/...
}}
ページ名:
1