rsyncとsshによるインスタンスのバックアップ
3506 ワード
家は複製することができますが、本文の完全さを残してください.ありがとうございます.[著作権保持]著者:rhinuxバックアップの重要性は言うまでもないが、実際の作業で使用したほとんどの無料で非常に実用的なバックアップ方法を紹介する.[color=blue]1、簡単に述べる:[/color]バックアップは主にrsyncがsshdサービスを利用してバックアップし、他のサービスを構築する必要がない.[color=blue]2,サーバ構成:[/color]1,RedHat AS 3,rsync 2.4.6[RedHat AS 3持参]3,ssh-keygen[RedHat AS 3持参]4,sshd[RedHat AS 3持参][color=blue]3,環境説明:[/color]1111.111.111.111---バックアップが必要な資料はこのサーバ222222.222.2222---バックアップサーバ[color=blue]4,バックアップ設定[/color]1で、アカウントを追加する:それぞれ111.111.111.111と222.22.222.222にバックアップ専用アカウントを確立するbakは111.111.111.111のbakにバックアップ資料を読み取る権限があることを確保し、222.22.222.222.222.222のbakにバックアップノートを実行するための書き込み権限がある.2,バックアップスクリプトの追加:
#######################################################
# ........
# .....222.222.222.222
#
# #####################################################3#
#
backup_dir="/backup/db_backup"
tbd=`date +%Y%m%d`
mkdir -p $backup_dir/$tbd
chown bak.bak $backup_dir/$tbd
# delete old backup
find /backup/db_backup -maxdepth 1 -type d -mtime +3 | xargs rm -Rf
# IP:111.111.111.111
# /db/mysql/3306/data abc , .
#
mkdir -p $backup_dir/$tbd/111.111.111.111/3306
rsync -avl --delete -e ssh --include=data/abc --exclude=data/* [email protected]:/db/mysql/3306/data /backup/db_backup/`date +%Y%m%d`/111.111.111.111/3306
説明:222.22.222.222の/backup/db_backup/「日付」/11.111.111.111/3306/下に111.111.111.111の/db/mysql/3306/data/abcフォルダをバックアップする.最近の4日間のデータを日付に従って保持する.パラメータ「-e ssh」は、このスクリプトを222.22.222.222.222で直接実行するユーザを111.111.111.111にログインする.スクリプトを/home/bak/backupdataに保存shに実行可能な属性を加える.3,crontabを追加:コマンド:$crontab-e次の文を追加すると
0 2 * * * /home/bak/backupdata.sh
を保存して毎日午前2時に実行しますが、誰も待っていない状態で自動的に実行することはできません.バックアップを自動的に完了するにはbakアカウントの公開鍵を配布する必要があります.次に、どのようにするかについて説明します:[color=blue]5,sshdの構成[/color]1,keyを確立する:111.111.111.111でbakアカウントで次のコマンドを実行します:
$ ssh-keygen -t dsa -b 2048 -f /home/bak/111.111.111.111-rsync-key
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase): [press enter here]
Enter same passphrase again: [press enter here]
Your identification has been saved in /home/bak/111.111.111.111-rsync-key.
Your public key has been saved in /home/bak/111.111.111.111-rsync-key.pub.
The key fingerprint is:
2e:28:d9:ec:85:21:e7:ff:73:df:2e:07:78:f0:d0:a0 [email protected]
passphraseを入力する必要はありません.2,公開鍵の配布:scpコマンド
scp /home/bak/111.111.111.111-rsync-key.pub [email protected]:/home/bak
3を用いる、222.22.222.222.222のbakに公開鍵を222.22.222.222.222の/home/bak/.ssh/下作成ファイルauthorized_keys(.sshフォルダがない場合はご自身で作成してください.次に/home/bak/にコピーしたばかりの111.111.111.111-rsync-key.pubの内容を/home/bak/.ssh/authorized_keysにインポートするには、次のコマンド:
$ mkdir /home/bak/.ssh
$ cat /home/bak/111.111.111.111-rsync-key.pub >;>; /home/bak/.ssh/authorized_keys
4、現在bakで111.111.111.111にログインし、次のコマンド:
$ ssh 222.222.222.222
パスワードなしで直接ログインできれば成功します....[color=blue]六、私は以上の命令とツールのパラメータの説明を省略して、一方で私は説明する時間がなくて、一方で初心者にmanドキュメントを見る習慣を身につけさせたいです.manの勉強を通じて、皆さんのニーズに合ったパラメータを選ぶことができます.[/color]
#######################################################
# ........
# .....222.222.222.222
#
# #####################################################3#
#
backup_dir="/backup/db_backup"
tbd=`date +%Y%m%d`
mkdir -p $backup_dir/$tbd
chown bak.bak $backup_dir/$tbd
# delete old backup
find /backup/db_backup -maxdepth 1 -type d -mtime +3 | xargs rm -Rf
# IP:111.111.111.111
# /db/mysql/3306/data abc , .
#
mkdir -p $backup_dir/$tbd/111.111.111.111/3306
rsync -avl --delete -e ssh --include=data/abc --exclude=data/* [email protected]:/db/mysql/3306/data /backup/db_backup/`date +%Y%m%d`/111.111.111.111/3306
0 2 * * * /home/bak/backupdata.sh
$ ssh-keygen -t dsa -b 2048 -f /home/bak/111.111.111.111-rsync-key
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase): [press enter here]
Enter same passphrase again: [press enter here]
Your identification has been saved in /home/bak/111.111.111.111-rsync-key.
Your public key has been saved in /home/bak/111.111.111.111-rsync-key.pub.
The key fingerprint is:
2e:28:d9:ec:85:21:e7:ff:73:df:2e:07:78:f0:d0:a0 [email protected]
scp /home/bak/111.111.111.111-rsync-key.pub [email protected]:/home/bak
$ mkdir /home/bak/.ssh
$ cat /home/bak/111.111.111.111-rsync-key.pub >;>; /home/bak/.ssh/authorized_keys
$ ssh 222.222.222.222