|
Linux運用中の不要ファイルを自動削除するシェル
あなたのLinuxサーバーは、大丈夫ですか? というのは・・・ 不要ファイルがどんどん増えて、サーバーが Disk Fullでシステムダウンしてしまう話を、よく聞くからです。 システムを運用していると、どうしてもファイルが増えていってしまいますね。 ファイルはどんどん増えますが、時間が経てば不要なファイルばかりになっています。 不要ファイルは、どんどん削除しなければなりませんが、やっとこ運用を始めたような状態だと、ついつい不要ファイルの削除なんて後回しになってしまいますね。でも、これじゃ、システム運用として、ちょっと拙い(まずい)です。というか、怖いですよ、本当に。 Disk Fullのエラーだけは回避しよう 通常のシステム運用で「何が怖い?」って、ハードディスクがパンパンに一杯になってしまう状態が一番怖いです。 いわゆる「Disk Full」というエラーですが、このエラーが発生すると、システムは確実にダウンします。 いや、下手すればログインだって出来ないですよ。 何故なら、通常、プログラム(プロセス)を起動するときには、一時ファイルが作られるのですが、この一時ファイルを作ることが出来ないほどディスクが一杯になってしまえば、それで終わりなのです。システムが起動不能に陥ります。 ※一時ファイルってピンと来ないかもしれませんが、例えば、ワードやエクセルを動かす場合だって、そのファイルと同じ大きさのファイルが一時的に作られているのです。 ログファイル、運用ファイル、昔使ったファイル。常にハードディスク容量に空きを作るためには、これらのファイルを自動で削除するための工夫が必要です。 不要ファイルがどんどん増える 例えば、私の運用しているサーバーの話をしましょう。私の運用サーバーには、別のサーバーからデータファイル10M(メガ)が毎日送られてきます。 ↓のような感じで、ファイルの名前に日付が入ったファイルが、毎日溜まっていきます。 20071031.data 10M(メガ) 20071101.data 10M(メガ) 20071102.data 10M(メガ) ・・・・・・・・・ この調子でいくと、 10日で100M(メガ)、100日で1G(ギガ)も溜まっていってしまいます。 私のサーバーでは、このファイルを日次の処理で使うのですが、まあ1週間もすれば、全くの不要ファイルになります。そこで、私はこれらのファイルを自動で削除するシェルを独自に開発して使っています。 よかったら、提供します 今回、よろしければ、↑で述べた 私の使っている不要ファイルを自動削除するシェルを、あなたにご提供したいと思います。 もちろん、ご自分でシェルをパッパと書ける方なら必要ないと思いますが、そうでなければ、「あーだ」「こーだ」やって作るよりも、手に入れておいて使ったほうが良いかなあと思います。時間も節約できますし。いつかは必要になるでしょう。 ということで、 興味のある方は、↓の要件をよくお読みください。 不要ファイルを自動削除するシェルの要件 あなたに御提供するシェルは、こんな要件です。
決めるのは、あなたです システムに関わっていたら、このシェルは必ず必要になる日がきます。その時になって、上記のような要件で本気でつくるとなると、1日や2日どころか、テストまで含めたら1週間くらいかかります。 忙しいあなたにとっては、今回ここで手に入れてしまった方が効率的だと思いますし、時間も努力も節約できます。言葉は悪いかもしれませんが、時間を多少のお金で買って頂ければ、という感じです。だから、私は、このシェルはあなたにおススメしたいと思います。 おススメはしますが、もちろん、あなた自身が、このシェルを購入するかどうかをお決めください。「そのくらいのシェル、自分で書ける」と思われるかもしれませんし、絶対に必要ない場合もあるかもしれませんので。 でも、実際に書くのが面倒だというような場合や、私がどのようなシェルを書いているか勉強しようと思われるなら、やはり、おススメということになります。どうぞ、あなた自身が、今後の必要性に応じてご検討ください。 シェルの基本の勉強になると思います もし、あなたが「シェルの一般的な方法を勉強したい」とお思いでしたら、このシェルをご購入ください。何故なら、シェルに必要な知識を勉強できるからです。 具体的に言うと、設定ファイルに指定したディレクトリの繰り返し処理、指定ディレクトリの存在とパーミッションのチェック、指定ファイルの削除処理チェック、そしてチェックでエラーが発生した場合のメール送信、ログ出力関数、そんな事が勉強できます。 構成は3ファイルです 以上述べてきた要件とチェック機能を持つシェルですが、その構成は以下の3ファイルです。 ・自動削除シェル(本体) ・共通関数(ログ出力、処理チェック、メール送信) ・設定ファイル これら3ファイルは、具体的に言うと、こんな内容です。 <自動削除シェル(本体)> bashで作成してあります。まず、共通関数、設定ファイルを読み込みます。 設定ファイルに記述された「指定ディレクトリ、指定ファイル形式、指定経過時間」に従って、ファイルの削除処理を繰り返します。その際に、共通関数を使って、削除件数、削除リストをログ出力します。 また、指定ディレクトリが存在しない場合、指定ディレクトリが読み取り不可の場合、対象ファイルが削除不可の場合には、メールで連絡があります。 <共通関数> bashで作成し、以下の3つが共通関数になっています。・ログ出力関数 日付が入ったログファイルを自動生成し、任意のメッセージをログとして出力します。 日付が入ったログファイルとは、例えば↓のようなファイルのことです。 20071108.log ・処理チェック関数 指定ディレクトリが存在しない場合、指定ディレクトリが読み取り不可の場合、対象ファイルが削除不可の場合などの実行をチェックする共通関数です。この関数を知っておくだけでも、相当の勉強になると思います。 ・メール送信関数 処理チェック関数でエラーが発生した場合は、指定したメールアドレスにエラー内容を送信します。 <設定ファイル> ログ出力先、メール送信先、ディレクトリ、ファイル形式、経過時間を指定します。設定ファイルの詳細サンプルを↓に記載しましたので、ご覧ください。 設定ファイルの中身は、以下のようになります。 <設定ファイルの中身> #処理チェック結果のメール送信先mail_address="********" #メールタイトル mail_subject="ファイル自動削除が失敗しました" #dir:削除対象のディレクトリを指定します。 #day:削除対象の日数を指定します。この日数以前に作成されたファイルを削除します。 #type:削除したいファイルのタイプです。例:*.xmlは、拡張子xmlを削除対象とします。 #配列[]の数字を増やすことで、削除対象を増やすことができます。 #↓の場合、/home/satoディレクトリで、3日以上経過して、拡張子xmlファイルを削除します。 dir[0]="/home/sato/" day[0]="3" type[0]="*.xml" #↓の場合、/home/sato/logディレクトリで、90日以上経過して、拡張子logファイルを削除します。 dir[1]="/home/sato/log" day[1]="90" type[1]="*.log" #↓の場合、/home/file/dataディレクトリで、7日以上経過して、拡張子dataファイルを削除します。 dir[2]="/home/sato/file/data" day[2]="7" type[2]="*.data" #↓の場合、/home/file/dataディレクトリで、7日以上経過して、先頭abcのファイルを削除します。 dir[3]="/home/sato/file/data" day[3]="7" type[3]="abc*" 最後に 以上述べて来たシェルになります。 不要ファイルを削除したい、将来必要になる可能性がある、シェルの勉強したい方は、お申込みください。 料金は、たったの3000円です。 私が言うのも何ですが、 実際の作業時間と内容を比べても、決して後悔いたしません。 もし後悔するようでしたら、 6ヶ月間は、 完全返金保証します。 そんなシェルになります。 カード決済でお申込みしたい方は、こちらです。 カード決済なので、すぐにダウンロードすることができます。 銀行振込の方は、こちらからお申込みください。 (入金後、3日以内の発送になります。) <銀行振込での申込フォーム> 下記「お申し込みフォーム」に必要事項をご記入の上、「予約する」ボタンを押してください。入力いただいたメールアドレスに、お振込先を記したメールを送信させていただきます。 不具合などがございましたら、こちらのメールフォームからご連絡ください。 お申し込み後1週間以内にお振込ください。 こちらで入金が確認でき次第、ダウンロードURLをお知らせします。 ※ 振込手数料はご負担ください。 ※ お申し込み後、1週間経っても入金が確認できない場合はキャンセル扱いとさせていただきます。 特定商取引法の表示 |