|
カテゴリ:Linux記
先日、CPUが熱暴走したお話を書きましたが、じつは、この時期もう一つ壊れやすくなるパーツがあります。
それは、ハードディスク! ・・・ということで、今回は、バックアップのお話です。(^^) パソコンの内部で熱くなる部品と言えば、CPU、電源ボックス、グラフィックカード・・・といろいろありますが、ハードディスクだけは、かなり熱くなるにもかかわらず、ファンはおろかヒートシンクなどの冷却部品がついているのも見たことがありません。(^^;) ところが、ハードディスクが壊れてしまうと、そこに保存したデータもかなりの確率で、全て消えてしまうのでした。 Linuxの場合は、OSもアプリケーションもインターネットから取ってこれますので、OSやアプリケーションは再インストールすればいいのですが、自分で作ったファイルや、設定ファイルが全て消えてしまうと、また一から作り直さないといけません。(><) ハードディスクの内容をバックアップしておけばいいのですが、バックアップは時間も掛かりますので、ついついおろそかになってしまいます。 そこで、バックアップ用のシェルスクリプトプログラムを作ってみることにしました。(^^) シェルスクリプトというのは、シェル(コマンドを入力して操作するモード)で使うコマンドを並べたファイルを作っておけば、それを起動するだけで、たくさんの処理がいっぺんに実行できるというものです。 バックアップにはrsyncというコマンドを良く使っています。これは、ネットワーク上でバックアップすることを考慮して作られているので、USBメモリやDVD-RAMなどの転送スピードが遅いメディアにバックアップするときは非常に効果的です。 例えば、ホームディレクトリをUSBメモリ(/media/diskにマウントされている場合)にバックアップするときは、
オプションの-aの意味ですが、aはアーカイブの意味で、サブディレクトリやファイルなどを全てバックアップしてくれます。 rsyncは、uオプションを付けなくても、変更されたファイルや新しく出来たファイルだけをバックアップしてくれます。 最初の1回は普通のコピーと同じ時間がかかりますが、2回目からはファイルのサイズやタイムスタンプを見て、新しいファイルか更新されているファイルだけをコピーしてくれるので、とっても速いのです。(^^) さて、これでは、ホームディレクトリバックアップするだけなので、/etcもバックアップしてみましょう。/etcの中には、Linux自体の設定ファイルが保存されていますので、ここも、リカバーするときに必要な情報が入っています。
これを、backup.shという名前で保存しておけば、USBメモリを差して、backup.shを起動すれば、いつでも簡単にバックアップ出来るようになります。(USBメモリの中にetcというディレクトリも作っておくひつようがあります。) ところが、テキストエディタで、backup.shというファイルを作って、./bash.shというコマンドを打ち込んでも、「Permissoin deniedIといわれて実行出来ません。(><) Windowsでも「DOS窓」なるものあって、シェルスクリプトに似た、バッチファイルというものがありますが、拡張子に「.bat」を付けるとバッチファイルとして実行できます。 しかし、Linuxでは拡張子を「.sh」(シェルスクリプトプログラムに良く付ける拡張子)にしても、実行できるファイルとして認識してくれないのでした。(^^;) では、どのように実行できるファイルにするかというと、
chmodをした後に、./bacukp.shと入力すると、バックアップが始まりました。(カレントディレクトリにあるファイルを実行するときは./を付けます。) 完成したら、/usr/local/binに保存しておけば、./を付けなくても、実行できるようになります。(^^) これで、とっても簡単なバックアップ用のシェルスクリプトプログラムが出来上がりました。 USBメモリを差して、backup.shと入力すれば、いつでもバックアップすることが出来ます。 簡単なプログラムなので、必要に応じて、いろいろ改良すると、面白いかもしれません。(^^)♪ (つづく) 2007/9/11 訂正しました。(uオプションを取りました。) uオプションを付けると、バックアップ先のファイルが更新されている場合、そのファイルをスキップしてくれますが、通常は必要ありません。 (たとえば、SDカードにバックアップしたファイルを、外出先で編集する場合に付けると、更新したファイルをスキップしてくれます。) 確認不足でアップロードしてしまい、申し訳ありませんでした。 |