2014-12-19 1 views
0

아래 스크립트를 실행하여 텍스트 파일에 데이터를 쓰고 있습니다. 이 데이터는 1 초마다 업데이트됩니다.쉘 스크립트를 사용하여 그래프를 만드는 방법

eth0: Sent Bytes: 1 Kb/s | Received Bytes: 2 Kb/s | Sent Packets: 18 Pkts/s | Received Packets: 13 Pkts/s 
eth0: Sent Bytes: 1 Kb/s | Received Bytes: 2 Kb/s | Sent Packets: 18 Pkts/s | Received Packets: 12 Pkts/s 
eth0: Sent Bytes: 1 Kb/s | Received Bytes: 3 Kb/s | Sent Packets: 20 Pkts/s | Received Packets: 13 Pkts/s 
eth0: Sent Bytes: 15 Kb/s | Received Bytes: 4 Kb/s | Sent Packets: 33 Pkts/s | Received Packets: 25 Pkts/s 
eth0: Sent Bytes: 1 Kb/s | Received Bytes: 3 Kb/s | Sent Packets: 19 Pkts/s | Received Packets: 12 Pkts/s 

보낸 바이트 수와받은 바이트 수를 그래프로 만들고 싶습니다. 패킷과 동일합니다.

+0

지금까지 무슨 짓을 한거야? – SMA

+0

현재 데이터를 다른 파일로 자르는 법을 배우고 있습니다. 또는 직접 데이터를 읽고 그래프를 작성하는 스크립트를 작성하십시오. 나는 그래프를 직접 만들 수 있는지 여부를 모른다. – JustStarted

+0

좋아, 천천히 시작하고 요구 사항에 따라 앞으로 나아가십시오. 만약 당신이 붙잡혀 있다면,이 포럼에 큰소리를 씁니다. – SMA

답변

2

https://github.com/holman/spark을 사용하여 (단지 bash에서만 작동하고 POSIX sh에서는 작동하지 않지만) 셸 스크립트만으로 그래프를 만들 수 있습니다. watch으로 실시간으로 업데이트 된 것을 볼 수 있습니다.

graph.sh

!/bin/sh 
field=1 
tail "$1" | cut -d '|' -f $field | sed -e 's!.*: \([0-9]\+\) .*!\1!' | ./spark/spark 

대화 형 콘솔

git clone https://github.com/holman/spark 
your-process > logfile & 
watch sh graph.sh logfile 

출력

Every 2.0s: sh graph.sh logfile   Fri Dec 19 22:22:04 2014 

▁▁▁█▁ 
+0

더 많은 인용문을 제안합니다. 'tail "$ 1"을 사용하여 파일 이름을 공백으로 처리하십시오. –

+0

@CharlesDuffy : 좋은 지적입니다! '$ 1'에서 '$ 1'로 변경했습니다. – nwk