실수로 모든 Crontab 항목을 삭제 한 것을 깨달았을 때 마음을 사로 잡는 순간을 경험 한 적이 있습니까? 고개를 끄덕이면 혼자가 아닙니다. 나는 또한 얼마 전에이 실수를했다.
실수로 Crontab -r를 실행하는 것은 'r'및 'e'키의 근접성을 감안할 때 경험이 풍부한 Linux 사용자에게도 발생할 수있는 실수입니다.
예정된 모든 CRON 작업을 제거하는 Crontab -R 명령은 실수로 실수로 실수하기 쉽습니다. 특히 Crontab -e에 위험 하게이 항목을 편집하라는 명령입니다.
하지만 걱정하지 마세요! 이 게시물에서는 잃어버린 Crontab 출품작을 복구하는 방법, Crontab 항목을 정기적으로 백업하는 방법 및 Crontab 항목이 미래의 우발적 인 삭제를 방지하는 전략을 살펴 보겠습니다.
목차
얼마 전, 나는 예정된 일자리를 편집하기 위해 Crontab -e를 실행하려고했지만, 손가락이 나를 배신하고 대신 Crontab -r로 갔다. 갑자기, 신중하게 계획된 모든 Cron 일자리가 사라졌습니다.
키 "e"와 "r"이 키보드에서 서로 옆에 있기 때문에 실수로 Crontab -e 대신 Crontab -r 명령을 실행했으며 눈이 깜박이면 모든 Crontab 항목을 잃었습니다.
궁금한 사람들을 위해 Crontab -R 명령은 확인 프롬프트없이 현재 사용자의 Crontab을 제거하여 예정된 모든 CRON 작업 의 손실을 초래할 수 있습니다.
이 실수는 특히 바쁜 하루의 압력이나 멀티 태스킹의 방해로 쉽게 만드는 것이 쉽습니다.
상황을 해결하고 향후 사건을 예방할 수있는 방법은 다음과 같습니다.
먼저 심호흡을하십시오. 상황이 보이는 것만 큼 심각하지 않을 수 있습니다. UNIX 및 Linux 시스템에는 Crontab -r에 대한 "취소"버튼이 없지만 백업을 찾을 수있는 몇 가지 장소가 있습니다.
Crontab 항목을 복구 한 후에 (또는 불행히도 그렇지 않은 경우) 향후 두통을 피하기 위해 백업 루틴을 시작하는 것이 중요합니다.
향후 손실을 방지하기 위해 Crontab 항목을 백업하는 몇 가지 전략은 다음과 같습니다.
편집하기 전에 Crontab 항목을 수동으로 백업하는 습관에 들어가야합니다. 수동 백업은 아무것도 아닌 것보다 낫지 만, 그들은 당신이 그들을 기억하는 것을 기억합니다.
Crontab을 수동으로 백업하려면 실행하십시오.
$ crontab -l> ~/backup_crontab.txt
이 백업을 버전 제어 저장소 또는 클라우드 스토리지 서비스에 안전한 위치에 저장하십시오.
Crontab 항목을 자동으로 백업하기 위해 매일 CRON 작업을 설정하는 것은 항상 Cron 작업 사본을 항상 갖도록하는 훌륭한 방법입니다.
이 관행은 우발적 인 삭제 또는 기타 예기치 않은 문제로 인해 데이터 손실의 위험을 크게 줄입니다. 다음은 그러한 Cron 작업을 설정하는 방법에 대한 간단한 예입니다.
Crontab -e 명령으로 Crontab을 편집하고 특정 시간에 자동으로 Crontab 항목을 백업하기 위해 아래와 같은 새로운 라인을 추가하십시오.
0 1 * * * crontab -l>/path/to/backup/directory/crontab_backup _ $ (날짜 \%y- \%m-\%d) .txt
/path/to/backup/directory/를 자신의 경로로 교체하십시오.
이 명령은 백업 날짜가 포함 된 파일 이름과 함께 매일 오전 1시에 Crontab 항목의 백업을 생성하여 필요한 경우 쉽게 추적하고 복원 할 수 있습니다.
위의 접근법에는 한 가지 문제가 있습니다. 매일 오전 1시에 새 파일을 계속 만들 것입니다. 백업 디렉토리가 무기한으로 성장하기 때문에 이것은 비효율적입니다.
이를 방지하기 위해 백업을위한 회전 및 정리 시스템 구현을 고려할 수 있습니다. 이렇게하면 최신 백업 파일 수를 유지함으로써 백업 디렉토리가 너무 커지지 않도록합니다.
나는 이것을 정확하게하는 간단한 대본을 만들었습니다. 특정 디렉토리의 파일에 Crontab 항목을 백업합니다. 또한 잠시 후 이전 백업을 자동으로 제거합니다.
이렇게하면 백업 폴더가 깔끔하게 유지되며 더 이상 필요하지 않은 오래된 파일을 채우지 않습니다.
백업 스크립트 생성 :
먼저 현재 Crontab 항목을 파일에 저장하는 스크립트를 만듭니다. 시간이 지남에 따라 다른 백업을 추적하기 위해 파일 이름에 타임 스탬프를 포함시킬 수 있습니다.
다음은 기본 스크립트 예입니다.
예를 들어 다음 내용이있는 ~/cron_backup.sh와 같은 파일을 만듭니다.
#!/bin/bash # 백업 디렉토리 및 파일 이름을 정의하십시오 backup_dir = "$ home/cron_backups" file_name = "crontab_backup _ $ (날짜 '%y-%m-%d'). txt" # 백업을 유지해야 할 일 수 days_to_keep = 30 # 백업 디렉토리가 존재하는지 확인하십시오 mkdir -p "$ backup_dir" # Crontab 항목을 파일에 저장합니다 crontab -l> "$ backup_dir/$ file_name" # 지정된 일보다 오래된 백업 파일 삭제 "$ backup_dir"-name 'crontab_backup _*. txt'-type f -mtime $ days_to_keep -exec rm {} \;
이 스크립트는 Crontab 항목을 백업하고 백업을 관리하여 백업 디렉토리가 오래된 파일로 어수선하지 않도록 설계되었습니다.
다음은이 스크립트의 작동 방식에 대한 고장입니다.
이 스크립트를 실행하면 매번 Crontab 항목의 새 백업을 자동으로 생성하고 특정 일보다 오래된 백업을 제거하여 백업 디렉토리를 깨끗하게 유지합니다. 이 접근법은 백업을 수동으로 관리하지 않고 최근 Crontab 항목의 기록을 유지하는 데 도움이됩니다.
파일을 저장하고 닫으십시오. 그런 다음 실행하여 실행 가능합니다.
$ chmod x ~/cron_backup.sh
백업 작업 예약 :
다음 으로이 스크립트를 매일 Crontab을 통해 실행하도록 예약하십시오. Crontab -e로 Crontab을 편집하고 백업 스크립트에 새 줄을 추가하십시오. 예를 들어, 매일 오전 1시에 백업을 실행하려면 다음을 추가합니다.
0 1 * * */bin/bash $ home/cron_backup.sh
이 설정은 매일 지정된 디렉토리에 안전하게 저장된 Crontab의 새로운 백업을 보장합니다.
Crontab 파일을 GIT 와 같은 버전 제어 시스템 (VC)에 저장하십시오. 이것은 파일을 백업 할뿐만 아니라 변경 기록을 유지하여 필요한 경우 이전 버전으로 되돌릴 수 있습니다.
백업 전략에 모든 사용자 크론 탭을 포함하여 시스템의 전체 상태를 캡처하는 시스템 수준의 백업이 포함되어 있는지 확인하십시오.
우리는 블로그의 다양한 백업 도구에 대한 가이드를 검토하고 게시했습니다. 귀하의 요구에 가장 적합한 아카이브를 찾으십시오.
추가 팁 :
실수로 Crontab -r를 실행하고 Crontab 항목을 삭제했지만 이전 섹션에서 논의한대로 정기적으로 백업을 한 경우 Crontab을 복원하는 것이 간단합니다.
백업에서 Crontab 항목을 복원하는 방법은 다음과 같습니다.
1. 가장 최근의 백업 파일 찾기 :
먼저 Crontab의 최신 백업을 찾아야합니다. 예제 백업 전략을 따르는 경우 백업은 특정 디렉토리 (예 : $ home/cron_backups)에 있으며 쉽게 식별 할 수 있도록 날짜 스탬프와 이름을 지정합니다.
2. 백업 컨텐츠 검토 :
복원하기 전에 백업 파일의 내용을 검토하여 예상 Crontab 항목이 포함되어 있는지 확인하는 것이 좋습니다. 고양이와 같은 명령을 사용하여 파일을 볼 수 있습니다.
$ cat $ home/cron_backups/crontab_backup _ $ (날짜 '%y-%m-%d'). txt
오늘의 백업이 아직 생성되지 않았거나 특정 날짜에서 복원 해야하는 경우 명령의 날짜를 그에 따라 조정하십시오.
3. 백업에서 Crontab을 복원하십시오 .
올바른 백업 파일을 식별하고 해당 내용을 확인한 후에는 백업 파일을 입력으로 Crontab 명령을 사용하여 Crontab 항목을 복원 할 수 있습니다.
$ crontab $ home/cron_backups/crontab_backup _ $ (날짜 '%y-%m-%d'). txt
다시, 복원에 사용하려는 백업 파일과 일치하도록 명령의 날짜를 조정하십시오.
4. 복원 확인 :
복원 후 Crontab이 올바르게 복원되어 모든 예상 항목을 포함하는지 확인하는 것이 중요합니다. Crontab -L 명령을 사용하여 현재 Crontab 항목을 나열하십시오.
$ crontab -l
복원 프로세스가 성공했는지 확인하려면 백업에 대한 나열된 항목을 확인하십시오.
복원을위한 팁 :
마지막으로, 미래 에이 실수가 발생하는 것을 막는 방법에 대해 이야기합시다.
프로필 스크립트에서 -i 옵션을 사용하여 Crontab에 대한 별칭을 추가하는 것은 Crontab 항목의 우발적 인 삭제를 방지하는 현명하고 효과적인 방법입니다.
Crontab의 -I 옵션은 Crontab을 삭제하기 전에 확인을 요청하는 대화식 프롬프트를 제공하여 CRON 작업의 의도하지 않은 손실을 방지 할 수 있습니다.
별칭 설정 :
Crontab -I로 Crontab -r을 무시하기 위해 쉘 프로파일에서 별명을 만들 수 있습니다.
다음 줄을 ~/.bashrc, ~/.bash_profile 또는 이와 동등하게 추가하십시오.
별명 crontab = 'crontab -i'
선택한 프로필 스크립트에 별명을 추가 한 후에는 변경 사항을 적용해야합니다. 변경 사항을 인식하려면 다음 중 하나를 사용할 수 있습니다.
예를 들어, 별명을 ~/.bashrc에 추가하면 다음을 실행할 수 있습니다.
$ source ~/.bashrc
별칭 테스트 :
별명이 예상대로 작동하는지 확인하려면 비 임계 또는 임시 크론 탭 항목을 삭제하여 안전한 방식으로 테스트 할 수 있습니다. Crontab -r를 실행하면 이제 다음과 같은 확인을 요청하는 프롬프트가 표시됩니다.
Crontab : Crontab을 정말로 삭제합니까? (Y/N)
이 프롬프트는 별칭이 올바르게 작동하고 있으며 향후 우발적 인 Crontab 삭제를 방지한다는 확인입니다.
습관적인 이중 확인 :
Enter를 누르기 전에 명령을 다시 확인하는 습관을 배양하십시오. 작은 것 같지만 많은 문제를 구할 수 있습니다.
실수로 Crontab 항목을 삭제하는 것은 실망스러운 경험이지만 세상의 끝은 아닙니다. 이 단계와 팁을 따르면 실수로 삭제 된 Crontab 항목을 쉽게 복구 할 수 있습니다.
간단한 쉘 스크립트를 사용하여 Crontab 항목을 자동으로 백업하여 향후이 사고를 피할 수 있습니다.
위 내용은 Linux에서 Crontab 항목이 우연한 삭제되는 것을 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!