이전 파일을 바꾸지 않고 프로그래밍 방식으로 새 crontab 파일을 추가하는 방법

이전 파일을 바꾸지 않고 프로그래밍 방식으로 새 crontab 파일을 추가하는 방법

저는 라즈베리 파이(OS -Raspbian)를 사용하여 소규모 홈 자동화 프로젝트를 진행하고 있습니다.

crontab -e? 의 이전 항목을 바꾸지 않고 python-crontab 모듈을 사용하여 두 개 이상의 crontab 파일을 추가하는 방법을 알고 싶습니다.

프로그래밍 방식으로 (수동으로 파일을 추가하지 않고) 두 개의 Python 스크립트를 예약하고 싶습니다 crontab -e. 첫 번째 스크립트는 5분마다 실행되고 다른 스크립트는 2분마다 실행됩니다.

python-crontab 모듈을 사용하여 첫 번째 스크립트를 성공적으로 예약할 수 있었지만 두 번째 스크립트를 예약했을 때 crontab -e. 그렇다면 이전 파일을 바꾸지 않고 새 crontab 파일을 예약하는 방법은 무엇입니까?

crontab 스케줄링의 다른 방법이 있다면 예제 코드를 제안해주세요 :)

참고:- 수동으로 파일을 추가하지 않고 Python 스크립팅만 사용하여 crontab에서 Python 스크립트를 예약하고 싶습니다 crontab -e.

답변1

cron에 항목을 추가하는 스크립트를 작성하려면(를 통해 텍스트 편집기를 사용하지 않고 crontab -e) 다음과 같습니다.

  • crontab -l임시 파일로 실행
  • 최신 명령이 이미 파일에 있는지 확인하십시오. 그렇다면 중지하십시오.
  • 임시 파일에 최신 명령을 추가합니다.
  • crontab예약된 명령을 대체하려면 임시 파일을 매개변수로 사용하여 실행하세요 .

참고로:

답변2

crontab은 결국 텍스트 파일이므로 텍스트를 추가하는 것은 어떨까요?

with open("/var/spool/cron/crontabs/john", "a") as ctfile:
    ctfile.write("1 0 * * 3 /path/to/newcommand --option")

답변3

crontab -e실제로 모든 cronjob을 나열하는 파일입니다.

입력하면 crontab -e이전 cronjob 및 틸다( ) 목록이 표시됩니다 ~.

키보드의 삽입 버튼을 눌러 모드를 전환하고 마지막 크론 작업이 끝나면 Enter를 누르세요.

tilda가 지워지고 여기에 새 cronjob을 작성할 수 있습니다.

삽입 모드를 종료하려면 ESC를 누르고 Enter를 눌러 :wq!변경 사항을 저장하세요.

관련 정보