
나는 내 웹 서버에 대한 awstats 새로 고침을 자동화하려고 노력하고 있으며 이를 설정하려면 cron을 사용해야 한다는 것을 이해하고 있습니다. 그렇다면 각 사용자는 crontab 파일을 가지고 있습니까?
나는 지시를 따르고 있었다여기커뮤니티/AWStats
그리고 다음 위치의 파일로 이동하라는 메시지가 표시됩니다./etc/crontab
해당 파일에는 이미 일부 정보가 포함되어 있습니다. 이게 메인 crontab
파일인가요? .crontab -e
사용할 적절한 파일은 무엇이며 이를 수행하는 가장 좋은 방법은 무엇입니까?
루트가 아닌 사용자로 작업을 예약하면 지정된 시간 간격에 따라 문제 없이 자동으로 실행됩니까?
crontab
작동을 시작하려면 크론 작업을 파일에 저장한 후 서버를 다시 시작해야 합니까 ?
답변1
사용할 적절한 파일은 무엇이며 이를 수행하는 가장 좋은 방법은 무엇입니까?
crontab -e
가장 좋은 방법은 사용자별 크론탭을 쉽게 편집할 수 있는 방법입니다.
루트가 아닌 사용자로 작업을 예약하면 지정된 시간 간격에 따라 문제 없이 자동으로 실행됩니까?
예, 해당 사용자 계정의 권한으로 실행됩니다.
원칙적으로, 피할 수 있는 가장 낮은 권한으로 예약된 작업을 실행하는 것이 가장 좋습니다. 따라서 수행 중인 작업에 루트가 필요하지 않은 경우 루트를 사용하지 마십시오. 접근할 필요조차 없다면당신의계정의 파일 및 폴더를 삭제한 후 새 사용자를 생성하고 해당 사용자 계정을 사용할 수 있습니다.오직그 일을 위해. 반면에 당신의 임무라면하다루트가 필요하면 루트의 crontab을 사용하십시오( su
/ sudo su
루트로 이동한 후 crontab -e
).
작동을 시작하려면 crontab 파일에 cron 작업을 저장한 후 서버를 다시 시작해야 합니까?
아니요, 곧바로 작업이 시작됩니다(음, 가능한 다음 예정 시간).
파일을 직접 편집하면 안 되나요? 어디에 위치해 있나요?
사용자 crontab 파일은 에 있지만 /var/spool/cron/crontabs
해당 권한은 수퍼유저 권한 없이는 탐색할 수 없는 방식으로 설정됩니다(그러나 일단 열리면 cron 프로세스가 권한을 삭제하고 파일에 계속 액세스할 수 있습니다).
시스템은 최종 사용자가 이러한 파일을 직접 편집할 수 있도록 설계되지 않았으며 실제로 파일 상단 DO NOT EDIT THIS FILE
에는 이 효과에 대한 엄격한 경고가 표시됩니다. 대신 파일은 엄격한 경고 없이 편집을 위해 crontab -e
파일의 임시 미러를 설정한 후 영구 crontab 파일 자체를 확인하고 설치하는 방법을 통해 편집되도록 설계되었습니다. /tmp
이 모든 작업은 슈퍼유저 권한 없이 수행될 수 있습니다.
crontab 파일을 직접 편집했다면 결과가 어떻게 될지 모르겠습니다. 다음에 다시 시작할 때까지 적용되지 않고 오류를 디버깅하기 어려울 수도 있습니다.
답변2
모든 사용자는 자신만의 crontab
.
보려면 그냥 입력하세요.
crontab -l
그리고 네, 맞습니다. 추가하고 싶으면 crontab
그냥 하세요.
crontab -e
처음으로 와 함께 사용할 편집기에 대해 묻는 메시지가 표시됩니다 crontab
. 말씀하신 것처럼 초보자이시므로 사용하기 가장 간단한 편집기인 nano를 사용하는 것이 좋습니다.
crontab 자체는 다음과 같이 작동합니다.
MIN = Minute 0-60
HOUR = Hour [24-hour clock] 0-23
MDAY = Day of Month 1-31
MON = Month 1-12 OR jan,feb,mar,apr ...
DOW = Day of Week 0-6 OR sun,mon,tue,wed,thu,fri,sat
COMMAND = Command to be run Any valid command-line
예를 들어 월요일에만 15분마다 작업을 트리거하려면 이렇게 하면 됩니다.
*/15 * * * mon /home/me/yourscript.sh
그렇습니다. cronjob을 실행할 수 있는 충분한 권한이 있는 사용자의 crontab에 넣는 것이 매우 중요합니다.
따라서 스크립트가 루트 또는 특수 사용자여야 하는 경우 해당 사용자에게 su를 실행하고 거기에 cronjob을 추가해야 합니다.
또한 매우 중요합니다!
cronjob은 바보입니다! 네, 제가 말했어요. application/command/script
crontab은 이와 유사하게 작동하지 않으므로 항상 사용 중인 전체 PATH를 입력해야 합니다 .bashrc
. 항상 cron에게 파일과 디렉터리를 찾을 수 있는 위치를 알려 주어야 합니다.
나머지 질문에 답변하려면:
물론 그것은 스스로 실행될 것입니다. 그것이 바로 그것의 목적입니다. 하지만 cronjob이 실제로 작동하는지, 아니면 뭔가 빠진 것이 있는지 확인해야 합니다. 예를 들어 로그 파일에 로그인하여 실제로 작동하는지 확인하세요.
아니요, 다시 시작할 필요가 없습니다. Linux를 다시 시작하는 것은 일반적으로 새 커널을 설치하는 경우에만 필요합니다. 사용하려면 재부팅해야 합니다. Linux에서는 재부팅 없이 거의 모든 작업을 수행할 수 있습니다.물론 예외도 있지만 일반적으로 이 진술은 정확합니다.