답변:
목적은 watch
명령의 결과를 전체 화면으로 표시하고 지속적으로 업데이트하는 것입니다. 출력을 파일로 리디렉션하고 배경을 지정하는 경우 실제로 watch를 사용해야 할 이유가 없습니다.
지연으로 명령을 계속 반복해서 실행하려면 ( watch
기본적으로 2 초 동안 대기) 다음과 같이 사용할 수 있습니다.
while true; do
cmd >> output.txt
sleep 2
done
방법은 다음과 같습니다.
watch -n 1 'date' &>/dev/null &
프로세스를 백그라운드에서 수행 했으므로 터미널 디스플레이가 필요하지 않고 파일로 리디렉션하고 있다고 가정 할 수 있습니다. 그렇게하면 watch
문제없이 배경 을 가질 수 있습니다 .
sleep
Michael Mrozek이 제안한 바와 같이 바람직하지 않은 속도가 느리게 지연됩니다. 시스템 시간을 모니터링하고 경과 시간을 기반으로 명령을 실행하는 복잡한 셸 스크립트 외에도 watch -p
정확한 타이밍을위한 좋은 옵션이 될 수 있습니다.
정확한 타이밍 :
watch -n 1 -p 'date' &>/dev/null &
&
두 번만 사용할 수 있습니까?
man bash
첫 번째 &
작동 방식을 확인하십시오 . ;)
동기 부여에 따라 다릅니다.
주기적으로 무언가를 실행하고 싶습니다. 그런 다음 직접 cron을 사용할 수 있습니다. (시간 단위로 1 분이면 충분합니다.)
반복적으로 무언가를 실행하고 싶습니다.
while sleep 2 ; do
cmd
done >& log.txt
스크립트를 사용하는 것이 좋지만 예를 들어 crontab에서이를 실행할 수 있습니다.
주기적으로 명령을 실행하고 마지막 실행 결과에 액세스하려고합니다.
출력을 ramfs에 쓸 수 있습니다 (이전에 스크립트 수정).
while sleep 2 ; do
cmd >& last_execution.log
done
또는 더 나은 :
while sleep 2 ; do
cmd >& last_execution.log.tmp
mv last_execution.log.tmp last_execution.log ## atomically
done
당신은 결합 할 수 있습니다 screen
그리고 watch
당신은 항상 최신 상태를 확인할 수 있도록 한이 한 화면에 맞는로 :
screen watch -n 3660 ./make-backup.sh
화면 명령을 사용할 수 있습니다.
http://www.cyberciti.biz/tips/linux-screen-command-howto.html