Salve a saída arp no terminal para o arquivo de texto a cada minuto usando o crontab

2

Objetivo: fazer o crontab rodar na inicialização do registro da saída do comando arp em um arquivo 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

Infelizmente, em vez de gravar a saída de arp -n , ele sobrescreve o results.txt com um arquivo em branco.

O mais estranho é se eu usar arp-n > results.txt no terminal que recebo:

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

Alguém sabe como consertar isso para que eu possa executá-lo e atualizar o arquivo usando o crontab?

    
por mate1 21.07.2017 / 20:58

3 respostas

5

O problema parece ser que provavelmente o crontab não conhece o PATH onde o comando arp mora.

Eu usaria:

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

No entanto, eu usaria o arpwatch para monitorar as alterações do ARP. Funciona como um daemon e registra as alterações do MAC em um arquivo ao longo do tempo, juntamente com o tempo de época da alteração. Também é capaz de enviar mensagens para syslog e e-mails.

De homem arpwatch

Arpwatch keeps track for ethernet/ip address pairings. It syslogs activity and reports certain changes via email. Arpwatch uses pcap(3) to listen for arp packets on a local ethernet interface.

Report Messages

Here's a quick list of the report messages generated by arpwatch(1) (and arpsnmp(1)):

new activity This ethernet/ip address pair has been used for the first time six months or more.

new station The ethernet address has not been seen before.

flip flop The ethernet address has changed from the most recently seen address to the second most recently seen address. (If either the old or new ethernet address is a DECnet address and it is less than 24 hours, the email version of the report is suppressed.)

changed ethernet address The host switched to a new ethernet address.

Syslog Messages

Here are some of the syslog messages; note that messages that are reported are also sysloged.

ethernet broadcast The mac ethernet address of the host is a broadcast address.

ip broadcast The ip address of the host is a broadcast address.

bogon The source ip address is not local to the local subnet.

ethernet broadcast The source mac or arp ethernet address was all ones or all zeros.

ethernet mismatch The source mac ethernet address didn't match the address inside the arp packet.

reused old ethernet address The ethernet address has changed from the most recently seen address to the third (or greater) least recently seen address. (This is similar to a flip flop.)

suppressed DECnet flip flop A "flip flop" report was suppressed because one of the two addresses was a DECnet address.

Files

/var/lib/arpwatch - default directory

arp.dat - ethernet/ip address database

ethercodes.dat - vendor ethernet block list

    
por 21.07.2017 / 21:13
4

Você precisa alterar o > para um >> . Usando apenas um > truncará o arquivo antes de gravar nele, usando dois anexos. Você também pode querer fazer algo para garantir que o arquivo não fique muito grande.

    
por 21.07.2017 / 21:05
1

As sugestões sobre arpwatch são boas, mas se você não quiser seguir esse caminho:

Eu sugeriria criar um arquivo contendo:

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

(observe o >> ou você receberá um erro após a primeira execução). Certifique-se de que é executável com:

chmod 755 file  

e depois executá-lo a partir do crontab.

    
por 21.07.2017 / 22:34

Tags