• ベストアンサー

Solaris5.6 の bshで3が月前の日付を取得するには?

毎日1回ファイルのリストを取得しているのですが、 それを月1回ある特定の時間起動の時に、3ヶ月前の ファイルリストは削除したいと考えいます。 ファイルリストは以下の形式で保存してます。 filelist.YYMMDD(例:filelist.030208) 問題は、3ヶ月前という日付を "date"コマンドで取得 する方法がわからないという点です。 TZ=JST+15 export TZ ↑このへんだと日にち指定は出来ますが、月は指定 できなかったのです。 bshで組んでいます。 何か良い策があったら教えて下さい。

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

  • ベストアンサー
  • shige_70
  • ベストアンサー率17% (168/946)
回答No.2

#1の方のご回答されているとおりで良いと思いますが、findによる削除のやりかたとしては、#1の方の書かれているものの他に $ find /path/to/log_dir -name 'filelist.*' -mtime +90 -exec rm {} \; という書き方もあります。

bluckyu
質問者

お礼

ありがとうございます。findコマンドバージョンを 使わせて頂きます。

その他の回答 (1)

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.1

古いログを消したいという動機なら,そんな面倒なことをしなくても,find で90日以上更新されていないファイルを検索して削除すればいいのではないでしょうか. $ rm -f `find /path/to/log_dir -name "filelist.*" -mtime +90`

bluckyu
質問者

お礼

おっしゃる通りです。その使い方忘れてました。。。 ありがとうございます。

関連するQ&A

  • HPUX 11iでの日付について

    AIX環境では、「env TZ=JST+63 date」コマンドで 三日前の日付が取得できたのですが、 HPUX 11iでは日付が取得できません。 結果としてはTZがJSTからEDTになってしまいます。 どうにかして、3日前を取得することは出来ませんでしょうか? 確認したところJST+では24までしか対応しておりませんでした。 HPUX 11i [TEST:root]env TZ=JST+63 date Wed May 31 03:42:48 EDT 2006 AIX 5.1 [TEST2:root]env TZ=JST+63 date Sun May 28 16:46:54 JST 2006

  • bshの記述について

    お世話になっております。  現在Bshにて以下のようなことをしたいと考えておりますが、記述方法を教えていただけないでしょうか。  ユーザパスワードを一括で変更するスクリプトを作成したいのですが、ユーザはすでに登録されている前提で (1)ユーザリストファイルから、ユーザ名を入手 (2)パスワードファイルから対応したパスワードを取得 (3)パスワードを変更 わかる方おられましたら、回答お待ちしております。

  • 指定された日付・時刻を取得したい

    システム日付 + ファイルに保存されている指定データで、日付と時間を求めたいと思っています。 たとえば、 今から30分後の時間を指定する場合、 ファイルの指定時間には「000030」、指定日にちには「00000000」と入っています。 一ヶ月後を指定する場合、 ファイルの指定時間には「000000」、指定日にちには「00000100」と入っています。 どのように指定された日付を求めればよいのでしょうか。

    • ベストアンサー
    • Java
  • 6ヶ月前の日付を取得するにはどのようにすればよいでしょうか?

    6ヶ月前の日付を取得するにはどのようにすればよいでしょうか? いろいろどのようにすれば良いのか考えていたら、だんだんわけわからなくなってきてしまいました。 例えば「7月30日の6ヶ月前」という場合どのように書けばよいでしょうか。 お知恵をお貸しください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • Solaris9でdateコマンドの結果がおかしい

    sun fire + Solaris9でシェルを作成しました。 目的は、1ヶ月前のログを削除する です。 で、こんなシェルを作成しました。 #!/bin/sh # logmove.sh DAY=`date +%d` RMDAY=`env TZ=JST+735 date +%Y%m%d` # 24H*31Day-9H=735 RMFILE=log_${RMDAY}.* (以下省略) しかし、この結果、$RMDAYには今日の日付しか返ってきません。これを RMDAY=`env TZ=JST+159 date +%Y%m%d` # 24H*7Day-9H=159 とすると、ちゃんと1週間前の日付が返ってきます。 dateの仕様なのか、シェルの仕様なのか良くわかりません。解決策はないでしょうか。

  • 開始と終了を指定して、その間の日付を取得したい。

    開始と終了を指定して、その間の日付を取得したい。 C#(VS2008)環境です。 開始日と終了日を指定して、日付のリスト(できれば曜日を含む)が 戻ってくるようなメソッドを作りたいと思っています。 単純に、今月の1日から20日まで、とかならループして作れそうに 思うんですが。 たとえば、2010/02/20を開始、2010/03/20を終了とするような、 月をまたぐような場合にどうしよう…と悩んでいます。 (2010/02/20、2010/02/21、2010/02/22…というようなリストがほしい) アドバイスいただけないでしょうか。

  • バッチファイルにてFTPで指定したファイルを取得する

    OSはWindoswXPProです。 以下のようなBATファイルとバッチファイルを作成しました。 ---FTP.bat--- echo off ftp -s:get.ftp ---get.ftp--- open 10.0.X.X username password cd /log get log.yymmdd(実際には日付) c:\access_all_log.txt quit logというディレクトリには日次でログファイルが作成され ファイル名としてlog.yymmddと名づけられています。 やりたいことは2つあります。 1つめはftpするファイル名の日付部分をコマンドなどから 範囲指定して取得するファイルを指定できないか。 (たとえば070301~070315のファイルを一括で取得したい) 2つ目はftpでのファイル取得終了後に続いて バッチスクリプトを流したいのですが、その方法。 お分かりになる方いらっしゃいましたらよろしくお願いいたします。

  • 日付から順にデータを並び替えたい

    はじめまして、勉強しながらPHPを書いています。お力添え いただけないでしょうか。 list.csvから取り出したデータを今日の日付から順に年は無視して 並べ替えたいです。 $item[3]にyymmddで数値が入っています。 $array = file('list.csv'); foreach ($array as $line) { $item = explode(',', $line); $dm=substr($item[3], 2 , 2 ) ; $dd=substr($item[3] , 4 , 2 ) ; print "$dm月$dd日?n"; } 例)7月30日 11月2日 2月6日 5月22日・・・ 現在の日付の取得とそれを元に$lineを並び替えるにはどうすれば よいのでしょうか。

    • 締切済み
    • PHP
  • バッチ処理でファイル名に日付を指定したい

    こんにちは。 使用OS:WindowsNT4.0 Server バッチファイルで、 c:\>dir >yymmdd.dat というコマンドを実行させたいのですが、ファイル名としてyymmddのところを実行した日付にしたいのです。 で、yymmddの値が正しくなるようにバッチ処理中に日付を取得して、その値を変数に代入しなければならないと考えるのですが、変数に日付を代入するコマンドがわかりません。 そもそも無理なことなのかもしれませんが、バッチ処理でシンプルに行えたらなと考えております。 方法はありますでしょうか? その後に予想される問題なのですが、仮に変数に日付が代入されたとしても、その変数の内容をファイル名の一部として指定できるかどうかも分かりません。 重ねて質問ですがこれが無理な場合、何か代替案はないでしょうか? 何がしたいかと言うと、ドライブの空き容量を定期的に自動で吐き出させたいのです。 ソフト(フリーも含めて)に頼る方法が有るのでしょうが、基本的にソフトの導入は敬遠したいと考えております。 宜しくお願い致します。

  • Format関数

    ACCESSテーブルから、ExcelにエクスポートするVBAを作成し、 出力ファイル名に「ABC+日付(yymmdd)」をFormat関数を用いて 指定したのですが、 作成されたファイル名が「ABC070919」となるところ、 「ABC70919」と表示されてしまいます。 これを解決する方法などがありましたらご教授ください。 宜しくお願いいたします。