다음 스크립트는 15초마다 "vmstat"를 출력하도록 설계되었지만 어떤 이유로 활동이 있거나 스크립트를 종료할 때만 이 작업을 수행하고 그렇지 않으면 그냥 그대로 유지됩니다.
#!/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 &
끝에 있는 "&" 기호가 뭔가 관련이 있는 것 같아요. 각 명령을 즉시 실행할 수 있도록 그렇게 하는 것뿐입니다.
답변1
중간 Perl 스크립트는 다음과 같을 수 있습니다.버퍼링을 겪다. 없이 시도해 보세요 | /home/Beer/./addtimestamp.pl
. 문제가 해결되면 다음을 추가해 보세요.
$| = 1;
펄 스크립트에.