一般的な使い方

システムスケジューラ“cron”は、システムの起動時に自動的に起動される UNIX プログラムで、毎分“crontab”と呼ばれるファイルで実行すべきタスクを確認します。システム上のすべてのユーザ、およびシステム自体がそれぞれ 1 つずつの crontab を持つことができます。CronniX ではこれらの crontab を一度に編集することができるのです。

CronniX のユーザインターフェースを見てみましょう:

screenshot

メインウインドウ

図中の後ろのウインドウが CronniX のメインウインドウで、この crontab に含まれているすべてのタスクが表示されます。ツールバーのステータスアイコンには誰の crontab を編集しているのかが表示されます。ツールバーを隠している場合には、ウインドウのタイトルに表示されます。起動時には現在のユーザの crontab が読み込まれ表示されます。

ツールバーはカスタマイズ可能ですが、デフォルトセットにすべての項目が含まれています。項目は:新規、削除、開く、保存、ステータス、編集です。ステータスアイコン以外のツールバーアイコンにはメニュー項目も用意されています。以下にそれぞれの役割を説明します:

新規タスク(コマンド-N) タスク編集/作成ダイアログで crontab に新規エントリー(タスク)を作成します。
削除 エントリー選択時にのみ操作可能になります。選択したエントリーを削除します。
開く(コマンド-O) ほかの crontab を開きます。ほかのユーザの crontab を開くには認証が必要です。システムの crontab は認証なしで開く事ができます(保存はできません)。
保存(コマンド-S) 現在の crontab を保存します。保存した crontab はただちにシステムスケジューラーに反映されます。
ステータス(現在の crontab) 誰の crontab が開かれているのかを表示します。システムの crontab の場合は“system”と表示されます。
編集 選択したタスクを‘タスクを編集’ダイアログで開きます。
今すぐ実行 選択したタスクを実行します。

ツールバーの下には、開いている crontab に記述されているタスクのリストがあります。crontab の欄はダブルクリックすれば編集することができます。crontab エントリー/タスクの各欄の詳細については crontab の書式 のセクションをご覧ください。各行の先頭のチェックボックスは、タスクの実行/停止を切り替えます。

タスク関連のコマンドはコンテクストメニューからも選択できます。タスクを選択し ctrl+クリックまたは右クリックするとメニューが表示されます。

タスクのコメント

バージョン 2.0 より、タスクリストの下にタスクのコメント欄が追加されました。コメント欄とタスクリストとの間の区切り線は、ドラッグ操作により上下に動かせます。タスクをクリックするとその詳細(あらかじめユーザにより入力されたもの)がコメント欄に表示されます。テキストを編集すると、変更内容はタスクと共に保存されます。

環境変数ウインドウ

cron によって実行スケジュールを組まれたタスクは、あなたがカスタマイズした .chrsc や .login スクリプトを読まずに、特別な環境で実行されます(もしあなたが UNIX に明るい人ではなく、何の話やらさっぱりわからなくても、気にしないでください)。cron から実行するスクリプトに MAIL などの環境変数を設定したい場合には、crontab に直接環境変数を書き込む必要があります。“編集/環境変数”メニューを選択、またはコマンド-E キーを押し、環境変数ウインドウを開いてください。

環境変数ウインドウはメインウインドウに似ていて、専用のツールバーには 2 つのボタンがあります:

新規(コマンド-N) 新規環境変数エントリーを作成します。
削除 エントリー選択時にのみ操作可能になります。選択したエントリーを削除します。

このツールバーもいちおうカスタマイズできます。ソフトウェアの操作性の一貫性という点を考えると、それに逆らってカスタマイズできないように作ることはできませんでした。さて、中学の数学の教科書みたいな話ですが、2 つのボタンの並べ方はいったい何通りあるのでしょう。それを調べるのは、ユーザの皆様にお任せします。

ほかのユーザの crontab を開く

“ファイル”メニューから“ユーザの crontab を開く”(コマンド-O)を選択すると、ほかのユーザの crontab を編集することができます。ただしこれには管理者としての認証が必要で(あなたのユーザ名または“system”以外のユーザ名を入力した場合)、パスワードの入力を要求されます。

ユーザの crontab 以外に、システムタスクのスケジューリングのために、システムの crontab も用意されています。これは root の crontab ではありませんので注意してください。システムの crontab を開くには、“ファイル”メニューから“システムの crontab を開く”を選択するか、またはほかのユーザの crontab を開く手順で、ユーザ名を“system”と入力します。システムの crontab を開くのに認証は必要ありませんが、変更内容を保存するには管理者の権限が必要です(将来的には、表示の際に認証を要求するか否かを設定できるようにするつもりです)。

ドラッグ&ドロップ/プログラムを挿入

CronniX はドラッグ&ドロップに対応しており、例えば crontab に追加したい AppleScript がいくつかある場合などに便利でしょう。Finder でスクリプトファイルを掴み、crontab にドラッグするだけで OK です。

この場合、

ドラッグ&ドロップ操作はタスクの‘コマンド’欄にのみ影響します。新規タスクは、デフォルトタスクのスケジュールで‘コマンド’欄にファイルを追加した形で追加されます。

こうして crontab に追加されたファイルの前には自動的に“/usr/bin/open”が追加されます。これはコマンドラインから“アプリケーション”を実行するためのコマンドです。この場合のアプリケーションとは、通常 GUI 経由で(Finder 上でダブルクリックすることで)起動されるプログラムを指します。シェルスクリプトの前にはこのコマンドは必要ありませんが、そもそもシェルスクリプトをドラッグ&ドロップで追加するという場合は想定していません(この点も将来的には設定できるようにするつもりです)。

タスク編集ダイアログを開き、‘先頭に“/usr/bin/open”を追加する’チェックボックスのチェックを外せば、“/usr/bin/open”は追加されなくなります。

選択したテキストをドラッグ&ドロップすることもできます。行の上にドロップすると、コマンドにテキストが上書きされます。また空白部分にドロップすると、テキストをコマンドとして含む新規タスクが作成されます。

ファイルのドラッグ&ドロップに相当するメニューは“編集”メニューの“プログラムを挿入”(コマンド-I)です。標準のファイルダイアログを開き、そこからひとつまたは複数のファイル(コマンドまたはシフトキーを押しながら選択)を追加することができます。

“今すぐ実行”コマンド

午前 3 時に実行されるスクリプトの動作を確認するために夜更かししたくないーそんなあなたのために、コマンドを即座に実行する機能が用意されています。コマンドはシェル(tcsh)で実行され、結果はウインドウに出力されます。

この機能はテストには便利ですが、実行環境である tcsh は cron デーモンの実行環境とは異なるという点に注意してください。例えば、tcsh 環境では特に問題なく実行できても、cron デーモン では動作しない、という場合もあり得ます。逆に、cron の環境でコマンドが動作するのであれば、“今すぐ実行”コマンドの使用に際し何ら問題は生じないはずです。

ただし、これはあなたの crontab で実行されるタスクに限った話です。現時点では、‘今すぐ実行’コマンドではあなたが編集しているユーザのタスクを実行するために sudo を使うことはありません。ですから、もしシステムの crontab を開いているのなら、‘今すぐ実行’コマンドを使っても役に立たないでしょう。なぜならば、CronniX を‘root’で実行しない限り、例えばメンテナンス用スクリプトを実行する権限がないからです(技術的に正確を期すならば、スクリプトを実行することは可能ですが、スクリプトに記述されている内容は一般ユーザには許可されていないものなので、結果としてメンテナンススクリプトの内容を実行しようとしても失敗に終わるのです)。

この‘今すぐ実行’コマンドの改良については、私の予定表の中でも優先順位を高くしています。

crontab の読み込みと書き出し

バージョン 2.1 以降、crontab の読み込みおよび書き出し機能が追加されました。ファイルメニューに各メニュー項目があります。CronniX はファイルの保存と読み込みができます。crontab ファイルのデフォルトの拡張子は“crontab”になります。crontab を読み込むときには(もしあれば)変更内容を保存するかどうか確認しますので、“安全”です。

CronniX は今のところシングルドキュメントアプリケーションですので、現時点では“crontab”ファイルのハンドラーとしては登録されません。なぜなら、CronniX は複数の crontab ウインドウを開くことはできず、すでに開かれている crontab をファイルの内容で置き換えてしまうからです。CronniX をマルチドキュメントアプリケーションに作り替えるとすると、私が現在こなしきれないほどの仕事量が要求されそうです。

読み込み/書き出しした後も、編集中の crontab は元々の状況に保たれます。すなわち、ユーザ crontab やシステムの crontab などに関連づけられています。開く/保存したファイルそのものではなく、むしろ今まで編集していた crontab の新たな内容ということになるわけます。変更内容は再び crontab を保存(インストール)するまでは適用されません。

次に追加する機能として要望されるのはおそらく、ファイルからの crontab の追加、でしょう。いちおう予定に入っているものとみなしてください。


ホーム