> 시스템 튜토리얼 > 리눅스 > Linux에서 Crontab 항목이 우연한 삭제되는 것을 방지하는 방법

Linux에서 Crontab 항목이 우연한 삭제되는 것을 방지하는 방법

Joseph Gordon-Levitt
풀어 주다: 2025-03-19 10:45:11
원래의
215명이 탐색했습니다.

실수로 모든 Crontab 항목을 삭제 한 것을 깨달았을 때 마음을 사로 잡는 순간을 경험 한 적이 있습니까? 고개를 끄덕이면 혼자가 아닙니다. 나는 또한 얼마 전에이 실수를했다.

실수로 Crontab -r를 실행하는 것은 'r'및 'e'키의 근접성을 감안할 때 경험이 풍부한 Linux 사용자에게도 발생할 수있는 실수입니다.

예정된 모든 CRON 작업을 제거하는 Crontab -R 명령은 실수로 실수로 실수하기 쉽습니다. 특히 Crontab -e에 위험 하게이 항목을 편집하라는 명령입니다.

하지만 걱정하지 마세요! 이 게시물에서는 잃어버린 Crontab 출품작을 복구하는 방법, Crontab 항목을 정기적으로 백업하는 방법 및 Crontab 항목이 미래의 우발적 인 삭제를 방지하는 전략을 살펴 보겠습니다.

목차

Crontab 항목의 우연한 삭제

얼마 전, 나는 예정된 일자리를 편집하기 위해 Crontab -e를 실행하려고했지만, 손가락이 나를 배신하고 대신 Crontab -r로 갔다. 갑자기, 신중하게 계획된 모든 Cron 일자리가 사라졌습니다.

키 "e"와 "r"이 키보드에서 서로 옆에 있기 때문에 실수로 Crontab -e 대신 Crontab -r 명령을 실행했으며 눈이 깜박이면 모든 Crontab 항목을 잃었습니다.

궁금한 사람들을 위해 Crontab -R 명령은 확인 프롬프트없이 현재 사용자의 Crontab을 제거하여 예정된 모든 CRON 작업 의 손실을 초래할 수 있습니다.

이 실수는 특히 바쁜 하루의 압력이나 멀티 태스킹의 방해로 쉽게 만드는 것이 쉽습니다.

상황을 해결하고 향후 사건을 예방할 수있는 방법은 다음과 같습니다.

1 단계 : 숨을 쉬고 잃어버린 크론 타브 항목을 복구하려고합니다.

먼저 심호흡을하십시오. 상황이 보이는 것만 큼 심각하지 않을 수 있습니다. UNIX 및 Linux 시스템에는 Crontab -r에 대한 "취소"버튼이 없지만 백업을 찾을 수있는 몇 가지 장소가 있습니다.

  • 시스템 스냅 샷 또는 백업 : 귀하 또는 시스템 관리자가 시스템 전체의 백업 또는 스냅 샷을 설정 한 경우 이제이를 확인하기에 좋은시기입니다. 최근 백업에서 Crontab 파일을 복원 할 수 있습니다.
  • 편집자 백업 : 이전에 Crontab -e를 사용하고 저장하지 않고 편집기를 종료 한 경우 편집자가 시스템 어딘가에 임시 파일을 남겼을 수 있습니다. /TMP 디렉토리 또는 편집기의 기본 임시 파일 위치를 살펴보십시오.
  • 법의학 도구 : 극단적 인 경우, 데이터가 중요한 경우 디스크에서 데이터를 덮어 쓰지 않았다고 가정 할 때 삭제 된 파일을 복구하려고 시도 할 수있는 법의학 도구가 있습니다. 이것은 더 복잡하고 항상 성공적인 것은 아닙니다.

2 단계 : 백업 루틴을 백업 Crontab 항목 설정 설정

Crontab 항목을 복구 한 후에 (또는 불행히도 그렇지 않은 경우) 향후 두통을 피하기 위해 백업 루틴을 시작하는 것이 중요합니다.

향후 손실을 방지하기 위해 Crontab 항목을 백업하는 몇 가지 전략은 다음과 같습니다.

2.1. 수동 백업

편집하기 전에 Crontab 항목을 수동으로 백업하는 습관에 들어가야합니다. 수동 백업은 아무것도 아닌 것보다 낫지 만, 그들은 당신이 그들을 기억하는 것을 기억합니다.

Crontab을 수동으로 백업하려면 실행하십시오.

 $ crontab -l> ~/backup_crontab.txt
로그인 후 복사

이 백업을 버전 제어 저장소 또는 클라우드 스토리지 서비스에 안전한 위치에 저장하십시오.

2.2. CRON을 사용하여 Crontab 항목을 자동으로 백업합니다

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 항목의 백업을 생성하여 필요한 경우 쉽게 추적하고 복원 할 수 있습니다.

2.3. 자동 백업 스크립트

위의 접근법에는 한 가지 문제가 있습니다. 매일 오전 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 항목을 백업하고 백업을 관리하여 백업 디렉토리가 오래된 파일로 어수선하지 않도록 설계되었습니다.

다음은이 스크립트의 작동 방식에 대한 고장입니다.

  • #!/bin/bash :이 줄은 컴퓨터 에이 스크립트가 배쉬 쉘과 함께 실행되어야한다고 알려줍니다.
  • backup_dir = "$ home/cron_backups":이 줄은 백업이 저장 될 홈 디렉토리의 경로로 backup_dir라는 변수를 설정합니다. 경로는 ~/cron_backups입니다.
  • file_name = "crontab_backup _ $ (날짜 '%y-%m-%d'). txt":이 줄은 file_name이라는 변수를 백업 파일의 고유 이름으로 설정합니다. 여기에는 현재 날짜가 포함됩니다. 예를 들어, 2024 년 2 월 27 일에 스크립트를 실행하면 파일 이름이 crontab_backup_2024-02-27.txt입니다.
  • days_to_keep = 30 : 백업 파일을 유지하는 일 수를 지정합니다. 이 경우 스크립트는 백업 파일을 30 일 동안 유지합니다. 30 일 후에는 공간을 절약하기 위해 이전 백업을 자동으로 삭제합니다.
  • mkdir -p "$ backup_dir":이 명령은 아직 존재하지 않으면 백업 디렉토리를 만듭니다. -P 옵션은 디렉토리가 이미 존재하는 경우 명령이 오류를 반환하지 않도록하고 필요한 경우 중첩 디렉토리를 생성 할 수 있도록합니다.
  • crontab -l> "$ backup_dir/$ file_name":이 명령은 crontab -l (현재 사용자의 모든 crontab 항목을 나열하는)의 출력을 가져 와서 백업 디렉토리의 파일에 저장합니다. 파일은 file_name 변수에 따라 명명되었습니다.
  • "$ backup_dir"-name 'crontab_backup _*. txt'-type f -mtime $ days_to_keep -exec rm {} \; :이 명령은 패턴 crontab_backup _*. days_to_keep days보다 오래된 백업 디렉토리에서 파일을 찾습니다. -name 옵션은 파일 이름과 일치하는 패턴을 지정하고, -type f는 파일 만 고려되도록, -mtime $ days_to_keep 며칠 전에 days_to_keep 및 -exec rm {} \; 해당 파일을 삭제합니다.

이 스크립트를 실행하면 매번 Crontab 항목의 새 백업을 자동으로 생성하고 특정 일보다 오래된 백업을 제거하여 백업 디렉토리를 깨끗하게 유지합니다. 이 접근법은 백업을 수동으로 관리하지 않고 최근 Crontab 항목의 기록을 유지하는 데 도움이됩니다.

파일을 저장하고 닫으십시오. 그런 다음 실행하여 실행 가능합니다.

 $ chmod x ~/cron_backup.sh
로그인 후 복사

백업 작업 예약 :

다음 으로이 스크립트를 매일 Crontab을 통해 실행하도록 예약하십시오. Crontab -e로 Crontab을 편집하고 백업 스크립트에 새 줄을 추가하십시오. 예를 들어, 매일 오전 1시에 백업을 실행하려면 다음을 추가합니다.

 0 1 * * */bin/bash $ home/cron_backup.sh
로그인 후 복사

이 설정은 매일 지정된 디렉토리에 안전하게 저장된 Crontab의 새로운 백업을 보장합니다.

2.4. 버전 제어

Crontab 파일을 GIT 와 같은 버전 제어 시스템 (VC)에 저장하십시오. 이것은 파일을 백업 할뿐만 아니라 변경 기록을 유지하여 필요한 경우 이전 버전으로 되돌릴 수 있습니다.

2.5. 시스템 전체의 백업 솔루션

백업 전략에 모든 사용자 크론 탭을 포함하여 시스템의 전체 상태를 캡처하는 시스템 수준의 백업이 포함되어 있는지 확인하십시오.

우리는 블로그의 다양한 백업 도구에 대한 가이드를 검토하고 게시했습니다. 귀하의 요구에 가장 적합한 아카이브를 찾으십시오.

  • Linux 백업 도구 아카이브

추가 팁 :

  • 원격 백업 : 중요한 시스템의 경우 백업 디렉토리를 원격 위치 또는 클라우드 스토리지 서비스에 동기화하여 로컬 데이터 손실로부터 보호하십시오.
  • 모니터링 및 경고 : 백업 CRON 작업 실행을위한 모니터링 구현. 간단한 이메일 알림 또는 로깅은 백업 상태에 대한 정보를 유지하는 데 도움이 될 수 있습니다.

3 단계 : 백업에서 삭제 된 Crontab 항목을 복원합니다

실수로 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
로그인 후 복사

복원 프로세스가 성공했는지 확인하려면 백업에 대한 나열된 항목을 확인하십시오.

복원을위한 팁 :

  • 자동화 : 백업을 자주 복원 해야하는 경우 오류 가능성을 줄이기 위해 복원 프로세스를 스크립팅하는 것을 고려하십시오.
  • 백업 무결성 : 백업 파일을 수동으로 검토하여 백업의 무결성을 정기적으로 확인하여 올바르게 생성되고 예상 데이터가 포함되어 있는지 확인하십시오.
  • 다중 백업 : 업데이트 빈도 및 스토리지 용량에 따라 며칠 또는 몇 주 동안 백업을 유지하여 필요한 경우 다양한 시점에서 복구 할 수 있도록하십시오.

4 단계 : Crontab 항목의 우발적 인 삭제를 방지합니다

마지막으로, 미래 에이 실수가 발생하는 것을 막는 방법에 대해 이야기합시다.

프로필 스크립트에서 -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)
로그인 후 복사

Linux에서 Crontab 항목이 우연한 삭제되는 것을 방지하는 방법

이 프롬프트는 별칭이 올바르게 작동하고 있으며 향후 우발적 인 Crontab 삭제를 방지한다는 확인입니다.

습관적인 이중 확인 :

Enter를 누르기 전에 명령을 다시 확인하는 습관을 배양하십시오. 작은 것 같지만 많은 문제를 구할 수 있습니다.

결론

실수로 Crontab 항목을 삭제하는 것은 실망스러운 경험이지만 세상의 끝은 아닙니다. 이 단계와 팁을 따르면 실수로 삭제 된 Crontab 항목을 쉽게 복구 할 수 있습니다.

간단한 쉘 스크립트를 사용하여 Crontab 항목을 자동으로 백업하여 향후이 사고를 피할 수 있습니다.

위 내용은 Linux에서 Crontab 항목이 우연한 삭제되는 것을 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿