cron 작업을 추가, 활성화 및 비활성화하는 편리한 명령줄(비네트워크) 도구나 스크립트를 제안할 수 있는 사람이 있습니까? 예를 들어 다음과 같은(또는 유사한) 동작을 찾고 있습니다.
sh manageCron.sh -idJob 'job1' -addJob '* * * * * <do some job>'
sh manageCron.sh -dissableJob 'job1'
crontab -e 명령은 crontab 파일을 수동으로 편집하는 데 적합하지만 자동화가 필요합니다.
답변1
crontab -u USER -l
crontab을 STDOUT에 나열합니다.
crontab -u USER FILE
FILE은 사용자의 crontab으로 로드됩니다.
지금 빠진 유일한 것은 귀하의 "직업"을 식별하는 방법입니다.
"AddJob"은 현재 crontab의 출력에 한 줄을 추가하고 이를 새 crontab으로 읽습니다.
"DisableJob"은 작업 줄 앞에 설명을 추가합니다.
"EnableJob"은 작업 행에서 설명을 제거합니다.
답변2
이것은 이전에 crontab을 관리하고 자동화하는 데 사용한 적이 있지만 실제로 원하는 것과는 다릅니다.http://search.cpan.org/~scottw/Config-Crontab-1.33/Crontab.pm
CFEngine의 cfperl에는 이러한 동작이 있으며 요청한 것을 빌드하는 데 사용할 수 있습니다. crontab은 실제로 간단한 구성 파일이며 cron(d)는 개별 crontab(또는 /var/spool/cron/ 아래의 crontab)을 구문 분석하고 메모리에 이벤트 목록을 예약합니다.
따라서 간단한 cron의 crontab으로 구성을 다시 래핑하려는 경우 아마도 cron이 아니라 작업을 트리거할 다른 스케줄러를 찾고 있을 것입니다.
답변3
crontab을 "자동으로" 유지 관리할 수 있는 응용 프로그램이 있는지 모르겠습니다. 내가 하는 일은 "기본" crontab을 유지하고 편집한 다음 사용하는 crontab ~/etc/app.cron
것뿐입니다. 그런 다음 ~/etc/app.cron을 자동으로 수정하는 항목을 만드는 것은 쉽습니다.
원하는 명명된 작업의 경우 작업 이름이 포함된 작은 데이터베이스를 만들거나 crontab 줄 끝에 있는 구조화된 설명에 작업 이름을 추가해야 합니다.
답변4
자동화된 크론 작업을 사용할 수 있습니다 crontab -e
. crontab -e
로 지정된 편집기를 호출 했거나 $VISUAL
, 설정하지 않은 $EDITOR
경우 VISUAL
일부 스크립트는 으로 지정되었습니다 $VISUAL
.
script=$(mktemp)
cat <<'EOF' >"$script"
#!/usr/bin/ed -s
1,$/#job1$/d
$a
1 2 3 4 5 new job #job2
.
w
q
EOF
VISUAL="$script" crontab -e
rm -f "$script"
작업 이름에는 고유한 개념이 없으며 #jobname
위의 예와 같이 각 줄 끝에 설명을 추가하여 쉽게 설명을 작성할 수 있습니다.
대신에 crontab -e
, 당신은 더 쉽게 찾을 수 있습니다현재 파일을 덤프하고 편집한 후 새 버전을 설치합니다.또는마스터 복사본을 보관하고 변경 사항이 있을 때 설치하세요.. 마스터 복사본을 사용한다는 것은 다른 방법으로 crontab을 편집할 수 없거나 변경 사항을 덮어쓰게 된다는 것을 의미합니다. 현재 파일을 덤프하고 편집한다는 것은 누군가 또는 다른 사람이 동시에 crontab을 편집하면 먼저 설치한 사람이 변경 사항을 덮어쓰게 된다는 것을 의미합니다. 일부 버전에서는 crontab
런타임에 파일을 잠가서 이를 방지 crontab -e
하지만, 어떤지는 모르겠습니다 . 솔라리스가 그렇게 할 것입니다.