2019-03-31 11:00:21 +00:00
|
|
|
|
---
|
|
|
|
|
title: iMacと玄箱でバックアップをとりたい!
|
|
|
|
|
author: kazu634
|
|
|
|
|
date: 2008-08-09
|
|
|
|
|
wordtwit_post_info:
|
|
|
|
|
- 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:4201;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}'
|
|
|
|
|
categories:
|
|
|
|
|
- linux
|
|
|
|
|
- rsync
|
|
|
|
|
- unix
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
<div class="section">
|
|
|
|
|
<p>
|
|
|
|
|
現状ではiMacからSamba経由で玄箱にアクセスしている状態です。しかしこれだと全部手動でやらなければいけない。これだと面倒なので、自動でバックアップを行うようにしてみたいと思う。
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
とりあえず自分の知っている知識
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li>
|
|
|
|
|
ネットワーク越しのバックアップにはrsyncというのがある…らしい
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
Unix / Linuxで自動的に処理をさせるcronという仕組みがある…らしい
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
cronはシェルスクリプトを登録する仕組みらしい
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
これぐらいの知識で、何とか自動的にバックアップをとるようにしていきたい。これが今日の課題。
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<h4>
|
|
|
|
|
rsync
|
|
|
|
|
</h4>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
公式ページは「<a href="http://www.infoscience.co.jp/technical/rsync/index.html" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://www.infoscience.co.jp/technical/rsync/index.html', 'rsync');" target="_blank">rsync</a>」。Leopardにはすでにあるので、玄箱のDebianに導入する。
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
# su
|
|
|
|
|
# apt-get install rsync
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
でrsyncを導入する。rsyncでネットワーク越しにファイルをコピーする場合、どちら側にもrsyncが存在しなければならないらしい。
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
rsyncの使い方は「<a href="http://www.itmedia.co.jp/enterprise/articles/0804/21/news013.html" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://www.itmedia.co.jp/enterprise/articles/0804/21/news013.html', ' Command Technica:はじめてrsyncを使う方が知っておきたい6つのルール (1/2) – ITmedia エンタープライズ');" target="_blank"> Command Technica:はじめてrsyncを使う方が知っておきたい6つのルール (1/2) – ITmedia エンタープライズ</a>」を参照するといい。ネットワーク越しにコピーする場合、「ユーザ名@ホスト名:ディレクトリ」という形式で指定すればいい。たとえば
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
# rsync -avz --delete -e ssh ~/Documents/howm backup@kurobox:/home/backup
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
でもこれだと、sshでkuroboxサーバ上のbackupユーザのパスワードを入力するように求められてしまう。これだと自動化できないので、パスワード認証無しで通るようにする。
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<h4>
|
|
|
|
|
sshでの認証
|
|
|
|
|
</h4>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
「<a href="http://www.atmarkit.co.jp/flinux/rensai/linuxtips/447nonpassh.html" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://www.atmarkit.co.jp/flinux/rensai/linuxtips/447nonpassh.html', '@IT:sshでパスワードなしにログインするには');" target="_blank">@IT:sshでパスワードなしにログインするには</a>」を参考にすればいい。私の場合、玄箱は常時電源ONでiMacは付けたり消えたりしている。だから、玄箱の側でiMacの状態を確認しながらrsyncを起動するようにした。だから、「<a href="http://www.atmarkit.co.jp/flinux/rensai/linuxtips/447nonpassh.html" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://www.atmarkit.co.jp/flinux/rensai/linuxtips/447nonpassh.html', '@IT:sshでパスワードなしにログインするには');" target="_blank">@IT:sshでパスワードなしにログインするには</a>」のsshサーバがiMac側での作業になる。リモートが玄箱。
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
ここで大事なのがパスフレーズの入力の時に空白にすること<span class="footnote"><a href="/sirocco634/#f1" name="fn1" title="[http://www2s.biglobe.ne.jp/~nuts/labo/inti/cron-rsync-ssh-nodaemon.html:title]参照">*1</a></span>。これでよくなる。
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
基本的な手順はまずiMac側
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
# ssh-keygen -t rsa ←RSA暗号方式の鍵を作成
|
|
|
|
|
Generating public/private rsa key pair.
|
|
|
|
|
Enter file in which to save the key (/home/nori/.ssh/id_rsa): ←[Enter]キー
|
|
|
|
|
Enter passphrase (empty for no passphrase): ←[Enter]キー
|
|
|
|
|
Enter same passphrase again: ←[Enter]キー
|
|
|
|
|
Your identification has been saved in /home/nori/.ssh/id_rsa.
|
|
|
|
|
Your public key has been saved in /home/[任意のユーザ名]/.ssh/id_rsa.pub.
|
|
|
|
|
The key fingerprint is:
|
|
|
|
|
# cd ~/.ssh
|
|
|
|
|
# cat id_rsa.pub >> $HOME/.ssh/authorized_keys
|
|
|
|
|
# chmod 600 $HOME/.ssh/authorized_keys
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
そして~/.sshにあるid_rsaを玄箱の/home/backup/.sshにコピーして、backupユーザにsuする。玄箱上では
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
# eval `ssh-agent`
|
|
|
|
|
Agent pid 1084
|
|
|
|
|
# ssh-add
|
|
|
|
|
Identity added: /home/backup/.ssh/id_rsa (/home/backup/.ssh/id_rsa)
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
この手順でよくなる。
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<h4>
|
|
|
|
|
cronに登録するよ
|
|
|
|
|
</h4>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
とりあえずシェルを作る。pingでiMacが応答すればrsyncを実行する。「> /dev/null 2>&1」は標準出力とエラー出力を表示させないようにするおまじない。
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
if ping -qc 1 myimac > /dev/null 2>&1
|
|
|
|
|
then
|
|
|
|
|
rsync -avz --delete -e ssh simoom634@myimac:/Users/simoom634/Documents/howm /home/backup > /dev/null 2>&1
|
|
|
|
|
rsync -avz --delete -e ssh simoom634@myimac:/Users/simoom634/Documents/hatena /home/backup > /dev/null 2>&1
|
|
|
|
|
fi
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
これをcronに登録する。参考になるのは「<a href="http://www.linux.or.jp/JM/html/cron/man5/crontab.5.html" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://www.linux.or.jp/JM/html/cron/man5/crontab.5.html', '404 – エラー: 404');" target="_blank">404 – エラー: 404</a>」。
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
# su
|
|
|
|
|
# crontab -u backup -e
|
|
|
|
|
[編集]
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
ここでの編集内容は
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
40 * * * * /usr/bin/backup.sh
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
この設定だと、毎時間40分になったら/usr/bin/backup.shを実行することになる。
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<h4>
|
|
|
|
|
できた!
|
|
|
|
|
</h4>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
こんな過程を通して、自動でバックアップする環境ができました。これで楽ちんができる。
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="footnote">
|
|
|
|
|
<p class="footnote">
|
|
|
|
|
<a href="/sirocco634/#fn1" name="f1">*1</a>:<a href="http://www2s.biglobe.ne.jp/~nuts/labo/inti/cron-rsync-ssh-nodaemon.html" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://www2s.biglobe.ne.jp/~nuts/labo/inti/cron-rsync-ssh-nodaemon.html', 'rsync + cron + ssh (rsyncd を立てない編)');" target="_blank">rsync + cron + ssh (rsyncd を立てない編)</a>参照
|
|
|
|
|
</p>
|
2019-04-02 16:06:15 +00:00
|
|
|
|
</div>
|