
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の出力に1行を追加し、それを新しい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
、どうかはわかりません。ソラリスはそうするでしょう。