파일이 생성된 지 5분 이상 지난 경우 쉘 스크립트는 어떻게 작업을 수행합니까?

파일이 생성된 지 5분 이상 지난 경우 쉘 스크립트는 어떻게 작업을 수행합니까?

고정된 간격 후에 실행되도록 예약할 수 있는 스크립트를 작성하여 스크립트가 실행될 때마다 .txt라는 다른 파일의 생성 타임스탬프를 확인하고 싶습니다 HOSTNAME_FA.lck. If.it는 (creation timestamp - current timestamp) > 5 Minutes또 다른 핑 테스트를 실행합니다.

예: 스크립트 이름: checkFailedNodes.sh 생성 타임스탬프 이후 5분이 지났는지 확인해야 하는 파일:Hostname_FA.lck

checkFailedNodes.sh실행 후 파일 생성 후 5분이 경과한 것으로 확인되면 스크립트 checkFailedNodes.sh는 ICMP 핑을 사용하여 노드(HOSTNAME)를 다시 테스트합니다.

가장 좋은 접근 방식은 무엇입니까?

답변1

여기에는 몇 가지 문제가 있으므로 분리해 보겠습니다.

정기적으로 실행되도록 예약된 스크립트가 필요합니다. 그것이 cron목적입니다. 예를 들어 /path/to/script.sh5분마다 실행 하려면 다음 cron테이블 항목을 추가하세요.

*/5 * * * * /path/to/script.sh >> /var/log/myscript.log 2>&1

최근 수정된 파일 찾기N몇 분 전에 -mmin.N=5:

find /path/to/lockfiles/ -maxdepth 1 -name \*.lck -mmin +5

발견된 각 파일에 대해 스크립트를 실행하려면 다음을 수행하십시오.

find /path/to/lockfiles/ -maxdepth 1 -name \*.lck -mmin +5 -exec /path/to/otherscript.sh {} \;

매직 토큰 {}파일 이름이 파일 이름으로 대체되므로 파일의 내용이나 파일 이름을 보고 적절한 조치를 취하도록 스크립트를 설계할 수 있습니다.

관련 정보