目的:起動時に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 -n
results.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で実行します。