답변:
찾고있는 것을하기 위해 간단한 스크립트 (@Ignacio가 지적한대로)가 트릭을 수행해야합니다.
while true
do
echo "$(date '+TIME:%H:%M:%S') $(ps aux | grep "pattern" | wc -l)" | tee -a logfile
sleep 2
done
tee
대신 >>
터미널에서 출력을보고 로그에서 캡처 할 수 있도록 대신 사용 합니다 .
ps
. 답변을 수정하겠습니다.
watch
디스플레이로 출력하기위한 것입니다. X 초마다 명령을 실행하려면 지연 루프를 사용해야합니다.
while true ; do somecommand ; sleep 2 ; done
에서 더 나은 / 로그 된 출력을 얻으려고 할 때이 질문을 보았습니다 du -sh $data_path
. 여기서 찾은 "while command, do sleep"패턴을 사용했지만 복잡한 AWK를 사용하여 원하는 출력을 제공했습니다.
while du -sh $data_path; do sleep 1; done | awk '
$1 != size {
size=$1;
path=$2;
time=systime();
seconds=time-prevtime;
if(seconds < 1000000000){
seconds=seconds" seconds"
}else{
seconds=""
}
print size, path, strftime("%m/%d/%Y@%H:%M:%S", time), seconds;
prevtime=time
}'
나는 실제로 이것을 하나의 라이너로 했으므로 세미콜론이 있습니다. 그러나 그것을 읽을 수있게하기 위해 나는 그것을 깨뜨 렸습니다. 결과는 다음과 같습니다.
502G /var/lib/cassandra/dump/ 05/22/2018@04:46:17
503G /var/lib/cassandra/dump/ 05/22/2018@04:46:59 42 seconds
504G /var/lib/cassandra/dump/ 05/22/2018@04:47:57 58 seconds
505G /var/lib/cassandra/dump/ 05/22/2018@04:48:55 58 seconds
506G /var/lib/cassandra/dump/ 05/22/2018@04:49:53 58 seconds
507G /var/lib/cassandra/dump/ 05/22/2018@04:50:50 57 seconds
508G /var/lib/cassandra/dump/ 05/22/2018@04:51:46 56 seconds
509G /var/lib/cassandra/dump/ 05/22/2018@04:52:44 58 seconds
510G /var/lib/cassandra/dump/ 05/22/2018@04:53:41 57 seconds
다음은 전체 출력의 맨 아래에 타임 스탬프가 있는 watch
on에 필요한 예 ps axf
입니다. Apache가 실패 할 때보고 있습니다. tee
각 명령에 대해 파이프를 연결 해야 ps
했습니다 date
.
watch 'ps axf | grep --line-buffered "[a]pache2"| tee --append logfile-apache-issue.log; date '+TIME:%H:%M:%S' | tee --append logfile-apache-issue.log'
tail --follow logfile-apache-issue.log
결과 파일에 대한 샘플 출력 .
29862 ? S 0:00 \_ /usr/sbin/apache2 -k start
29863 ? S 0:00 \_ /usr/sbin/apache2 -k start
29864 ? S 0:00 \_ /usr/sbin/apache2 -k start
29865 ? S 0:00 \_ /usr/sbin/apache2 -k start
26635 pts/2 S+ 0:00 | \_ tail -n 1000 -f /var/log/apache2/error.log
TIME:02:21:13
13622 ? SN 0:33 \_ /usr/sbin/apache2 -k start
25038 ? Ss 0:01 \_ /usr/sbin/apache2 -k start
29859 ? S 0:00 \_ /usr/sbin/apache2 -k start
29860 ? S 0:00 \_ /usr/sbin/apache2 -k start
29861 ? S 0:00 \_ /usr/sbin/apache2 -k start
29862 ? S 0:00 \_ /usr/sbin/apache2 -k start
29863 ? S 0:00 \_ /usr/sbin/apache2 -k start
29864 ? S 0:00 \_ /usr/sbin/apache2 -k start
29865 ? S 0:00 \_ /usr/sbin/apache2 -k start
26635 pts/2 S+ 0:00 | \_ tail -n 1000 -f /var/log/apache2/error.log
TIME:02:21:15
13622 ? SN 0:33 \_ /usr/sbin/apache2 -k start
25038 ? Ss 0:01 \_ /usr/sbin/apache2 -k start
29859 ? S 0:00 \_ /usr/sbin/apache2 -k start
29860 ? S 0:00 \_ /usr/sbin/apache2 -k start
29861 ? S 0:00 \_ /usr/sbin/apache2 -k start
29862 ? S 0:00 \_ /usr/sbin/apache2 -k start
29863 ? S 0:00 \_ /usr/sbin/apache2 -k start
29864 ? S 0:00 \_ /usr/sbin/apache2 -k start
29865 ? S 0:00 \_ /usr/sbin/apache2 -k start
26635 pts/2 S+ 0:00 | \_ tail -n 1000 -f /var/log/apache2/error.log
TIME:02:21:16