시스템 관리자는 특정 시간 동안 명령을 반복적으로 실행해야 하는 경우가 많습니다. 종종 이러한 작업은 간단한 크론 명령. 대부분의 경우 작동하지만 cron 명령을 실행할 수 있는 가장 짧은 기간은 1분마다입니다. 믿거나 말거나 많은 경우에 이것은 너무 느립니다.
이 자습서에서는 다음과 유사한 연속 실행 상태에서 특정 명령을 모니터링하거나 주시하는 간단한 스크립팅 기술을 배웁니다. top 명령(프로세스 및 메모리 사용률을 지속적으로 모니터링) 기본적으로 3초마다.
우리는 왜 이렇게 자주 명령을 실행해야 하는지 이유를 논의하기 위해 멈추지 않을 것입니다. 나는 모든 사람이 일상적인 일이나 심지어 집에서 PC와 노트북을 사용하는 데에도 다른 이유가 있다고 생각합니다.
보다 명령이나 프로그램을 주기적으로 실행할 수 있고 화면에 출력을 표시하는 Linux 명령입니다. 이것은 당신이 제 시간에 프로그램 출력을 볼 수 있다는 것을 의미합니다. 기본적으로 watch는 2초마다 명령/프로그램을 다시 실행합니다. 간격은 요구 사항에 맞게 쉽게 변경할 수 있습니다.
"Watch"는 사용하기가 매우 쉽습니다. 테스트하기 위해 Linux 터미널을 즉시 실행하고 다음 명령을 입력할 수 있습니다.
# 무료 시청 -m.
위의 명령은 시스템 여유 메모리를 확인하고 결과를 업데이트합니다. 자유 명령 2초마다.
위의 출력에서 볼 수 있듯이 (왼쪽에서 오른쪽으로) 업데이트 간격, 실행 중인 명령 및 현재 시간에 대한 정보를 표시하는 헤더가 있습니다. 이 헤더를 숨기려면 다음을 사용할 수 있습니다. -NS
옵션.
다음 논리적 질문은 실행 간격을 변경하는 방법입니다. 이를 위해 다음을 사용할 수 있습니다. -NS
명령이 실행되는 간격을 지정하는 옵션입니다. 이 간격은 초 단위로 지정됩니다. 실행하고 싶다고 가정해 보겠습니다. 스크립트.sh
10초마다 파일을 작성하면 다음과 같이 할 수 있습니다.
# watch -n 10 script.sh.
메모 위와 같이 명령을 실행하면 다음을 수행해야 합니다. CD
디렉토리로 (배우다 15개의 cd 명령 예제 알아보기) 스크립트가 있는 위치에 있거나 그렇지 않으면 해당 스크립트에 대한 전체 경로를 지정합니다.
watch 명령의 다른 유용한 옵션은 다음과 같습니다.
-NS
– 명령 종료가 0이 아닌 경우 경고음을 생성합니다.-씨
– ANSI 색상 시퀀스를 해석합니다.-NS
– 명령 출력의 변경 사항을 강조 표시합니다.로그인한 사용자, 서버 가동 시간 및 로드 평균 출력을 몇 초마다 지속적으로 모니터링하고 다음 명령을 사용한다고 가정해 보겠습니다.
# 시청 시간.
명령을 종료하려면 CTRL+C
.
여기서, '업타임'
명령이 실행되고 기본적으로 2초마다 업데이트된 결과가 표시됩니다.
Linux에서 다음을 사용하여 한 위치에서 다른 위치로 파일을 복사하는 동안 cp
명령, 데이터 진행률이 표시되지 않습니다. 복사 중인 데이터의 진행률을 보려면 다음을 사용할 수 있습니다. 보다
와 함께 명령하다 du - 디스크 사용량을 확인하는 명령 실시간으로.
# cp 우분투-15.10-desktop-amd64.iso /home/tecmint/ & # watch -n 0.1 du -s /home/tecmint/ubuntu-15.10-desktop-amd64.iso
위의 프로세스가 달성하기에는 너무 복잡하다고 생각되면 다음을 수행하는 것이 좋습니다. 고급 복사 명령, 복사하는 동안 데이터의 진행 상황을 보여줍니다.
Sleep은 종종 셸 스크립트를 디버그하는 데 사용되지만 다른 많은 유용한 목적도 있습니다. 예를 들어 다음과 결합할 때 ~을위한
또는 동안
루프, 당신은 꽤 멋진 결과를 얻을 수 있습니다.
bash 스크립팅을 처음 사용하는 경우 bash 루프에 대한 가이드를 확인할 수 있습니다. 여기.
이 소식을 처음 듣는 경우 "잠"
명령, 지정된 시간 동안 무언가를 지연시키는 데 사용됩니다. 스크립트에서 이를 사용하여 스크립트에 명령 1을 실행하고 10초 동안 기다린 다음 명령 2를 실행할 수 있습니다.
위의 루프를 사용하여 bash에 명령을 실행하도록 지시할 수 있습니다. NS 몇 초 후에 명령을 다시 실행하십시오.
아래에서 두 루프의 예를 볼 수 있습니다.
# for i in {1..10}; do echo -n "이것은 루프 $i의 테스트입니다."; 데이트; 수면 5; 완료.
위의 하나의 라이너가 실행됩니다. 에코 명령 현재 날짜를 총 10회 표시하고 실행 사이에 5초의 절전 모드를 사용합니다.
다음은 샘플 출력입니다.
이것은 루프 1 Wed Feb 17 20:49:47 EET 2016의 테스트입니다. 이것은 루프 2의 테스트 2월 17일 수요일 20:49:52 EET 2016입니다. 2016년 2월 17일 수요일 20:49:57 EET 루프 3의 테스트입니다. 2016년 2월 17일 수요일 20:50:02 EET 루프 4의 테스트입니다. 2016년 2월 17일 수요일 20:50:07 EET 루프 5의 테스트입니다. 2016년 2월 17일 수요일 20:50:12 EET 루프 6의 테스트입니다. 2016년 2월 17일 수요일 20:50:17 EET 루프 7의 테스트입니다. 2016년 2월 17일 수요일 20:50:22 EET 루프 8의 테스트입니다. 이것은 루프 9의 테스트입니다. 2016년 2월 17일 수요일 20:50:27 EET입니다. 이것은 루프 10 Wed Feb 17 20:50:32 EET 2016의 테스트입니다.
당신은 변경할 수 있습니다 에코 그리고 데이트 자신의 명령이나 스크립트로 명령을 실행하고 필요에 따라 절전 간격을 변경합니다.
# 사실일 때; do echo -n "이것은 while 루프의 테스트입니다";날짜; 수면 5; 완료
다음은 샘플 출력입니다.
이것은 while loopWed Feb 17 20:52:32 EET 2016의 테스트입니다. 이것은 while loopWed Feb 17 20:52:37 EET 2016의 테스트입니다. 이것은 while loopWed Feb 17 20:52:42 EET 2016의 테스트입니다. 이것은 while loopWed Feb 17 20:52:47 EET 2016의 테스트입니다. 이것은 while loopWed 2016년 2월 17일 20:52:52 EET의 테스트입니다. 이것은 while loopWed Feb 17 20:52:57 EET 2016의 테스트입니다.
위의 명령은 다음이 될 때까지 실행됩니다. 사용자에 의해 죽거나 중단됨. 백그라운드에서 실행되는 명령을 실행해야 하고 의존하고 싶지 않은 경우에 유용할 수 있습니다. 크론.
중요한: 위의 방법을 사용할 때 다음 실행 전에 명령 실행을 완료할 수 있는 충분한 시간을 주기 위해 간격을 길게 설정하는 것이 좋습니다.
이 튜토리얼의 샘플은 유용하지만 완전히 대체하기 위한 것은 아닙니다. 크론 유틸리티. 어느 것이 당신에게 더 나은지 찾는 것은 당신에게 달려 있지만, 두 기술의 사용법을 분리해야 한다면 저는 이렇게 말할 것입니다.
질문이나 의견이 있는 경우 항상 그렇듯이 주저하지 말고 아래 의견 섹션에 제출하십시오.