つつみくんのLinux記

つつみくんのLinux記

PR

プロフィール

つつみくん

つつみくん

サイド自由欄

つつみくんのLinux記は、自宅のLinux「Fedora14」と、モバイルのLinux「Netwalker」と「Ubuntu10.10ノート」と「EeePC Ubuntu」で作っています!
リンク、トラックバックなども大歓迎です。(^^)♪
お買い物は↓コチラから

カレンダー

お気に入りブログ

アーカイブ さとうさんですよさん
我が家の庭の生き物… アーチャーンさん
ドリベース。 ドリ31さん

キーワードサーチ

▼キーワード検索

September 9, 2007
XML
カテゴリ: Linux記
先日、CPUが熱暴走したお話を書きましたが、じつは、この時期もう一つ壊れやすくなるパーツがあります。

それは、ハードディスク!

・・・ということで、今回は、バックアップのお話です。(^^)

パソコンの内部で熱くなる部品と言えば、CPU、電源ボックス、グラフィックカード・・・といろいろありますが、ハードディスクだけは、かなり熱くなるにもかかわらず、ファンはおろかヒートシンクなどの冷却部品がついているのも見たことがありません。(^^;)

ところが、ハードディスクが壊れてしまうと、そこに保存したデータもかなりの確率で、全て消えてしまうのでした。

Linuxの場合は、OSもアプリケーションもインターネットから取ってこれますので、OSやアプリケーションは再インストールすればいいのですが、自分で作ったファイルや、設定ファイルが全て消えてしまうと、また一から作り直さないといけません。(><)

ハードディスクの内容をバックアップしておけばいいのですが、バックアップは時間も掛かりますので、ついついおろそかになってしまいます。

そこで、バックアップ用のシェルスクリプトプログラムを作ってみることにしました。(^^)

シェルスクリプトというのは、シェル(コマンドを入力して操作するモード)で使うコマンドを並べたファイルを作っておけば、それを起動するだけで、たくさんの処理がいっぺんに実行できるというものです。



例えば、ホームディレクトリをUSBメモリ(/media/diskにマウントされている場合)にバックアップするときは、
rsync -a /home/tutumikun/ /media/disk/tutumikun/
とすれば、/home/tutumikun/の中のファイルを全て、/mnt/dvdram/tutumikun/の中にバックアップしてくれます。(あらかじめ、USBメモリにtutumikunというディレクトリを作っておく必要があります。)

オプションの-aの意味ですが、aはアーカイブの意味で、サブディレクトリやファイルなどを全てバックアップしてくれます。

それから、uがポイントですが、このオプションが付いていると、変更があったファイルや新しく出来たファイルだけをバックアップしてくれます。


最初の1回は普通のコピーと同じ時間がかかりますが、2回目からはファイルのサイズやタイムスタンプを見て、新しいファイルか更新されているファイルだけをコピーしてくれるので、とっても速いのです。(^^)

さて、これでは、ホームディレクトリバックアップするだけなので、/etcもバックアップしてみましょう。/etcの中には、Linux自体の設定ファイルが保存されていますので、ここも、リカバーするときに必要な情報が入っています。

(backup.sh)
#!/bin/sh
/usr/bin/rsync -a /home/tutumikun/ /media/disk/tutumikun/
/usr/bin/rsync -a /etc/ /media/disk/etc/
(1行目の#!/bin/shはシェルを使ったプログラムを表しますので、とりあえず、付けましょう。)

これを、backup.shという名前で保存しておけば、USBメモリを差して、backup.shを起動すれば、いつでも簡単にバックアップ出来るようになります。(USBメモリの中にetcというディレクトリも作っておくひつようがあります。)

ところが、テキストエディタで、backup.shというファイルを作って、./bash.shというコマンドを打ち込んでも、「Permissoin deniedIといわれて実行出来ません。(><)

Windowsでも「DOS窓」なるものあって、シェルスクリプトに似た、バッチファイルというものがありますが、拡張子に「.bat」を付けるとバッチファイルとして実行できます。

しかし、Linuxでは拡張子を「.sh」(シェルスクリプトプログラムに良く付ける拡張子)にしても、実行できるファイルとして認識してくれないのでした。(^^;)

では、どのように実行できるファイルにするかというと、
chmod +x backup.sh


chmodをした後に、./bacukp.shと入力すると、バックアップが始まりました。(カレントディレクトリにあるファイルを実行するときは./を付けます。)

完成したら、/usr/local/binに保存しておけば、./を付けなくても、実行できるようになります。(^^)

これで、とっても簡単なバックアップ用のシェルスクリプトプログラムが出来上がりました。

USBメモリを差して、backup.shと入力すれば、いつでもバックアップすることが出来ます。

簡単なプログラムなので、必要に応じて、いろいろ改良すると、面白いかもしれません。(^^)♪



2007/9/11 訂正しました。(uオプションを取りました。)

uオプションを付けると、バックアップ先のファイルが更新されている場合、そのファイルをスキップしてくれますが、通常は必要ありません。
(たとえば、SDカードにバックアップしたファイルを、外出先で編集する場合に付けると、更新したファイルをスキップしてくれます。)

確認不足でアップロードしてしまい、申し訳ありませんでした。





お気に入りの記事を「いいね!」で応援しよう

最終更新日  September 11, 2007 04:33:07 PM
コメント(12) | コメントを書く


■コメント

お名前
タイトル
メッセージ
画像認証
上の画像で表示されている数字を入力して下さい。


利用規約 に同意してコメントを
※コメントに関するよくある質問は、 こちら をご確認ください。


Re:つつみくんのLinux記その61(シェルスクリプトでバックアップ)(09/09)  
maetar  さん
いやいや、全く同じ手法でバックアップをしております(^-^)でも、うちは/etcは取ってなかったような気がします。その変わりに/etc内の大事なファイルの記事録を取っておいて、どのファイルを編集してるかっていうのを残しております。シェルファイル名までいっしょです(f^^)ちなみにバックアップ先は、DVD-RAMに取っております。 (September 9, 2007 11:34:16 PM)

書き忘れ!  
maetar  さん
ハードディスクは絶対に壊れます!100%壊れる物やと思って頂いてもいいくらいに壊れるもんです。その認識が足り無さ過ぎるので、敢えてこの場を借りて言わせてもらいました。バックアップはホンマに大事です。ハード障害のみならず、人災も多いにありますから!前のコメントに付け足せれば良かったんですが、再度コメントしてしまって、すいませんです(f^^) (September 9, 2007 11:37:27 PM)

Re[1]:つつみくんのLinux記その61(シェルスクリプトでバックアップ)(09/09)  
つつみくん  さん
maetarさんこんばんは(^^)

>いやいや、全く同じ手法でバックアップをしております(^-^)でも、うちは/etcは取ってなかったような気がします。その変わりに/etc内の大事なファイルの記事録を取っておいて、どのファイルを編集してるかっていうのを残しております。シェルファイル名までいっしょです(f^^)ちなみにバックアップ先は、DVD-RAMに取っております。

うちも、サーバーの方はDVD-RAMに取ってます。(^^)
(ファイル名も同じとは奇遇ですね。)

ノートの方は、CD-RWドライブしかないので、アップデートバックアップは難しい(><)・・・ということで、USBメモリを使っています。

/etcファイルは、本当は何を変更したか記録しておくのがベストなんですが、記録より記憶に頼ってしまうので、大事をとって、バックアップに入れるようにしました。

OSをバージョンアップするときは、必ず、クリーンインストールしてしまうので、バックアップの/etcから、古い設定ファイルをひっぱりだして、設定にしています。(^^;) (September 9, 2007 11:56:36 PM)

Re:書き忘れ!(09/09)  
つつみくん  さん
maetarさん追加コメントありがとうございます。(^^)

>ハードディスクは絶対に壊れます!100%壊れる物やと思って頂いてもいいくらいに壊れるもんです。その認識が足り無さ過ぎるので、敢えてこの場を借りて言わせてもらいました。バックアップはホンマに大事です。ハード障害のみならず、人災も多いにありますから!前のコメントに付け足せれば良かったんですが、再度コメントしてしまって、すいませんです(f^^)

そうなんですよね、高速回転するディスクに、微妙に触れないようにヘッドが付いている・・・というだけでも、回転中に衝撃を与えたら、壊れない方が不思議ですよね。(^^;)

本当に大事なことなので、再度コメントして頂いてうれしいです。(^^)

寿命の長い短いはあると思いますが、他の回路と違って、いつか必ず壊れる物ですからねぇ(^^;)

今は、USBメモリやDVD-RAMを使えば、あまりお金をかけずに、簡単にバックアップ出来ますので、ありがたい時代になりましたね。(^^) (September 10, 2007 12:09:04 AM)

Re:つつみくんのLinux記その61(シェルスクリプトでバックアップ)(09/09)  
シノブ さん
こんにちはー。
rsyncってコマンドも初めて知ったんですけど、/etcに設定ファイルがあるというのも初めて知りました(笑)。
未だルート以下それぞれ何のディレクトリなのか理解できてないんですよね。
/usr/local/binに入れるとどこでも使える実行コマンドとして機能するということなんですかね?
とても簡単なやり方なので、これからこれでバックアップこまめにしてみようと思います。 (September 10, 2007 06:56:44 AM)

Re[1]:つつみくんのLinux記その61(シェルスクリプトでバックアップ)(09/09)  
つつみくん  さん
シノブさんこんにちは(^^)

>こんにちはー。
>rsyncってコマンドも初めて知ったんですけど、/etcに設定ファイルがあるというのも初めて知りました(笑)。
>未だルート以下それぞれ何のディレクトリなのか理解できてないんですよね。

そうですね、ルート以下にあるフォルダは、Linux最大のナゾですね。(未だに1回も使ってないフォルダもあります。(^^;))

個人的な設定は、ホームディレクトリに、通常「.」ドットで始まるファイル名やフォルダ名で保存されています。(ls -aとすると見えるハズです。)

マシン共通の設定や、サーバーアプリの設定は/etcに入りますので、ここを取っておくと、コピペで設定を復元出来たりします。(^^)

>/usr/local/binに入れるとどこでも使える実行コマンドとして機能するということなんですかね?
>とても簡単なやり方なので、これからこれでバックアップこまめにしてみようと思います。

echo $PATHとすると、パスがあたっている所が確認できますが、大抵は/usr/local/binも入っていると思います。

自分のマシン固有のコマンドなどを入れるところなので、ここに入れておくと自分で作ったスクリプトだということが分かっていいと思います。(たまに自分でビルドしたアプリが入ることもありますが・・・(^^;))

rootで作業することが多い時は、/rootもバックアップした方がいいですが、とりあえず、この2つのディレクトリだけでもバックアップしておくと、リカバーがぜんぜん楽になりますよ。(^^)♪
(September 10, 2007 07:55:07 AM)

sync,  
かのん さん
これ便利です。
>rsync
こうやって使うのですね。^^

(September 10, 2007 10:29:44 PM)

Re:sync,(09/09)  
つつみくん  さん
かのんさんこんばんは(^^)

>これ便利です。
>>rsync
>こうやって使うのですね。^^

本当はネットワークで使うと、圧縮転送してくれたりするので、もっと便利ですよ。(^^)

遠隔バックアップなんかに使っていたこともありますが、回線が細くても高速転送できるので、ファイル転送用に使っても面白いです。(^^)♪
(September 10, 2007 10:40:27 PM)

Re:つつみくんのLinux記その61(シェルスクリプトでバックアップ)(09/09)  
きよ2315  さん
つい最近、ハードディスクが壊れました。^^;

以前、maetarさんにもアドバイスいただいていたのに、
一ヶ月ほどバックアップをとってませんでした。
幸い、/homeは無事だったので本当にラッキーでした。

先週、中古でデスクトップを買ったのですが、この機会に、今度こそ、しっかりバックアップを習慣づけたいと思ってます。参考にさせていただきます。(^^) (September 11, 2007 12:41:53 AM)

必須課題  
ゴロー さん
おはようございます。いつもお世話になってます。
今回の課題は選択項目ではないですね。
PCが物理的に壊れるのは専らHDDですし。
我が家では大量のHDDがピカピカの円盤だけになって子供のおもちゃ箱にたくさん入ってます。 (September 11, 2007 03:36:21 AM)

Re[1]:つつみくんのLinux記その61(シェルスクリプトでバックアップ)(09/09)  
つつみくん  さん
きよ2315さんこんにちは(^^)

>つい最近、ハードディスクが壊れました。^^;

>以前、maetarさんにもアドバイスいただいていたのに、
>一ヶ月ほどバックアップをとってませんでした。
>幸い、/homeは無事だったので本当にラッキーでした。

そうなんですよね、バックアップを取ってない時に限って、壊れるんですよね。(^^;)
(逆にバックアップを取っていると全然壊れないんですが・・・)

とりあえず、/homeが残っていれば、あとは何とかなりますから、ラッキーでしたね。(^^)

>先週、中古でデスクトップを買ったのですが、この機会に、今度こそ、しっかりバックアップを習慣づけたいと思ってます。参考にさせていただきます。(^^)

ずっと使っていたマシンをバックアップすると、初回は結構時間が掛かりますから、新しい内から、こまめにバックアップしておくと良いですね。(^^)

rsyncは起動すると、更新されているファイルのリストを作って、その後、必要なファイルだけを転送するので、転送速度が遅くても2回目以降はとっても速いですよ。(^^)♪
(September 11, 2007 09:55:52 AM)

Re:必須課題(09/09)  
つつみくん  さん
ゴローさんこんにちは(^^)

>おはようございます。いつもお世話になってます。
>今回の課題は選択項目ではないですね。
>PCが物理的に壊れるのは専らHDDですし。
>我が家では大量のHDDがピカピカの円盤だけになって子供のおもちゃ箱にたくさん入ってます。

そうなんですよね、ハードディスクを分解すると、中の円盤はピカピカで綺麗ですよね。(^^)♪

あんまり綺麗なので、いったいどこが壊れてるんだろうと思っちゃいますが、こればっかりは修復不可能ですからねぇ(^^;)

せっかく、デジタルな時代なので、データだけはバックアップして、永久に保存しましょう。(^^)
(ちょっと大げさ・・・)
(September 11, 2007 10:10:58 AM)

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: