マッタリとコーヒーでも・・・

日々感じた事。日常の中の幸福。

前日の閲覧数
126PV
+SHARE
Twitter Facebook RSS

SSHとrsyncでradikoを自宅サーバへらくらくバックアップ

前回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の録音が自動的に自宅サーバにバックアップされます。

よかったご参考下さい。
ジャンル:
ウェブログ
キーワード:
自宅サーバオールナイトニッポンおぎやはぎのメガネびいきパスフレーズクライアント深夜の馬鹿力

Weblog」カテゴリの最新記事