トップページ»2.マイプロダクト»ファイルサーバーお掃除スクリプト

2.マイプロダクト



ファイルサーバーお掃除スクリプト

まず最初に。 完全無保証です。 まぁ2004年頃から実働環境で使ってるので大丈夫かなとは思いますが…

前置きはさておき、Windows向けファイルサーバー中の古いファイルを強制的に削除するスクリプトです。 XP,2000,2003で動作確認してます。 XPも動くのでファイルサーバー限定って訳じゃないですけどね。

ありがちな話だと思うんですが(違う?)、共有しているファイルサーバーってどうしてもゴミの吹き溜まりになってしまう訳でして、これがディスクを圧迫してパンクする、でもどれを消したらいいのかこちらでは分からない、結局消せない、という最悪の状況がありました。

当時これに何とか歯止めを利かせようと苦肉の策として作った代物です。 ユーザーからすればある種極悪なんですが、ルールとして「ここのフォルダは一定期間で消えますよ。消えたものの保障はしませんよ。」と強引に押し付けてしまいました。

でも全ユーザーが共有するフォルダにだけ適用したので、クレームというクレームは無く今日まで至っています。(ていうかユーザーもパンクは辛いみたいね。)

最近ようやくストレージ入れ替えたので当面はお役御免となりそうな感じですが、移設作業中にスクリプトの存在を思い出したので公開してみようかなと。




必要に迫られてばばっと作ったものなので大したことやってません。 単純に指定されたフォルダから最下位のフォルダまで再帰的に全部なめて、古いファイルがあったら消す、フォルダ中にファイルが無くなったらフォルダも消す(フォルダは消さない設定もあり)、を繰り返しているだけです。

ちなみに古いファイルの基準はファイル更新日基準です。 長いこと更新されていないファイルを消すようになってます。

スクリプト中のDateLastModifiedの部分全部をDateLastAccessedに変更すれば最終アクセス日時基準に、DateCreatedに変更すれば作成日時基準になる(と思います、未確認)ので必要に応じて変更して下さい。 DateLastAccessedならもう少し緩めに、DateCreatedなら更に厳しくって感じになるんじゃないかと。

で、6ヶ月以上編集されていないファイルを消す場合は、Limitを6に、LimitUnitをmにすればOK。 日(d)や年(y)単位にも設定できます。

一応何を消したのか簡単なログも出ます。(消す対象フォルダにログを作るように設定しちゃうとログも消えちゃうので注意) 設定に応じてログファイルの保存数を変更できます。

あとデバッグモードとして、ファイルを消さずに何が消える予定なのかログに吐くだけの設定もできますので、必ずこちらで確認してからやって下さい。

デイリー、ウイークリーとかで自動実行したい場合はATとかタスクとか使って下さい。

何度も書きますが、完全無保証です。 必ずバックアップを取って、デバッグモードで実験してから本番に使って下さい。 重要なファイルが消えても責任取れませんので。m(._.)m

ファイルサーバーお掃除スクリプト(dss.vbs.txt)

あ、使うときはdss.vbsにリネームして下さい。


投稿日 : 2007年7月10日

この記事に関する言及

このエントリーのトラックバックURL:
http://akionweb.com/mt-tb.cgi/372

コメント

このページに対する感想、意見をお寄せ下さい。




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)

おことわり

当サイトに掲載している全ての情報は、全て当サイト管理者が個人的、実験的に試した事、又は独自に調査したものです。 従ってその情報に誤りがある可能性も多分にあります。 当サイトの情報をそのまま鵜呑みにされませんようお願い申し上げます。 また当サイトの情報を元に作業されたりする場合はそれをご理解頂いた上で、あくまで自己責任の元で行ってください。

トップページ»2.マイプロダクト»ファイルサーバーお掃除スクリプト