テンポラリディレクトリを自動削除 | SPSS備忘録

テンポラリディレクトリを自動削除

私が使っているのを知っているからか、某システムベンダーの若手エンジニアが、「Clementine Serverって、使っているとゴミファイルがたまって、ハードディスクがいっぱいになっちゃうんですけど、それを消す機能がないんですよ」と言っておりました。


確かに私も使っておりますので、それは知っているのですが、基本的にテンポラリファイルは処理終了時に自動で削除され、ユーザー自身の手で処理を中断させたり、不測のエラーで止まったときのみファイルが削除されずに残ります。エラーを出さない使い方をすれば全くたまりませんので、まあ「ファイルが残るなんて、彼が下手なんだな」というのが感想ですね。


Clementine ServerはWindowsのサービス(UNIXのデーモン)で、SPSS社のサポートは、


1.サービスにある「Clementine Server 11.1」を停止する

2.あらかじめ指定しているテンポラリディレクトリのファイルを削除する

3.サービスにある「Clementine Server 11.1」を再起動する


ということを対策として紹介しておりました。


「サービス・・・を停止する」、「ファイルを削除する」、「サービス・・・を再起動する」。全部OS(Windows)の処理じゃないですか。まがりなりにも「システムベンダーのエンジニア」が、これに対処できなくてどうするのでしょうか?。私、エンジニアではないですが、答えわかりましたよ。


「1.サービスにある「Clementine Server 11.1」を停止する」は、Windowsのコマンドでいうところの「NET STOP "Clementine Server 11.1"」ですね(Clementine Server 11.1はサービス名)。


「2.あらかじめ指定しているテンポラリディレクトリのファイルを削除する」は、「RD /s /q C:\spsstemp\」でテンポラリディレクトリ(C:\spsstemp\)を削除し、「MD C:\spsstemp\」で、もとのディレクトリを空で作成しておけばいいでしょう。


「3.サービスにある「Clementine Server 11.1」を再起動する」は、「1.」と同じ要領で「NET START "Clementine Server 11.1"」ですね。


一連のコマンドをまとめると、


NET STOP "Clementine Server 11.1"
RD /s /q C:\spsstemp\
MD C:\spsstemp\
NET START "Clementine Server 11.1"


となります。これをテキストエディタに記入して拡張子「*.bat」で保存し、このファイルをサーバー上でたたくと・・・、ほらこれで解決します。若手エンジニアさんに技術料を請求しましょう。勉強が足りません。


あとはこれをWindowsのスケジュール機能で、誰もサーバーを利用していない毎週月曜未明あたりに自動実行させれば、自動でこのディレクトリを掃除をしてくれます。SPSS Serverにも使えますし、間の2行だけを用いてClementine・SPSSのクライアント版にも使えます。というよりSPSS社のソフト以外でも、同じつくりの場合は使えると思います。