cronjob은 디렉토리의 파일을 지웁니다.

cronjob은 디렉토리의 파일을 지웁니다.

API 서버이기 때문에 Apache(centos 웹 패널)를 사용하는 웹 서버의 로그에 문제가 있습니다. 며칠 후 서버의 domlogs 디렉토리가 서버 충돌을 일으킬 만큼 커집니다(100GB 이상의 로그). 그래서 명령을 사용하여 파일을 지워야 합니다.

root@local: cd /var/domlogs
root@local: > logfile.log

그러면 로그 링크가 끊어지거나 로그를 복원하여 파일을 다시 생성하지 않고도 파일이 비워집니다.

X일마다 동일한 작업을 수행하는 cronjob을 만들려면 어떻게 해야 합니까?

답변1

Apache 프로세스를 실행하는 사용자 ID에 대해 crontab을 설정하거나 rootID 아래에 crontab을 설정할 수 있습니다. 여기서 crontab 항목은 다음과 같습니다.

@daily     cd /var/domlogs; > logfile.log

이러한 간단한 작업을 위해 쉘 스크립트를 작성할 필요는 없습니다. 단지 ;명령과 문자를 분리하기만 하면 됩니다.

@daily는 매일 자정에 실행되는 GNU 확장입니다.https://crontab.guru/다른 파로 플레이하십시오.

월요일, 수요일, 금요일 오전 2시 30분과 같이 보다 구체적인 시간을 확인하려면 다음을 시도해 보세요.

 30 2 * * 1,3,5   cd /var/domlogs; > logfile.log

이것은 내가 crontab에 넣은 것입니다( #셸 스크립트와 마찬가지로 crontab에 대한 주석으로):

#Minute   Hour    Day     Month   Wkday   UnixCmd
#0-59     0-23    1-31    1-12    0-7     UnixCmd

현재 사용자에 대한 cron 작업을 설정하려면 crontab -e이를 사용하여 편집기를 호출하여 위 명령을 입력하면 됩니다.

이제 더 고급 작업을 수행하려면 크론 작업의 다양한 제한 사항에 유의하세요. 초기 환경에는 환경 설정 PATH등이 매우 제한되어 있습니다. cron 작업이 실행되면 출력이 출력 파일로 리디렉션되지 않는 한 작업의 표준 출력 및 표준 오류가 cron을 시작하도록 설정된 사용자에게 이메일로 전송됩니다.

관련 정보