- 締切済み
シェル(Unix) ファイル更新を監視する方法がわからなくて困っています。
ファイルが更新されているかシェルで監視したいのですが、どのようなシェルになるのでしょうか? たとえば、 Aファイルにはフルパスで記述している複数のファイルが記述してあり、その個々のファイルのファイルサイズやタイムスタンプを採取し、 Bファイルに出力させます。 再度、Aファイルを読み込みlsコマンド等の出力結果と、Bファイルの出力結果のファイルサイズやタイムスタンプを見比べて、相違があると メッセージを出力させます。 このような動作のシェルはどのように作るのでしょうか。
- takumi_777
- お礼率100% (1/1)
- その他(OS)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kazzanov
- ベストアンサー率27% (5/18)
findのctimeとか、diffとかいろいろやり方はあると思いますが、前回のls -lの結果があるなら、diffを使えば差異があるかどうかはすぐにわかりますね。 ls -l /hoge > after.txt if [[ `diff before.txt after.txt | wc -l` = 0 ]];then みたいな感じ。
関連するQ&A
- シェルスクリプトで古いファイルの自動削除をするには?
UNIXで以下の仕様を持つシェルスクリプトを作成しようと していますが、どうもうまくいきません。 どなたか、いい知恵を貸していただけないでしょうか? 目的: 特定のディレクトリ内にあるファイルについて、 システム日付より3日前のタイムスタンプを持つファイルを 削除する。 留意点: ・削除対象のファイルは複数存在する場合がある。 ・ファイルサイズは1件あたり 0byte-数百Mbyte となる 可能性がある。 ・ファイル名は不定。 ・スクリプトはBシェルまたはCシェルとする。 参考: ・現在使用しているOSについて ls -l でのタイムスタンプにおける出力形式は以下のとおり (デフォルト値?) ・ 9月 28日 2000年 または 10月 24日 10時45分 知っている限りのコマンドを使っていろいろやってみたんですが、 結局ダメでした。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- unixのシェルで
シェルを実行して、ファイルAの内容と、引数Aを連結してファイルBを作成したい場合にはどうしたら良いですか? 例> 実行するシェル : test.csh ファイルAの内容 : 123456 引数A : 9 作成したいファイルBの内容 : 1234569 123456と9の間にSPACEは入れないようにしたいのですが、どうしても入ってしまいます。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- Kシェルでファイル削除処理
kシェルで、ファイルを1行ずつ読み込み、記述されたファイルを削除する処理を作成したいのですが、ワイルドカード指定にも対応したいです。最初はrm -r で実施しようとしたのですが、これだとディレクトリも削除されてしまうので使えませんでした。rm -fでやった場合も削除に失敗した場合のエラーハンドリングが難しく困っています・・・。 何か良い方法はないでしょうか? lsコマンドの出力結果を再度読み込み、ファイルだったら消すという方法ぐらいしか思い浮かばず・・・。
- ベストアンサー
- その他(プログラミング・開発)
- unixのシェルでファイル内容を読み込む
ど初心者です。わかりづらいかもしれませんが宜しくお願いします。 以下のような処理を行いたいと考えています。 (1) aaa.sh(シェルスクリプト)にてバッチプログラムを起動 (2)バッチでエラーの場合、結果ファイル(bbb.txt)に「1」を出力する。 (3)aaa.sh(シェルスクリプト)にて結果ファイルの内容を読み取り「1」の場合は、再度バッチプログラムを起動する。 このうち(3)の処理にて、結果ファイルの読み込み方法がわかりません。 調べた結果、以下のような処理で可能なようですが・・ while read LINE; do echo $line done < aaa.txt 読み込むのは1行なので、ループ処理にはしたくないのですが、例えば「read LINE aaa.txt」のような簡単なコマンドで、ファイルの中身を読み込むことはできないのでしょうか? 実はUNIXが初めてで、しかもスケジュールに余裕がないため焦っております。 なにぶん知識不足な故、ちんぷんかんぷんな質問かも知れませんが、よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- タイムスタンプ更新時にシェルを実行する方法
事前に、とあるシェルを準備して保存しておきます。 特定のファイルのタイムスタンプが更新されたら 即、その準備しておいたシェルを実行する方法はありますでしょうか? cronで実行するのではなく、そのファイルの更新された時のみ即、実行したいのです。 OSはCentOSになります。 よろしくお願いします。
- ベストアンサー
- Linux系OS
- シェルで12時間前のファイルを消す方法
こんにちは。UNIX(HP-UX)のPOSIXシェルで質問です。 指定したフォルダの中の「現在時刻より12時間前のタイムスタンプのファイルを消す」方法はないでしょうか? findコマンドは24時間の倍数しか検索できないので、12時間前は指定できません。 12時間以上前のファイルは、すべて消えてかまいません。(例えば15時間前のファイルなど) できれば抽象的な説明ではなく、具体的で、すぐに動くコーディングを記述して下さると助かります。 以上宜しくお願い致します。
- ベストアンサー
- Solaris系OS
- シェルでファイルを読み込む
csh を使っています。 ファイル hoge には1行に一つずつファイルの / からのパスが記されています。 hoge から 1行ずつファイルパスのリスト読み込んでそのファイルについて ls -al を行なった結果をファイル foo に保存したいのですが、どのようなシェルプログラムを作れば宜しいでしょうか? awk/sed も使える環境ですので、これらを使ったスクリプトでも構いません。 非常に初歩的な質問で申し訳ありませんが、宜しくお願いします。
- ベストアンサー
- その他(OS)
- 実行ファイルで...
シェルからの実行ファイルを作りたいです。 例えば、jikkouというファイルにエディタで次の記述をしたとします。 ls jikkouをchmodで777とし、プロンプトからjikkouとするとlsコマンドと同じ結果が得られますよね。 MS-DOSでjikkou.batの中に dir を記述しjikkouを起動するとdirと同じ結果が得られます。このjikkou.batの中を次のように書き換えたとします。 dir *.%1 jikkou.batを起動するときに c:>jikkou bat とすると、結果は batの拡張子を持つファイルだけの出力になります。 同じように引数を与えて実行する方法ないでしょうか? 例えば ls *.%1 と記述して、jikkou gif で gif拡張子だけを取り出したいとか... 宜しくお願いします。
- ベストアンサー
- Solaris系OS
- UNIXのシェルスクリプト
以下のようなことをUNIXのシェルスクリプトでやりたいのですが いい方法が思いつきません。 どなたか教えて下さい。 元ファイル : : .model RNWX r .model RPX r .model RNX r .model RPOX r 条件ファイル RNWX 1000 0.7 RPX 900 0.4 RNX 800 0.072 元ファイルと条件ファイルを読み込んで以下のようなファイルを出力したい。 出力ファイル : : .model RNWX r tc1=1000 tc2=0.7 .model RPX r tc1=900 tc2=0.4 .model RNX r tc1=800 tc2=0.072 .model RPOX r (条件ファイルに記述のないものについては元ファイルのまま)
- ベストアンサー
- その他(プログラミング・開発)
- nslookupでlsの結果をファイルに出力
Solaris8を使用しています。 nslookupでlsの結果をファイルに出力したい場合、例えば % nslookup > ls -d ドメイン名 > 出力ファイル名 とすればいいのはわかりますが、これをシェルで自動化しようと思うとうまくいきません。 シェルスクリプト内に、 --------------------------------------------- nslookup ls -d ドメイン名 > 出力ファイル名 exit --------------------------------------------- または、 --------------------------------------------- nslookup > 出力ファイル名 ls -d ドメイン名 exit --------------------------------------------- としてもうまくいきません。 または対話形式ではなく、nslookupに引数を渡してlsの結果を得ることが可能であれば何とかなると思うのですが・・ もしご存知の方がいらっしゃいましたらご教授お願いします。
- ベストアンサー
- Solaris系OS
お礼
回答、ありがとうございました。