그래서 다음 명령을 사용하여 캐시를 지우는 기본 .sh 파일을 만들었습니다.
sync; echo < 3 /proc/sys/vm/drop_caches
주문하다. 그런 다음 내 사용자 이름에 저장합니다.
/home/marc
그러다가 crontab을 발견했고, 랩탑의 RAM이 매우 빠르게 소모되는 것을 발견했기 때문에 이 sh 파일을 사용하고 매시간 crontab을 실행하기로 결정했습니다. crontab -e를 사용하여 파일을 다음과 같이 편집했습니다.
0 * * * * /root/clearcache.sh
제 질문은 '내가 모든 일을 제대로 하고 있나요?'입니다. crontab 파일을 올바르게 편집했습니까? 그렇다면 작업이 예상대로 실행되는지 어떻게 확인합니까?
답변1
cronjob이 예상대로 작동하는지 확인하세요(누락됨)매뉴얼 페이지 읽기)는 특정 파일에 날짜를 보고하는 간단한 cronjob을 추가합니다.
0 * * * * date >> /tmp/cronjob.test
그런 다음 다음 날(또는 언제든지) 확인하고 예상한 시간에 실행되는지 확인하세요.
나는 개인적으로 매뉴얼 페이지를 읽는 것을 권장합니다. 더 빠르지만 위의 방법은 더 길고 게으른 방법입니다. ;)
답변2
따라서 cron에는 로깅이나 디버깅 옵션이 없는 것 같습니다.
짧은 스크립트가 예상대로 실행되는지 확인하려면 strace -f -p $(pgrep cron)
터미널 창에서 확인할 수 있습니다. 미리 실행하여 strace -f my-basic.sh
그것이 무엇인지 알 수 있습니다.~해야 한다처럼 보입니다.
cron 스크립트가 출력을 생성하면 사용자에게 메일로 전송되어야 합니다. 터미널을 열면 메일이 있다는 메시지가 표시되고 이 mail
명령이 메일을 표시합니다... 이 명령이 또 다른 "학습 기회"가 될 수 있을지 걱정됩니다 :).
오류로 인해 스크립트가 출력을 생성하고 메시지가 생성될 것으로 예상할 수 있습니다. 이것이 유닉스 규약이다. "무소식은 좋은 소식이다."