crontab 파일을 /tmp에 저장해야 합니까?

crontab 파일을 /tmp에 저장해야 합니까?

저는 ssh를 통해 서버에 연결되어 있고 cron에 일상적인 작업을 추가하고 싶습니다(특히 로그아웃할 때 Kerberos 티켓을 업데이트하고 여전히 screen이나 tmux의 프로그램이 계속 실행되기를 원합니다). 그래서 를 실행 crontab -e하고 다음을 추가합니다.

00 00 * * * kinit -R
00 12 * * * kinit -R

저장할 때 편집자가 나에게 이렇게 물었습니다.

File Name to Write: /tmp/crontab.HMpG7V 

/tmp운영체제에 의해 내부 파일이 삭제될 수 있다는 뜻 아닌가요 ? 특히 서버에서 로그아웃한 후에요?

crontab 파일을 어디에 저장해야 합니까? $HOME이나 다른 더 나은 공간에 crontab 파일을 저장할 수 있나요?

답변1

crontab -e새 crontab에서 오류를 확인하고 해당 오류로 실제 crontab을 덮어쓰는 것을 방지할 수 있도록 실제 crontab 대신 /tmp에서 파일을 엽니다. 오류가 없으면 실제 crontab이 업데이트됩니다. 실제 crontab에 직접 작성하는 경우 crontab -e새 crontab의 구문 오류로 인해 모든 cronjob이 실행되지 않을 위험이 있습니다.

sudoedit, 등 의 작동 원리 visudo는 동일합니다.vipw

걱정하지 마십시오. 실제 crontab은 디스크의 비휘발성 위치에 있습니다.

답변2

/tmp임시 crontab 파일이 기록되는 위치입니다. 저장하고 종료한 후 crontab변경 사항은 시스템의 보다 적절한 다른 디렉토리에 커밋됩니다( /var/spool/cron제 기억이 맞다면 일반적으로 위치). 따라서 걱정하지 마십시오. 운영 체제가 /tmp를 삭제할 수 있지만 crontab은 절대 제거되지 않습니다.

답변3

Crontab 파일은 사용자 이름 또는 사용자 ID 아래 /var/spool/cron/crontabs/에 있습니다. 여기의 crontab이 더 이상 로그인 계정에 연결되어 있지 않을 수 있으므로 필요한 경우 쉽게 복원할 수 있도록 /home/userid/.crontab과 같은 홈 디렉터리에 복사본을 저장하는 것이 좋습니다. . 또한 원할 경우 개정 관리하에 놓을 수도 있습니다.

홈 디렉토리가 다른 시스템으로 재배치된 경우 시스템 관리자가 이를 고려하지 않는 한 일반적으로 스풀 디렉토리의 crontab은 나타나지 않습니다. 시스템을 다시 실행해야 할 때 /var/spool이 항상 백업되거나 복원되는 것은 아닙니다.

따라서 홈 디렉토리에 crontab의 복사본을 보관하는 것이 좋습니다.

즐겨 사용하는 편집기(pico, vi, emacs 등)를 사용하여 ~/.crontab을 편집한 다음 crontab을 사용하여 /var/spool/crontabs에 적용합니다. 이와 같이:

% pico ~/.crontab; crontab ~/.crontab

별칭을 선호하는 경우 별칭을 만들어 대신 실행할 수 있습니다.

관련 정보