"nstats"명령을 사용하여 서버 가동 시간과 함께 완전한 호스트 이름을 얻고 싶습니다. 스크립트가 제대로 작동하는 것 같습니다. "완전한"호스트 이름과 7 번째 열 (서버 가동 시간)이 인쇄 된 첫 번째 열에 대한 도움이 필요합니다.awk를 사용하여 nstats에 대한 출력 형식 지정
이 다음 명령은 나에게 자신의 부분 호스트 이름을 제공 :
for host in $(cat servers.txt); do nstats $host -H | awk 'BEGIN {IFS="\t"} {$2=$3=$4=$5=$6=$9="" ; print}' ; done
는 BAD 출력 : (호스트 이름은 12 자 이후 중단되었다)
linux_server 223 days
linux_server 123 days
windows_serv 23 days
windows_serv 23 days
예상 출력을 :
linux_server1 223 days
linux_server2 123 days
windows_server1 23 days
windows_server2 123 days
다음과 같이하여 Servers.txt 파일의
내용은 다음과 같습니다
linux_server1
linux_server2
windows_server1
windows_server2
출력 AWK없이
LINXSERVE10% for host in $(cat servers.txt); do nstats $host -H ; done
linux_server 0.01 47% 22% 56 05:08 20 days 17:21:00
linux_server 0.00 23% 8% 45 05:08 24 days 04:16:46
windows_serv 0.04 72% 30% 58 05:09 318 days 23:32:17
windows_serv 0.00 20% 8% 40 05:09 864 days 12:23:10
windows_serv 0.00 51% 17% 41 05:09 442 days 05:30:14
참고 : for host in $(cat servers.txt); do nstats $host -H | awk -v server=$host 'BEGIN {IFS="\t"} {$2=$3=$4=$5=$6=$9="" ; print server }' ; done
는 ***이 작품을 좋아하지만, 그것은 단지를 나열합니다 서버 가동 시간없이 완전한 호스트 이름.
도움을 주시면 큰 도움이 될 것입니다.
'nstats $ host -H'의 출력 내용을 표시 할 수 있습니까? 또한'read host while '명령을 사용하는 것이 가장 좋습니다. ...; 완료
fedorqui
awk 명령 자체는 필드의 출력을 자르지 않습니다. – Jdamian
여전히 "awk"를 사용하여 변수 $ 호스트로 서버 가동 시간을 에코 할 수 있습니까? {print $ host, $ 7, $ 8}와 (과) 비슷한 것 '; – Sunny