SSHとrsyncでradikoを自宅サーバへらくらくバックアップ
2011年11月15日 22時33分38秒
カテゴリー: Weblog
前回radikoをLinuxサーバで録音する方法を紹介しましたが、今回はServerMan@VPSから自宅サーバへの自動バックアップの方法をご紹介します。
バックアップ方法は色々とありますが、ここではSSHとrsyncとを使った方法をご紹介します。
前提条件として、SSHとrsyncはインストール済みとし、ServersMan@VPSと自宅サーバの共通のユーザ「hoge」を作成済みとしてご紹介します。
そして、操作はWindowsクライアントからのターミナル操作とします。
SSH構築がまだの方は、WEB上にLinuxサーバ構築のホームページ等で詳しく紹介されているので、そちらをご参照下さい。
CentOSをインストールされている場合は、通常rsyncはインストール済みなのでそのままご使用出来ます。以下で確認。
$ which rsync
/usr/bin/rsync
SSHですが、私の自宅サーバ環境ではSSH2でのみ接続を許可・rootログオン禁止・鍵方式でのログインのみ許可、パスワードなしでのログイン禁止となっておりますので、ご自分の環境に適に置き換えてお読み下さい。
(ServersMan@VPS作業)crontabに登録して自動的にバックアップさせたいので、ユーザ「hoge」でノンパスフレーズの鍵を作成します。
$ ssh-keygen -N "" -t rsa
上記のコマンドを実行すると、~/.sshに id_rsa(秘密鍵) と id_rsa_pub(公開鍵)の2つの鍵が作成されます。
(自宅サーバ作業)id_rsa_pubを接続先の自宅サーバの~/.ssh/authorized_keysに追記します。ServersMan@VPSで作成した公開鍵をWinSCP等でファイルコピーして、自宅サーバにアップした場合は、
# cat id_rsa_pub >> /home/hoge/.ssh/authorized_keys
(ServersMan@VPS作業・自宅サーバ作業)PuTTY等のターミナルで、ServersMan@VPSと自宅サーバの両方を開いている場合は、
$ cat ~/.ssh/id_rsa_pub(ServersMan@VPS作業)
で、id_rsa_pubを表示→範囲選択
# vi /home/hoge/.ssh/authorized_keys(自宅サーバ作業)
で、authorized_keysファイルを開き、INSERT状態にして、マウスを左クリックで貼り付け
(自宅サーバ作業)自宅サーバでSSHアクセス制限を行っている場合、/etc/hosts.allowファイルにServersMan@VPSのIPアドレスを追加します。
仮にServersMan@VPSのIPアドレスが「aaa.bbb.ccc.ddd」の場合、
# echo "sshd:aaa.bbb.ccc.ddd" >> /etc/hosts.allow
(ServersMan@VPS作業)とりあえず、準備OK。ServersMan@VPSから自宅サーバに接続してみましょう。
仮に自宅サーバのアドレスが「hoge.com」の場合、
$ ssh -i ~/.ssh/id_rsa hoge@hoge.com
一部省略
Are you sure you want to continue connecting (yes/no)? yes [Enter]キー押下
以下省略
問題がなければ接続出来ます。hostnameコマンドで確認。
$ hostname
hoge.com
$
上記の様になればOKです。
SSHログインが出来たので、いよいよバックアップの確認です。
あ、自宅サーバからexitで抜けて下さい。
(ServersMan@VPS作業)テスト用に ~/test ディレクトリを作成し、その中にtest.txtを作成しましょう。
$ mkdir ~/test
$ vi ~/test/test.txt ←中身は適当でいいです。
(ServersMan@VPS作業)バックアップの実行。ServersMan@VPSの/home/hoge/test/以下を自宅サーバの/home/hoge/test/へバックアップします。
$ su -
パスワード:
# rsync -auz --delete -e "ssh -i /home/hoge/.ssh/id_rsa" /home/hoge/test/ hoge@hoge.com:/home/hoge/test/
(注)rsyncのオプションは、ヘルプ等を参照下さい。
ちなみに上記の設定だと、更新日時を確認して、自宅サーバのファイルが古い場合はコピーし、ServersMan@VPSに存在しないファイルが、自宅サーバで見つかった場合、そのファイルを削除する設定です。
テキストファイルなので、あっという間に終了すると思います。
(自宅サーバ作業)自宅サーバでファイルを確認。
# ls -al /home/hoge/test/
drwxr-xr-x 2 hoge hoge 4096 11月 15 21:50 .
drwx--x--x 26 hoge hoge 4096 11月 15 22:01 ..
-rw-r--r-- 1 hoge hoge 45 11月 15 21:50 test.txt ←これがあればOK。
(ServersMan@VPS作業)バックアップの確認もうまくいったので、crontabに登録します。
# crontab -e
59 00 * * 2 /root/rec_radiko.sh TBS 122 # 月曜 JUNK 伊集院光 深夜の馬鹿力
29 21 * * 3 /root/rec_radiko.sh QRR 32 # オードリーのシャンプーおじさん
59 00 * * 4 /root/rec_radiko.sh TBS 122 # 水曜 JUNK 山里亮太の不毛な議論
59 00 * * 5 /root/rec_radiko.sh TBS 122 # 木曜 JUNK おぎやはぎのメガネびいき
59 00 * * 0 /root/rec_radiko.sh LFR 122 # オードリーのオールナイトニッポン
* 00 * * * rsync -auz --delete -e "ssh -i /home/hoge/.ssh/id_rsa" /home/hoge/radiko/ hoge@hoge.com:/home/hoge/radiko/
これで、毎日午前0時にradikoの録音が自動的に自宅サーバにバックアップされます。
よかったご参考下さい。
バックアップ方法は色々とありますが、ここではSSHとrsyncとを使った方法をご紹介します。
前提条件として、SSHとrsyncはインストール済みとし、ServersMan@VPSと自宅サーバの共通のユーザ「hoge」を作成済みとしてご紹介します。
そして、操作はWindowsクライアントからのターミナル操作とします。
SSH構築がまだの方は、WEB上にLinuxサーバ構築のホームページ等で詳しく紹介されているので、そちらをご参照下さい。
CentOSをインストールされている場合は、通常rsyncはインストール済みなのでそのままご使用出来ます。以下で確認。
$ which rsync
/usr/bin/rsync
SSHですが、私の自宅サーバ環境ではSSH2でのみ接続を許可・rootログオン禁止・鍵方式でのログインのみ許可、パスワードなしでのログイン禁止となっておりますので、ご自分の環境に適に置き換えてお読み下さい。
(ServersMan@VPS作業)crontabに登録して自動的にバックアップさせたいので、ユーザ「hoge」でノンパスフレーズの鍵を作成します。
$ ssh-keygen -N "" -t rsa
上記のコマンドを実行すると、~/.sshに id_rsa(秘密鍵) と id_rsa_pub(公開鍵)の2つの鍵が作成されます。
(自宅サーバ作業)id_rsa_pubを接続先の自宅サーバの~/.ssh/authorized_keysに追記します。ServersMan@VPSで作成した公開鍵をWinSCP等でファイルコピーして、自宅サーバにアップした場合は、
# cat id_rsa_pub >> /home/hoge/.ssh/authorized_keys
(ServersMan@VPS作業・自宅サーバ作業)PuTTY等のターミナルで、ServersMan@VPSと自宅サーバの両方を開いている場合は、
$ cat ~/.ssh/id_rsa_pub(ServersMan@VPS作業)
で、id_rsa_pubを表示→範囲選択
# vi /home/hoge/.ssh/authorized_keys(自宅サーバ作業)
で、authorized_keysファイルを開き、INSERT状態にして、マウスを左クリックで貼り付け
(自宅サーバ作業)自宅サーバでSSHアクセス制限を行っている場合、/etc/hosts.allowファイルにServersMan@VPSのIPアドレスを追加します。
仮にServersMan@VPSのIPアドレスが「aaa.bbb.ccc.ddd」の場合、
# echo "sshd:aaa.bbb.ccc.ddd" >> /etc/hosts.allow
(ServersMan@VPS作業)とりあえず、準備OK。ServersMan@VPSから自宅サーバに接続してみましょう。
仮に自宅サーバのアドレスが「hoge.com」の場合、
$ ssh -i ~/.ssh/id_rsa hoge@hoge.com
一部省略
Are you sure you want to continue connecting (yes/no)? yes [Enter]キー押下
以下省略
問題がなければ接続出来ます。hostnameコマンドで確認。
$ hostname
hoge.com
$
上記の様になればOKです。
SSHログインが出来たので、いよいよバックアップの確認です。
あ、自宅サーバからexitで抜けて下さい。
(ServersMan@VPS作業)テスト用に ~/test ディレクトリを作成し、その中にtest.txtを作成しましょう。
$ mkdir ~/test
$ vi ~/test/test.txt ←中身は適当でいいです。
(ServersMan@VPS作業)バックアップの実行。ServersMan@VPSの/home/hoge/test/以下を自宅サーバの/home/hoge/test/へバックアップします。
$ su -
パスワード:
# rsync -auz --delete -e "ssh -i /home/hoge/.ssh/id_rsa" /home/hoge/test/ hoge@hoge.com:/home/hoge/test/
(注)rsyncのオプションは、ヘルプ等を参照下さい。
ちなみに上記の設定だと、更新日時を確認して、自宅サーバのファイルが古い場合はコピーし、ServersMan@VPSに存在しないファイルが、自宅サーバで見つかった場合、そのファイルを削除する設定です。
テキストファイルなので、あっという間に終了すると思います。
(自宅サーバ作業)自宅サーバでファイルを確認。
# ls -al /home/hoge/test/
drwxr-xr-x 2 hoge hoge 4096 11月 15 21:50 .
drwx--x--x 26 hoge hoge 4096 11月 15 22:01 ..
-rw-r--r-- 1 hoge hoge 45 11月 15 21:50 test.txt ←これがあればOK。
(ServersMan@VPS作業)バックアップの確認もうまくいったので、crontabに登録します。
# crontab -e
59 00 * * 2 /root/rec_radiko.sh TBS 122 # 月曜 JUNK 伊集院光 深夜の馬鹿力
29 21 * * 3 /root/rec_radiko.sh QRR 32 # オードリーのシャンプーおじさん
59 00 * * 4 /root/rec_radiko.sh TBS 122 # 水曜 JUNK 山里亮太の不毛な議論
59 00 * * 5 /root/rec_radiko.sh TBS 122 # 木曜 JUNK おぎやはぎのメガネびいき
59 00 * * 0 /root/rec_radiko.sh LFR 122 # オードリーのオールナイトニッポン
* 00 * * * rsync -auz --delete -e "ssh -i /home/hoge/.ssh/id_rsa" /home/hoge/radiko/ hoge@hoge.com:/home/hoge/radiko/
これで、毎日午前0時にradikoの録音が自動的に自宅サーバにバックアップされます。
よかったご参考下さい。





