매우 간단한 스크립트를 실행하고 싶습니다(dir y에 x라는 디렉토리가 있습니까? 그렇다면 이를 z 디렉토리로 이동하십시오. 그러면 x는 하루에 한 번만 나타납니다). 15초마다(1분을 4개로 나눕니다) *15초). 리소스를 많이 사용하지 않는 스크립트를 실행하는 크론 작업을 실행하면 성능, 안정성 또는 기타 측면에 무시할 수 없을 정도로 부정적인 영향을 미치나요?
답변1
제목의 질문에 대답하자면 '아니요'입니다. 대부분의 시스템은 크론 작업을 실행해도 큰 부담을 받지 않습니다. 최신 Unix 시스템에서 발생하는 많은 자동화된 작업은 cron 작업에 의해 시작됩니다.
사람이 사용할 수 있도록 로그 회전 및 인덱스 파일 재생성 등의 작업은 cron 작업을 통해 시작됩니다.
궁금하신 경우 아래 디렉토리 중 하나를 확인해 보세요 /etc/cron*
. 이러한 작업이 시스템에서 어떻게 수행되는지 보여주는 몇 가지 예가 분명히 있습니다.
답변2
첫째, cron의 최소 해상도는 1분입니다. 따라서 15초마다 발생하지 않습니다. 15초마다 꼭 필요한 경우에는 전략을 다시 생각해 봐야 합니다.
다음으로 cron은 특정 시간에만 작업을 실행합니다. 작업이 리소스를 많이 사용하는 경우 cron에도 적용됩니다. 그렇지 않다면 그렇지 않을 것입니다. cron은 실행할 명령을 전달하는 방식으로 인해 오버헤드를 (거의) 추가하지 않습니다.
마지막으로 cron을 통해 1분마다 작업을 실행하는 것은 매우 어리석은 일입니다. Anacron(컴퓨터가 종료되거나 절전 모드일 때 로그로 다시 실행되는 cron 작업)은 필요하다고 판단되는 모든 작업을 순서대로 실행합니다.
파일이 표시되어야 하는 시간에 1분마다 이 작업을 실행하면 더 나은 서비스를 받을 수 있습니다. 10분에 한 번씩이라도 말이죠.
하루에 한 번만 표시되는 파일을 캡처하기 위해 작업을 1,440번 실행할 필요가 없습니다.
작업이 너무 중요해서 파일을 바로 볼 수 있다면 다른 파일을 사용하세요. 그렇지 않으면 필요에 맞게 작업 빈도를 늦추는 것이 좋습니다.
즉, cron을 실제로 사용하고 싶다면 명령줄에서 실행하는 것만으로도 추가 오버헤드가 추가되지 않지만 이메일 받은 편지함이 가득 차게 됩니다.
답변3
이 상황에서 사용하는 올바른 도구를 이라고 합니다.inotify. 이는 Linux 커널의 일부이며 그 목적은 프로그램에 파일 시스템 변경 사항을 알리는 것입니다. 다양한 방법으로 구성할 수 있으며 원하는 작업에 거의 확실히 적합합니다.
답변4
자주 생성되는 프로세스는 항상 시스템 리소스가 고갈될 위험이 있지만 제한 등의 예방 조치를 취할 수도 있습니다.
PS 이 작업의 효율성에 중점을 두고 있다면 다음을 사용할 수 있습니다.inotify반대로.