使用 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 -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 使用 pcap(3) 侦听本地以太网接口上的 arp 数据包。

举报消息

以下是 arpwatch(1)(和 arpsnmp(1))生成的报告消息的快速列表:

新活动 该以太网/IP 地址对已首次使用六个月或更长时间。

新站 以太网地址以前没有见过。

触发器 以太网地址已从最近看到的地址更改为第二最近看到的地址。 (如果旧的或新的以太网地址是 DECnet 地址并且时间少于 24 小时,则报告的电子邮件版本将被抑制。)

更改的以太网地址 主机切换到新的以太网地址。

系统日志消息

以下是一些系统日志消息;请注意,报告的消息也会记录在系统日志中。

以太网广播 主机的 MAC 以太网地址是广播地址。

ip广播 主机的IP地址是广播地址。

bogon 源 IP 地址不是本地子网的本地地址。

以太网广播 源 mac 或 arp 以太网地址全为 1 或全为 0。

以太网不匹配 源 mac 以太网地址与 arp 数据包内的地址不匹配。

重新使用的旧以太网地址 以太网地址已从最近查看的地址更改为第三个(或更大)最近最少查看的地址。 (这类似于触发器。)

抑制 DECnet 触发器 “触发器”报告被抑制,因为两个地址之一是 DECnet 地址。

文件

/var/lib/arpwatch - 默认目录

arp.dat - 以太网/IP 地址数据库

ethercodes.dat - 供应商以太网阻止列表

答案2

您需要将 更改>>>.仅使用一个>将在写入文件之前截断文件,使用两个将追加。您可能还想做一些事情来确保文件本身不会变得太大。

答案3

有关的建议arpwatch很好,但如果您不想走这条路:

我建议创建一个包含以下内容的文件:

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

(请注意,>>否则第一次运行后您会收到错误消息)。确保它可以执行:

chmod 755 file  

然后从 crontab 运行它。

相关内容