2012-12-11 2 views
0

다음 스크립트는 15 초마다 "vmstat"를 출력하기위한 것이지만 어떤 이유로 활동이 있거나 스크립트를 죽이는 경우에만 수행합니다. 거기 앉는다. 마지막에 '&'기호를 추측머신 데이터가 15 초마다 출력을 표시하지 않음

#!/bin/bash 
#!/bin/sh 


ps -ef | grep -v grep | grep "vmstat 15" | awk '{ print $2 }' | xargs kill 

ps -ef | grep -v grep | grep "iostat 15" | awk '{ print $2 }' | xargs kill 

ps -ef | grep -v grep | grep "mpstat 15" | awk '{ print $2 }' | xargs kill 

today=`date +%Y-%m-%d.%H:%M:%S` 

find /var/log/ -name data_collection -type d -exec mv /var/log/data_collection /home/Beer/"data_collection_${today}" \; 

mkdir -p /var/log/data_collection 

vmstat 15 | /home/Beer/./addtimestamp.pl > /var/log/data_collection/vm_stat & 
iostat 15 | /home/Beer/./addtimestamp.pl > /var/log/data_collection/ios_stat & 
mpstat 15 | /home/Beer/./addtimestamp.pl > /var/log/data_collection/mp_stat & 

임이 함께 ​​할 수있는 뭔가가, 난 단지 내가 한 번에 각 명령을 실행할 수 있습니다 이런 짓을.

+0

addtimestamp.pl에 포함 된 항목은 무엇입니까? 입력을 버퍼링하고 무언가를 읽을 때마다 플러시하지 않을 수 있습니다. –

+0

@DiegoBasch 정확히 맞습니다. 방금 '$ | = 1;'을 추가했습니다. Perl 스크립트에 지금은 작동하기 시작했다. 기본적으로 그것을 라인 버퍼로 설정했다. 아뇨 답변을 추가하십시오. –

답변

0

mark a comment as an answer에 대한 기능 요청이 거부 된 상태이므로 여기에서 위의 해결책을 복사합니다.

무엇이 addtimestamp.pl에 있습니까? 입력을 버퍼링하고 무언가를 읽을 때마다 플러시하지 않을 수 있습니다. - Diego Basch

@DiegoBasch 정확하게 맞습니다. '$ | = 1;'을 추가했습니다. Perl 스크립트에 지금은 작동하기 시작했다. 기본적으로 그것을 라인 버퍼로 설정했다. 아픈 답을 추가하십시오. - 안녕하세요.

관련 문제