-PR-
  • すぐに回答を!
  • 質問No.7804176
解決
済み

シェルスクリプトでsyslogを別ファイルに追記

  • 閲覧数636
  • ありがとう数1
  • 気になる数1
  • 回答数1
  • コメント数0

お礼率 47% (117/245)

Linuxとシェルスクリプトの超初心者です。
よろしくお願いします!

下記のようなシェルスクリプトを作りたいのですが、アドバイスをよろしくお願いします。

例)
(1)/var/log/messagesを/tmp/syslogAllとしてコピーする
(2)一日一度のcronで、messagesの新しいログ部分のみをsyslogAllに追記していく。

(1)部分は問題ないのですが、(2)の「messagsの新しいログ部分のみをsyslogAllに追記していく」方法のアドバイスをよろしくお願いします。
一応、自分なり以下の通り考えたのですが、普通じゃなさそうなので・・・(^^;

※syslogAllの最後の行(keyword)を取得し、messagesをgrepした後リダイレクトで追記していく。

grep -A 10000 keyword /var/log/messages | grep -v keyword >> /tmp/syslogAll

どうぞ、よろしくお願いいたします!
通報する
  • 回答数1

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

  • 回答No.1
レベル13

ベストアンサー率 77% (486/628)

まずはlogを長い期間保存したいのでしたら、Linuxのログローテーションを調整することでできますので、そちらをお勧めします。
Linuxの設定はwebminを使えば比較的簡単にできます。それにはログローテーションの項目もあります。

さて、
diffを使った方法を紹介します。ファイルの差分をとれますので、減った分は無視し、増えた分だけを追加する方法です。
diff /tmp/syslogAll /var/log/messages|grep "^> "|cut -c 3- >>/tmp/syslogAll

普通/var/log/messagesは定期的にローテションされる設定になっているでしょうから、タイミングによって前の状態が全く残っていないこともありますので、その部分は無くなってしまします。最初に書いた方法が無難だと思います。
お礼コメント
renounce

お礼率 47% (117/245)

ありがとうございます!
実は、Linux自体の設定は変更が許されないので、できないのです。
diffコマンドありがとうございました。とても助かりましたし、勉強になりました!
本当にありがとうございました!
投稿日時 - 2012-11-21 01:43:47
-PR-
-PR-
  • 回答数1
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ