모니터링 스크립트를 작성 중입니다. 특정 컴퓨터에서 실행 중인데 작동합니다. 단일 배포판에 국한되지 않고 여러 Linux 시스템에서 실행될 예정입니다.
내가 수행하는 명령 및 관련 처리는 다음과 같습니다.
1) CPU 사용량:
top -bn 2 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}'
92%
93%
두 값을 모두 기록합니다.
2) RAM 사용량
free -m
_____total used free shared buff/cache available <br>
Mem 3791 1183 875 16 1732 2326 <br>
Swap 3071 0 3071
메모리와 스왑 사용/전체를 모두 기록합니다.
3) 디스크 사용량 :
df
(각각 총 1024비트 블록 수와 사용된 블록인 열 2와 3만 유지):
1K_blocks used_blocks
27740944 1996820
1931168 0
1941352 0
1941352 16904
1941352 0
508588 151576
388272 0
전체 디스크 공간을 얻기 위해 두 열 합계를 비교합니다.
4) 가동시간 :
PS C:\> invoke-sshcommand -ComputerName $ip {uptime}
09:39:01 up 13 days, 21:37, 1 user, load average: 0,00, 0,01, 0,05
이 문자열을 잘라내고 유용한 데이터를 기록하세요.
이러한 명령은 Linux 배포판에 관계없이 정확히 동일한 형식의 출력을 제공합니까? 보다 일반적으로 모든 배포판에서 명령 + 데이터 처리가 여전히 유효합니까?
답변1
이러한 명령은 Linux 배포판에 관계없이 정확히 동일한 형식의 출력을 제공합니까?
그럴 수도 있지만 확신할 수는 없습니다.
수백 개의 Linux 배포판이 있습니다(DistroWatch그 중 280개) 그리고 하나의 스크립트가 작동할 것이라는 보장은 없습니다.계속하다작업 - 다른 작업, 특히 POSIX가 아닌 옵션이나 플래그를 사용하는 경우.
명령의 출력에 의존하는 대신 /proc
의사 파일 시스템에서 직접 데이터를 가져오는 것이 좋습니다.