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 변경 사항을 등록합니다. 또한 시스템 로그와 이메일로 메시지를 보낼 수도 있습니다.

~에서남성용 Apu 시계

Arpwatch는 이더넷/IP 주소 쌍을 추적합니다. 시스템 로그 활동을 기록하고 이메일을 통해 특정 변경 사항을 보고합니다. Arpwatch는 로컬 이더넷 인터페이스에서 arp 패킷을 수신하기 위해 pcap(3)을 사용합니다.

뉴스보고

다음은 arpwatch(1)(및 arpsnmp(1))에 의해 생성된 보고 메시지의 빠른 목록입니다:

새 활동 이 이더넷/IP 주소 쌍은 처음으로 6개월 이상 사용되었습니다.

새로운 스테이션 이더넷 주소는 이전에 본 적이 없습니다.

트리거 이더넷 주소가 가장 최근에 표시된 주소에서 두 번째로 최근에 표시된 주소로 변경되었습니다. (기존 또는 새 이더넷 주소가 DECnet 주소이고 24시간 미만인 경우 보고된 이메일 버전이 표시되지 않습니다.)

변경된 이더넷 주소는 호스트를 새 이더넷 주소로 전환합니다.

시스템 로그 메시지

다음은 일부 syslog 메시지입니다. 보고된 메시지는 syslog에도 기록됩니다.

이더넷 브로드캐스트 호스트의 MAC 이더넷 주소는 브로드캐스트 주소입니다.

브로드캐스트 호스트의 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에서 실행하십시오.

관련 정보