- PR -

dhcpの払い出し数を数えるbashを作りたいんですが

投稿者投稿内容
SEが好き
常連さん
会議室デビュー日: 2006/03/04
投稿数: 26
投稿日時: 2006-06-14 00:21
もう一つ要件がでてきました。

【新要件】
払い出しの時刻をチェックすることです。


【私の方法】
grep(perl)を使って以下のように出力しました。(改行コードを置換)

lease 192.168.1.198 { ends 5 2006/05/26 06:42:10;binding state active;
lease 192.168.1.197 { ends 5 2006/05/26 08:42:10;binding state active;
lease 192.168.1.196 { ends 5 2006/05/26 09:42:10;binding state active;
lease 192.168.1.195 { ends 5 2006/05/26 10:42:10;binding state active;

この中から、endsの日付が今より後のものだけを検出するには、どうすればよいでしょうか。
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2006-06-14 01:28
少なくとも、以下の次の3つの技術的な課題があります。
1) dhcpd.leasesのなかの、endsの部分の文字列(例: "2006/05/26 06:42:10")を取り出す手段
2) 現在の日時を得る手段 (1,3で比較できるような形式で取得できれば一番楽)
3) 上記の2つを比較する手段

1) は IPアドレスを得る方法と同じ手段が使えるだろうから省略。
2) は、shならdateコマンドを呼び出し(dhcpd.leasesと同じ書式か、あるいは1970年1月1日から
の経過秒数で得ると後が楽そう)、gawkはsystime()、perlはlocaltime、pythonはdatetimeモジュールで。
3) は、shは知らないし調べてないのでパス、gawkはmktimeで1)を数値化して大小比較、
perlもたぶん同様かDate::CalcモジュールかDate::Manipモジュールあたりで出来そう、
pythonはたぶんdatetimeモジュールで出来そう。

とりあえず、こんなところで。

スキルアップ/キャリアアップ(JOB@IT)