![파일이 생성된 지 5분 이상 지난 경우 쉘 스크립트는 어떻게 작업을 수행합니까?](https://linux55.com/image/112910/%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EC%83%9D%EC%84%B1%EB%90%9C%20%EC%A7%80%205%EB%B6%84%20%EC%9D%B4%EC%83%81%20%EC%A7%80%EB%82%9C%20%EA%B2%BD%EC%9A%B0%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%9E%91%EC%97%85%EC%9D%84%20%EC%88%98%ED%96%89%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
고정된 간격 후에 실행되도록 예약할 수 있는 스크립트를 작성하여 스크립트가 실행될 때마다 .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.sh
5분마다 실행 하려면 다음 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 {} \;
매직 토큰 {}
파일 이름이 파일 이름으로 대체되므로 파일의 내용이나 파일 이름을 보고 적절한 조치를 취하도록 스크립트를 설계할 수 있습니다.