저는 Raspberry Pi를 사용하여 데이터 로거를 만들고 있습니다. 저는 rc.local에서 쉘 스크립트를 사용하고 있으며 tcpdump를 사용하여 바이트를 캡처하고 있습니다. 내가 직면한 문제는 파이가 시작될 때마다 로그 파일이 교체된다는 것입니다. 파이가 시작될 때마다 로그 파일을 다른 이름으로 저장하는 방법이 있습니까?
rc.local의 초기 코드
tcpdump udp -c 600 -w new-$(date +%F-%H-%M-%S).pcap //this writes all the 600 UDP Frames of Ethernet to the file new(time displayed in PI).pcap
데이터 추가를 시도했지만 파이가 시작될 때마다 로그 파일을 저장하고 싶습니다. RTC가 없기 때문에 데이터 수정이 조금 어렵습니다. PI가 시작될 때마다 이 파일을 다른 이름으로 저장하고 싶습니다. 이것이 가능합니까?
답변1
번호가 매겨진 로그 파일을 대신 사용할 수 있습니까? 로그 번호가 포함된 텍스트 파일 lognum
과 로깅을 시작하는 작은 스크립트를 만들 수 있습니다.
#!/bin/bash
lognum=$(cat lognum)
tcpdump udp -c 600 -w log-$lognum.pcap
echo $(( $lognum + 1 )) > lognum
이렇게 하면 로그에 번호가 매겨지고 다음 로그 번호가 에 저장됩니다 . 알파벳 순서로 로그가 올바르게 정렬되도록 이 값을 초기 값으로 lognum
두는 것이 좋습니다 .1000
답변2
가능한 해결책:
1) 인터넷에 연결되어 있어야 합니다.
rc.local이 실행 중이면 네트워크 인터페이스가 시작되어야 합니다. 시간을 따라잡기 위해서는 ntpd 데몬을 설치하는 것이 가장 좋습니다.
어떤 것을 만들어
sudo install ntp
다음에 재부팅할 때 tcpdump를 실행하기 전의 시간으로 시간을 설정합니다.
2) Alibaba/AliExpress에서 RTC 시계를 구매하세요. 상당히 저렴하고 사용하기 쉽습니다.
3) mktemp를 사용하여 파일 회전 후 변경되는 쉘의 임의 이름을 생성하십시오.