使用 crontab 每分钟将终端中的 arp 输出保存到文本文件

mat*_*te1 2 cron

目标:在启动时运行 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
Run Code Online (Sandbox Code Playgroud)

不幸的是,不是写入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
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题,以便我可以运行它并使用 crontab 更新文件?

Rui*_*iro 5

问题似乎是 crontab 可能不知道 arp 命令所在的 PATH。

我会用:

* * * * * /usr/sbin/arp -n >> results.txt
Run Code Online (Sandbox Code Playgroud)

但是,我会使用 arpwatch 来监控 ARP 变化。它作为一个守护进程工作,并随着时间的推移在文件中注册 MAC 更改,以及更改的纪元时间。它还能够将消息发送到系统日志和电子邮件。

来自man arpwatch

Arpwatch 跟踪以太网/IP 地址配对。它记录活动并通过电子邮件报告某些更改。Arpwatch 使用 pcap(3) 在本地以太网接口上监听 arp 数据包。

举报讯息

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

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

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

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

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

系统日志消息

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

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

ip broadcast 主机的ip地址为广播地址。

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

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

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

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

抑制 DECnet 触发器 由于两个地址之一是 DECnet 地址,因此抑制了“触发器”报告。

文件

/var/lib/arpwatch - 默认目录

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

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