• ベストアンサー

未使用で一定期間以上経過したファイルの削除

未使用で一定期間以上経過したファイル(例えばTemp内にあって一週間更新されていないファイル)を自動的に削除するバッチファイルを作成したいと考えています。 何かうまい方法はないでしょうか? unixでの find /temp -mtime +7 -exec rm {} \; のfindにあたるようなのがあれば非常に助かります。

  • aky_t
  • お礼率88% (16/18)

質問者が選んだベストアンサー

  • ベストアンサー
  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.3

DOS上で実行できる UNIXライクコマンドのうち、必要なもの(find/rm)のみを pathの通った場所に置き、バッチファイル上でそのコマンド(find等)を実行するというのではダメなのですか? 先に紹介したwcshや、http://www.vector.co.jp/soft/win95/util/se010511.htmlなどには findやrm 他、様々な unix like コマンドが内包されています。これを各クライアントのpathの通った場所に置くか、ログオンバッチと同じディレクトリに置けばよいのではと思います。

参考URL:
http://www.vector.co.jp/soft/win95/util/se010511.html
aky_t
質問者

お礼

再びすばやい回答ありがとうございます。 かなり離れたクライアントもあるため、端末一台一台にUNIXライクソフトをインストールして回ることが出来ず、無理だと思っていましたが、 ソフトをダウンロードしてみたところ、実行ファイルのみで動くソフトのようなので離れた場所にある端末にもネットワークで送り付ける事が出来そうです。 解決しそうです。ありがとうございました。

その他の回答 (2)

回答No.2

このさい苦労するよりcgywin使うという手はどうでしょう? リンクはgooでcgywinで検索したページの一つです

参考URL:
http://www-cc.ee.tokushima-u.ac.jp/~a-gamyl/win/Cygnus/Cygnus.html
aky_t
質問者

お礼

さっそくの回答ありがとうございます。 ちょっと事情があって、出来ればバッチファイルだけで解決できる方法を探してます。 多数(40台位)のすでに散らばって設置してある端末に対して一括で設定したいのです。 同じワークグループで同じユーザーで使うように決めてあるため、 すでにいくらかのコマンドをドメインサーバーのユーザーの設定、 ユーザーのプロファイルのログオンスクリプトとしてバッチファイルを用いて、 全端末にログオン時にバッチファイルを走らせています。 出来ればそのバッチファイルに追加する形での方法を探しています。 ありがとうございました。

  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.1

Windows用に用意されたコマンドインタプリタを入れてみてはどうでしょうか?Vector(http://www.vector.co.jp/vpack/filearea/win/util/shell/index.html)などで探せば沢山あると思います。 私は http://www.threeweb.ad.jp/~ishioka/ の wcsh(freeware)というのを使わせてもらっています。

aky_t
質問者

お礼

ちょっと事情があって、出来ればバッチファイルだけで解決できる方法を探してます。 多数(40台位)のすでに散らばって設置してある端末に対して一括で設定したいのです。 同じワークグループで同じユーザーで使うように決めてあるため、 すでにいくらかのコマンドをドメインサーバーのユーザーの設定、ユーザーのプロファイルのログオンスクリプトとしてバッチファイルを用いて、 全端末にログオン時にバッチファイルを走らせています。 出来ればそのバッチファイルに追加する形での方法を探しています。 ありがとうございました。

関連するQ&A

  • 1週間経過したファイルを削除 かつ最新のファイルは残しておきたい

    こんばんは、初投稿になります。 現在Linux系サーバのファイル管理を行っているのですが /tmpディレクトリに定期的ファイルが作成される設定にしております。 そこで1週間以上経過したファイルは削除し、かつ最新のファイルは 1つは残すような仕組みにしたいのですが…cronに登録し find /tmp -mtime +7 -type f -exec rm -fr {} \; をしてみたのですが、10日更新されなかった場合は全てのファイルが消えてしまいます。最新のファイルだけは残せる方法をご存知でしたら 教えてください。 よろしくお願いします。

  • 古いファイルを削除したいのですが。。。

    こんにちわ。 findコマンドを使って、あるディレクトリにどんどんできるファイルの古くなったものを削除したいのです。 例えば、7日以上更新がないものを削除したく、 # find /hoge/backup -mtime +7 -a -type f -exec rm -f {} \; というコマンドを実行してみましたが、結果は、削除されず残ったままで、しかも一部のファイルが元々古い日付だったものが、実行日時でタイムスタンプが書き変わってしまってます。 シェルはbashでもcshで試しても同じでした。 どうすればよいかご教示お願いできますでしょうか?

  • 一定期間過ぎたファイルを削除

    CentOSを利用したwebサーバ(専用サーバ)をレンタルで利用しています。 コントロールパネルとしてPleskがインストールされています。 現在、某アクセス解析ソフトを利用しているのですが、そのログファイルがデフォルトでは1年分くらい保存されています。 しかし、そのためにサーバ容量を圧迫しているので、数ヶ月分だけ取っておいて、あとは自動で削除されるようにしたいです。 知り合いに聞いたところ、以下のコマンドを紹介されました。 find /var/www/vhosts -iregex ".*/httpdocs/cgi/acc/logs/*.log" -mtime +120 -exec rm -f {} /; これで、120日以上経ったファイルは削除するはずですよね? しかし、logsのフォルダには120日以上前のファイルが保存されています。 これは、何が悪いのでしょうか? また、これがなぜ動かないかを確認する方法はありますか? 教えてもらった人に連絡を取ろうとしたのですが、現在連絡が取れずちょっと困ってます。

  • 作成してから一定期間経過したファイルを自動的に削除するコマンド

    こんにちは。 LinuxのPCのsambaで共有したフォルダにTVチューナボードで録画したmpegファイルを保存しています。 録画しても結局見ない事もありまして、例えば録画して(mpegファイルが作成されて)から1週間経過したら拡張子.mpgのファイルを自動的に削除~ の様なことができると定期的にHDDの残り容量を調べてmpegファイルを手動削除、としなくてすむので便利だなと思うのですが、 ・特定のフォルダの中の ・特定の種類の拡張子を(この場合はmpegファイル、.mpg) ・ファイルの作成日から一定期間経過したら(例えば1週間、720時間) ・自動的に削除(コマンドをcronに登録するような) するような方法ご存じでしたらアドバイス頂けると助かります。 現在は rm -f /var/samba/*.mpg としてsambaフォルダの中の拡張子.mpgを全部削除、としてますが、これを例えば720時間(1週間)経過したもの、という条件をさらに追加するようなことは可能でしょうか?

  • vbscriptで現在日付から一定期間以上経過した作成日付のファイルを削除する方法を教えてください。

    概要は題記の通りですが、ファイルの作成日付を参照して現在から一定期間経過したファイルを削除したいです。 宜しくお願いします。

  • 一定時間が経過したフォルダの削除

    一定時間が経過したファイル削除のsauceを使って、サーバーのディレクトリを削除しようとしましたが指定した時間内のディレクトリが削除できません。間違っている個所をご指摘くださいますようお願い致します。 #古いディレクトリの削除 $dir='./z'; opendir(DIR, "$dir"); my @dirlist = grep /^*/, readdir DIR; closedir(DIR); my $expire_t = 15552000; #180日以上経過したファイル指定  (1日は86400) my $expire_d = 31536000; #365日以内に生成されたファイル指定 my $now = time; foreach my $deldir (@dirlist){ my $mtime = (stat("$dir/$deldir"))[9]; if ($now > $mtime + $expire_t && $now < $mtime + $expire_d){ rmdir("$dir/$deldir"); } } どうぞ宜しくお願いします。

    • ベストアンサー
    • Perl
  • 指定日数経過したファイルをバッチを使って削除する方法

    お世話になります。 今回質問したいのは、あるフォルダ内で作成から5日経過したファイルを削除するバッチの作成方法です。 例えば del /s /q "c:\temp" これを実行するとtempフォルダ内のファイルがサブフォルダを残してすべて削除されます。 これを「作成から5日経過したもののみ」と条件をつけたいのです。 あと、できたら「5日以上アクセスのないもの」という条件もあわせて教えていただければ幸いです。 今回業務の関係で上記処理をバッチでの実行に限定されています。 VBSなどでもできるとは思いますが、バッチコマンドを教えていただければと思います。 わがままを言って申し訳ありませんが、よろしくお願いします。

  • 特定のフォルダに入れたファイルを一定時間が経過したら削除する方法 VBS ?

    特定のフォルダ >>例えば..\\a\folderに入れたファイルを一定時間が経過したら削除する方法を教えてください。 イメージとしてはタスクスケジューラなどで15分毎にバッチファイルが動作するように設定しておき、 そのバッチからvbsなどをキックして現在の時間と保存されているファイルの時間差を確認してvbs内で入力してある一定の時間を経過していたら削除というようなものにしたいと思っています。 動作のイメージは湧くのですが、いざvbsを書こうと何から手をつけていいのかもわからず、参考になるサイトや簡単なものであるのであれば作成のアドバイスを頂けたらと思い投稿いたしました。 またそのようなことを実現するフリーソフトなどあれば教えてください。よろしくお願いします。

  • Solarisで0byteのファイルのみ削除したい

    Solaris11.3環境です。 以下のような構成のディレクトリがあるとします。 ---------------------------------------------- /var/tmp/KOTEI/END/ /var/tmp/組織コード/END/ ---------------------------------------------- この配下にシステムでファイルが大量に作成されるのですが、その中には0byteのファイルも含まれます。 この0byteファイルが1ヶ月で10万個近く溜まってしまうので、シェルで自動削除しようと考えています。 ファイル名に関わらず、0byteファイルは全て削除します。 以下のようなコマンドを考えたのですが、問題ないかご意見いただけないでしょうか? ---------------------------------------------- find /var/tmp/KOTEI/END -size 0c -exec rm {} \; find /var/tmp/*/END -size 0c -exec rm {} \; ---------------------------------------------- 一番怖いのは、0byteでない、データが含まれているファイルも誤って削除してしまうことです。 また、組織は変更になる可能性があるため、"*"にすることで対応できているか不安です。 是非アドバイスの程、よろしくお願い致します。

  • findコマンドで複数条件を設定する方法

    findコマンドを使用して、最終更新日から10日以上経過しているかつ、拡張子が.gz 以外のファイルを圧縮する方法を教えていただきたいです。 それぞれ1つの条件を満たすコマンドはわかるのですが、2つの条件を満たすコマンドをどの様に作成すればよいかわかりません。 最終更新日から10日以上経過したファイルを圧縮 find . -mtime +10 -exec gzip {} ¥; 拡張子が.gz意外のファイルを圧縮 find . -name "*.gz" -prune -o -type f -print -exec gzip {} ¥; よろしくお願いします。