크론 탭 파일을 삭제하고 복구해야합니다.


11

crontab -e 대신 crontab -r을 실행하고 crontab 파일을 삭제했습니다. 삭제 된 파일을 복구하기위한 백업이없고 새로운 것이 없습니다.

이게 가능해?

감사,

베드로


7
키보드에서 편집 및 제거 옵션이 바로 옆에 있어서는 안됩니다. 빠른 타이핑을하기에는 실수가 너무 쉽습니다.
einstiien

그것이 바로 나에게 일어난 일입니다.

답변:


9

/ var / log / cron을보고 무엇이 실행 중인지 확인한 다음 crontab을 다시 작성하십시오. 지저분하지만 이전에 실행 한 모든 것을 복원 할 수 있어야합니다. 최신 아이템에는 그리 운이 없습니다. 행운을 빕니다!


훌륭한 접근 방식!
Alex

5

우선 : 항상 백업하십시오!

그러나, 섞어 너무 쉽게 crontab -r하고 crontab -e. 방금 직접 했어.

그것이 내가 한 일입니다.

/ var / log / cron을 살펴보고 crontab을 다시 빌드하십시오.

  1. 로그 파일을 살펴보십시오
  2. 첫 번째 명령을 받아 grep commandname1 /var/log/cron
  3. 명령이 실행 된 시간 뒤에 체계적으로 파악
  4. 해당 항목을 새 crontab에 입력하십시오.
  5. 실행하십시오 cat /var/log/cron | grep -v commandname1. 이것은 이미 다루었던 command1을 제외합니다.
  6. 다음 명령을 받아 grep하십시오
  7. 두 번째 명령이 실행 된 시간의 체계적인 파악
  8. 해당 항목을 새 crontab에 입력하십시오.
  9. 실행하다 cat /var/log/cron | grep -v commandname1 | grep -v commandname2
  10. 모든 명령을 다룰 때까지 반복하십시오

이제 이전 크론 로그에서 grep을 실행하여 한 달에 한 번만 실행될 수있는 작업을 찾아야합니다.


1
우분투에서는 적어도 (anacron / Vixie cron을 사용하는 다른 플랫폼에 대해서는 확실하지 않음) 로그가에 저장됩니다 /var/log/syslog/*.
Timothy Gu

1
실수로 무언가를 삭제하기 전에 항상 백업을 만드십시오!
Dávid Horváth

4

전체 crontab 복구를위한 스크립트

로그를 기반으로 crontab을 완전히 복구하는 PHP 스크립트를 만들었습니다.

마지막 주 동안 사용자가 실행 한 모든 cron 명령의 단일 인스턴스를 출력합니다.

나는 여기에 넣어

https://github.com/dangreenisrael/recover_crontab

다음은 샘플 출력입니다.

perl ~/sorttv/sorttv.pl

/usr/local/bin/flexget

bash ~/scripts/sort_sports.sh

~/scripts/play_recently_added.sh

1
이것이 왜 -1입니까? 질문에 대한 직접적인 답변입니다.
Dan Green-Leipciger

나는 당신의 스크립트를 사용하고 있습니다. 정말 고마워요!
MeV

닫는 괄호가 포함 된 명령에는 PHP 스크립트가 제대로 포함되지 않습니다. bash로 고정 및 포팅 :zgrep -F "($USER) CMD (" /var/log/syslog* | cut -d\( -f3- | sort -u | while read cmd ; do echo ${cmd::-1} ; done
Splitlocked

1

당신은 옵션을 가지고 있지만, 특히 아름다운 것은 없습니다. 당신이 그것을 생각하지 못했을 경우, 개발 머신에 최신 버전이 있다면 거기에서 복사 할 수 있습니다 ... 나는 종종 다른 머신에있을 수있는 사본을 잊어 버렸기 때문에 나는 당신이 이미 그것을 시도했다고 가정합니다.

파일을 단순히 재구성하기에 파일이 너무 많이 사용자 정의 된 경우 언제든지 저수준의 법의학을 시도 할 수 있습니다. sleuthkit 및 UFS Explorer를 기반으로하는 자습서를 찾아 보기 위해 인터넷 검색을 시도해보십시오 . 이러한 도구를 사용하는 사람들은 평소처럼 YMMV와 같이 사용 편의성과 성공률 측면에서 매우 다양한 정도를 찾습니다.


1

헉 원래의 질문에 코멘트를 게시하지만, 동료는 나에게 훌륭한 도구 보여 수 없습니다 : 어떤에서 별칭 수 있도록 .profile당신이 사용 crontab될 수를 crontab -i. -i플래그를 삭제하기 전에 확인을 요청합니다.

따라서 그렇게하면 crontab -e평소와 같이 편집이 진행되지만 실수로 crontab -r확인 메시지가 표시됩니다.


그것은 즉각적인 문제에 도움이되지 않습니다 ...
vonbrand

0

나는 그렇게 생각하지 않습니다. / etc / var / spool / home ...에있는 다른 모든 파일과 함께이 중요한 파일을 백업 할 차례입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.