crontabを使用して、毎分端末のarp出力をテキストファイルとして保存する

crontabを使用して、毎分端末のarp出力をテキストファイルとして保存する

目的:起動時にcrontabを実行し、arpコマンド出力をtxtファイルに書き込むようにします。

> Chrontab:
> 
> # daemon's notion of time and timezones.
> #
> # Output of the crontab jobs (including errors) is sent through
> # email to the user the crontab file belongs to (unless redirected).
> #
> # For example, you can run a backup of all your user accounts
> # at 5 a.m every week with:
> # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
> #
> # For more information see the manual pages of crontab(5) and cron(8)
> #
> # m h  dom mon dow   command

* * * * * arp -n > results.txt

残念ながら、出力を作成するのではなく、arp -nresults.txtを空のファイルで上書きします。

奇妙なことは、arp-n > results.txt端末で使用すると、次のような結果が出ることです。

GNU nano 2.2.6               File: results.txt                                                      

Address                  HWtype  HWaddress           Flags Mask                Iface
192.168.42.19                    (incomplete)                          wlan0
192.168.42.14            ether   (incomplete)        C                 wlan0
192.168.42.13                    (incomplete)                          wlan0
192.168.42.18                    (incomplete)                          wlan0
192.168.1.1              ether   (incomplete)        C                  eth0
192.168.1.25             ether   (incomplete)        C                  eth0
192.168.42.12            ether   (incomplete)        C                 wlan0
192.168.1.240            ether   (incomplete)        C                  eth0
192.168.42.11                    (incomplete)                          wlan0
192.168.42.16                         M A                              wlan0

crontabを使用して実行してファイルを更新できるように、この問題を解決する方法を知っている人はいますか?

答え1

問題は、crontabがarpコマンドのあるパスを知らないようです。

私は次を使うでしょう:

* * * * * /usr/sbin/arp -n >> results.txt

しかし、私はarpwatchを使ってARPの変更を監視します。これはデーモンとして機能し、変更のエポック時間とともに時間の経過とともにファイルにMAC変更を登録します。また、システムログと電子メールでメッセージを送信することもできます。

~からメンズアプウォッチ

Arpwatchはイーサネット/IPアドレスのペアを追跡します。システムログのアクティビティを記録し、電子メールで特定の変更を報告します。 Arpwatchは、ローカルイーサネットインターフェイスからarpパケットを受信するためにpcap(3)を使用します。

ニュースレポート

以下は、arpwatch(1)(およびarpsnmp(1))によって生成されたレポートメッセージのクイックリストです。

新しいアクティビティこのEthernet / IPアドレスのペアは、最初の6ヶ月以上使用されました。

新しいステーションのイーサネットアドレスは以前に見たことがありません。

トリガ イーサネット アドレスが、最近表示されたアドレスから 2 番目に最近表示されたアドレスに変更されました。 (既存または新しいEthernetアドレスがDECnetアドレスで24時間未満の場合、報告されたEメールバージョンは表示されません。)

変更されたイーサネットアドレスは、ホストを新しいイーサネットアドレスに切り替えます。

システムログメッセージ

以下はいくつかのsyslogメッセージです。報告されたメッセージはsyslogにも記録されます。

イーサネットブロードキャストホストのMACイーサネットアドレスはブロードキャストアドレスです。

ブロードキャストホストのIPアドレスはブロードキャストアドレスです。

Bogon 送信元 IP アドレスがローカルサブネットにローカルではありません。

イーサネットブロードキャストソースmacまたはarpイーサネットアドレスはすべて1またはすべて0です。

イーサネットの不一致ソース Mac イーサネットアドレスが arp パケットのアドレスと一致しません。

再使用された既存のイーサネットアドレスイーサネットアドレスが、最近見たアドレスから3番目(またはそれ以上)の最近見たアドレスに変更されました。 (これはトリガーに似ています。)

DECnetトリガー抑制2つのアドレスの1つがDECnetアドレスであるため、「トリガー」レポートは抑制されます。

文書

/var/lib/arpwatch - デフォルトディレクトリ

arp.dat - イーサネット/IPアドレスデータベース

ethercodes.dat - ベンダーイーサネットブロックリスト

答え2

>これをに変更する必要があります>>。 1つだけを使用すると、>ファイルに書き込む前にファイルが切り捨てられ、2つを使用すると追加されます。ファイル自体が大きくなりすぎないように、何かをしたいと思うかもしれません。

答え3

アドバイスarpwatchは良いですが、この道を行きたくない場合は、次の手順に従ってください。

次の内容でファイルを作成することをお勧めします。

#!/bin/sh
arp -n >> results.txt  

>>そうでない場合は、最初に実行した後にエラーメッセージが表示されます。)実行可能であることを確認してください。

chmod 755 file  

その後、crontabで実行します。

関連情報