사용자의 업그레이드가 완료된 후 crontab이 지워졌습니다. 이번이 처음이 아니고 매번 그것을 회복하는 고통입니다.
사용자를 위해 crontab을 백업하고 싶지만 저장 위치를 알아야합니다.
답변
실제로는 해당 파일을 직접 처리하지 않는 것이 좋습니다. crontab
맨 페이지 당 :
각 사용자는 고유 한 crontab을 가질 수 있으며이
파일은의 파일 이지만
직접 편집 할 수/var/spool/cron/crontabs
는 없습니다
.
아래의 파일 /var/spool
은 임시 / 작업으로 간주되므로 업그레이드 중에 파일이 삭제 될 수 있습니다. 그러나 cron
패키지의 업그레이드 스크립트를 자세히 살펴보면 이에 대한 약간의 정보를 얻을 수 있습니다.
어쨌든 항상 cron 항목을 백업하거나 홈 디렉토리의 파일에 보관하는 것이 좋습니다.
crontab -e
crontab 파일을 즉석에서 만드는 데 사용한다고 가정합니다 . 그렇다면을 수행하여 crontab 파일의 “복사본”을 얻을 수 있습니다 crontab -l
. “백업”을 얻기 위해 파일로 파이프하십시오.
crontab -l > my-crontab
그런 다음 해당 my-crontab 파일을 편집하여 항목을 추가하거나 수정 한 다음 crontab에 제공하여 “설치”할 수 있습니다.
crontab my-crontab
이것은와 동일한 구문 검사를 수행 crontab -e
합니다.
답변
그것은 /var/spool/cron/crontabs
사용자 이름으로 폴더 안에 저장됩니다.
답변
마침내 crontab과 Postfix 설치가 부팅 후에 왜 끊어 졌는지 알게되었습니다 . 정말 어리석은 이유이지만 …
내가했던 /var/spool
A와 장착 tmpfs
RAM 드라이브.
바보처럼 들리지만 SSD의 수명을 연장하기 위해 오래된 SSD 조정 중 하나를 따랐습니다. 이 과정에서 나는 맹목적으로 장착 /tmp
, /var/tmp
와 /var/spool
같은 tmpfs
반향을 생각하지 않고. 나는 /var/spool
같 /proc/
거나 /run/
세션의 기간 동안 만 유용 하다고 생각 했습니다. 나는 분명히 틀렸다.
답변
시스템의 모든 사용자의 모든 크론 작업을 나열하려면 다음을 수행하십시오.
for user in $(cut -f1 -d: /etc/passwd)
do
echo $user
crontab -u $user -l
done
문제의 대안은 cron.d 폴더에 배치하고 예와 같이 cron별로 적절한 사용자를 지정하는 것입니다.
00 01 * * * user /home/user/user-script.sh