터미널에서 x 시간 간격마다 명령을 반복하시겠습니까?

터미널에서 x 시간 간격마다 명령을 반복하시겠습니까?

내가 어떻게 할 수있는반복하다시간 간격마다 명령을 실행하여 명령을 실행할 수 있도록 합니다.확인 중 또는모니터링 디렉토리?

스크립트가 필요하지 않으며 터미널에서 실행하려면 간단한 명령만 있으면 됩니다.

답변1

명령을 사용할 수 있습니다 watch.보다지정된 명령을 정기적으로 실행하는 데 사용됩니다.

터미널을 열고 다음을 입력하세요.

watch -n x <your command>

변화엑스원하는 시간(초)이 되도록 하세요.

watch명령 및 옵션 사용에 대한 자세한 내용을 보려면 man watch다음을 실행하거나 방문하세요.링크.

예를 들어 :다음은 각60년대, 동일한 터미널에서 변경 사항이 발생했는지 알 수 있도록 데스크톱 디렉터리의 내용:

watch -n 60 ls -l ~/Desktop

답변2

이외에도 터미널에서 이 명령을 사용할 수도 있습니다.너스의 대답:

while true; do <your_command>; sleep <interval_in_seconds>; done

예:

while true; do ls; sleep 2; done

ls이 명령은 2초 간격으로 출력을 인쇄합니다 .

프로세스를 중지하려면 Ctrl+를 사용하세요 .C

다음과 같은 몇 가지 단점이 있습니다 watch.

  • 별칭이 지정된 명령은 사용할 수 없습니다.
  • 명령의 출력이 너무 길면 스크롤이 제대로 작동하지 않습니다.
  • 설정하는데 약간의 문제가 있습니다최대 시간 간격특정 값 이상.
  • watch-c또는 옵션을 사용하여 이스케이프 문자를 전달하는 ANSI 색상 시퀀스를 해석합니다 --color. 예를 들어 의 출력은 pygmentize작동하지만 의 경우에는 실패합니다 ls --color=auto.

위의 상황에서는 이것이 더 나은 선택으로 나타날 수 있습니다.

답변3

그냥 참여하고 싶었어요소라브 c.'모래눅스님의 답변:

  1. Ubuntu에서는 완벽하게 작동 하지만 watch"Unix-fu"를 순수하게 만들고 싶다면 이를 피하는 것이 좋습니다. 예를 들어 FreeBSD에서는 watch"다른 tty 라인을 스누핑"하는 명령이 있습니다.

  2. while true; do command; sleep SECONDS; doneCtrl또한 주의 사항이 있습니다. + 를 사용하여 명령을 종료하기가 더 어려울 수 있습니다 C. 당신은 다음을 선호할 수도 있습니다:

    while sleep SECONDS; do command; done
    

    길이가 더 짧을 뿐만 아니라 중단하기도 쉽습니다. 주의할 점은 먼저 잠자기 상태가 된 다음 명령을 실행하므로 SECONDS명령이 처음 발생하기 전에 잠시 기다려야 한다는 것입니다 .

답변4

crontab을 사용할 수 있습니다. 명령을 실행 crontab -e하고 원하는 텍스트 편집기로 연 다음 이 줄을 추가하세요.

*/10 * * * *  /path-to-your-command

10분마다 명령이 실행됩니다.

* */4 * * *  /path-to-your-command

4시간마다 명령이 실행됩니다.

또 다른 가능한 해결책

$ ..some command...; for i in $(seq X); do $cmd; sleep Y; done

엑스반복할 횟수입니다.

와이반복하기 위해 기다릴 시간입니다.

예 :

$ echo; for i in $(seq 5); do $cmd "This is echo number: $i"; sleep 1;done

관련 정보