Linux の自動バックアップ&FTP転送シェル
Linuxサーバーの運用開始、さて Linuxサーバーのバックアップはどうしますか? 高価なバックアップソフトを購入 (しかもエラーありで、使い勝手が悪い)より、 簡単なシェルで、 アナタ自身がバックアップシステムを構築できます。 Linux運用者は、是非読み進めてくださいね。 意外と多い悲惨な事件 一般的に、Linuxサーバーの運用が始まってしまうと、 ついついバックアップって疎かになります。 リリース日があるわけでもないし、ついつい「まあ、明日やればいいか」と。 でもね「災害は忘れたころにやってくる」じゃないですが、 サーバー上のデータっていつ何が起こるかわかりません。 ハードディスクのクラッシュ、マシンの損傷、内部電気回路の切断・・・・・ いやいや、今この瞬間に アナタ自身が間違ってファイルを全部消去してしまうかもしれない。 もう泣くに泣けません。呆然自失です(涙)。 でも、こんな悲惨な事件、よく聞きますよね。 じゃあ、どうするのか? 「じゃあ、どうするのか?」という話ですが、簡単です。 バックアップすればいいだけです。しかも高価なソフトを購入する必要もありません。 アナタ自身が、 簡単なシェルを組む。それでOKなのです。 あれこれと迷っているうちに災害にあうのがオチで、 実際のところ、アナタがシェルを組んでしまうのがシンプルで一番強力です。 だってソースが全部見えるから応用は簡単だし、痒いところにも手が届きますし、 何よりアナタの実力もつきます。 システムのイメージ で、そのシェルのイメージですが、↓のようになります。 アナタの運用サーバーの バックアップしたいファイルのディレクトリを圧縮して別のサーバーにFTP転送する。 こんな簡単なシステムになります。 システムの要件 イメージだけでは心許ないので(笑)、 システム要件を文字にすると↓のようになります。 <バックアップ&FTPの要件>
エラーが発生した場合とは? いかがでしょうか。上記要件ではエラー処理が最大のミソでしょうか。だって、 エラーを感知できなけれ、バックアップシステムとして致命的ですから。 ですので、ここをもう少し詳しく説明すると、 「エラーが発生した場合」とは、↓のようなことを指します。 <圧縮ファイルのエラー> 例えば、バックアップ対象ディレクトリの中に、アクセス権限の無いファイルが入ってしまった場合は、そのディレクトリを圧縮してファイルにすることが出来ません。 エラーになります。 このような圧縮ファイルエラーの場合は、エラーログが残ります。 <FTPへのpingエラー> FTP転送するサーバーにpingが通らない場合、つまりネットワークで繋がってない場合は、エラーログが残ります。 ただ し、pingは遮断してFTPはOKというサーバーもありますので、 そのような場合は、このチェックは外して運用します。 <FTPエラー> ちょっと専門的になりますが、FTPのアップロードが成功すると、「226 Transfer complete」というメッセージが出ます。 逆に言うと、 このメッセージが出なければ、「FTP転送してファイルアップロードに失敗した」ということになります。 失敗の原因としては、 FTPのアカウントやパスワードを間違った場合、 FTP転送先のディレクトリが存在しなかった場合などありますが、 とにかくこのメッセージがでなければエラーですので、 エラーログが残ることになります。 シェルをご提供します さてさて、上記のようなシステムですが、本気で作るとなると、 1日や2日どころか、テストまで含めたら1週間くらいかかりますよね。 しかもLinuxを関わる限り、いつかどこかで必ず必要になります。 そこで、もしよかったら 私が作成したシェルをご提供します。 もちろん「そのくらいのシェル、自分で書ける」という場合は必要ありませんが、 Linuxを運用する場合やシェルの一般用法を学びたいなら、 是非、お取り寄せしてくださいね。 提供物の中身 で、その提供物(シェル)の中身ですが、以下の4ファイルになります。 ・シェル本体(backup_ftp.sh) ・共通関数(common_func.sh) ・設定ファイル(parameter.txt) ・使い方説明書(PDF) まあ、この4ファイルのうち、上の3つのファイルは「シェルの基本構成」なわけで、 初心者には是非覚えて欲しいです。 もう少し具体的に言うと、↓のような感じになります。 <シェル本体> 共通関数、設定ファイルを読み込みます。設定ファイルに記述された「サーバー、指定ディレクトリ、指定期間」に従って、 ファイルをバックアップ&転送します。 <共通関数> ・エラーチェック上記の「エラーが発生した場合」をチェックします。 ・エラーログ書き込み エラーが発生した場合、指定したファイルにエラーログを残します。 <設定ファイル> 設定ファイルの詳細サンプルを↓に記載しました。#バックアップディレクトリ(絶対パスで指定ください) BACKUP_DIR="/home/sato/from" #バックアップサイクル(現在は、一週間単位) #一ヶ月単位の場合は、CYCLE=`date +%d` CYCLE=`date +%w` #バックアップファイル名 BACKUP_FILE="backup-$CYCLE.tar.gz" #FTP接続アドレス REMOTE_ADDRESS="192.168.11.100" #FTP接続アカウント ACCOUNT="sato" #FTP接続パスワード PASS="password" #データ転送モード TRANSFER_MODE="binary" #リモートディレクトリ(FTP転送するディレクトリ) REMOTE_DIR="/home/sato/to" #エラーログファイル ERROR_LOG_FILE="/home/sato/error.log" 使い方説明書の目次 また、使い方の説明書の目次は以下になります。 内容の保証 以上のような内容になります。 私は、アナタにとって役に立つと思います。 しかし、最終的に 役に立つかどうかを決めるのは、アナタです。 (もし、アナタの役に立たないのに、代金をいただくのは、私の本意ではありません。) このレポートは、 6ヶ月の完全返金保証を行います。 返金要求方法は簡単です。アナタが 気にいらない場合は、申込されるとメールが届きますので、 そのまま返金要求してください。 謹んで返金させていただきます。 では、お値段です。 Linuxの自動バックアップ&FTP転送シェル 4,000円です。 ※会社の上司に納期1週間と言われても、こっそり3時間で完了できます(苦笑)。 お申し込みはこちらです。 <カード決済>か<銀行振込>どちらかでお申込みください。 <カード決済>今すぐレポートをダウンロードできます。
<初めての場合> <パスワードをお持ちの場合> <銀行振込>入金後(48h以内に)レポートを送ります。
銀行振込み口座は下記に登録したメールアドレスにお送りします。お申込み後、5日以内にお振込みください。 追伸 FTP成功は、どうやってシェルに組み込む? バックアップシステム、仕組みは簡単ですよね。 要するに物理的に別のサーバーにファイルを送れば良いだけですから。 でもね、じゃあ、その 「別のサーバーにファイルを送って成功したのか失敗したのか」って、 どうやってシェルに組み込むのか?ここはちょっと難しい。 私も一苦労しました(苦笑)。 今回のシェルでもちろん種明かししますので、 これを知っているだけでも、 アナタの技術力は相当アップするはずですよ。 是非試してみてくださいね。 あっ、そうそう、このシステムを試す場合、 サーバーが2台必要と思うかもしれませんが、 試すだけならサーバー1台で実験可能です。 運用サーバーとバックアップサーバー兼務させることができます。 それも本説明書に記載しました。 是非、がんばってくださいね。 では、では。 またお会いしましょう。 ありがとうございました。 サーチマン佐藤 特定商取引法の表示 |