auientの日常

ノンジャンルで書きたいことを書くブログ

WindowsでいうタスクスケジューラはMacでいうとAutomator+iCalですよ

タイトルで完結。なのだが、もう少し詳しく書いてみよう。

Windowsには時間を指定してプログラムを実行するタスクスケジューラという機能がある。unix/Linuxでいうとatd/cronの機能に相当するものだ。条件を指定して繰り返すことも可能で、バックアップや定期的なダウンロードなど、ちょっとした処理を自動化できる。面倒なことをバッチやvbsで書いて自動化するのは手頃で便利だ。

で、Macでこれ相当のことをやりたい場合にどうすればよいか? が分からなかったので調べてみた。結果は掲題の通りで、Automator+iCalを使うのが正解のもよう。ググっても情報が少なかったのでメモしてみる。

試験環境

方法 (1) iCalだけ使うパターン

  1. iCal.appを起動
  2. プログラムを実行したい日・時間にイベントを作成する
  3. イベントを編集(cmd+E)メニューを開く
  4. 「通知」のドロップダウンで「ファイルを開く」を選択
  5. その下に「iCal」と出てくる所をクリックし、実行したいファイル(アプリケーション)を選択する

以上。繰り返しとかはイベントの時間指定をいじるだけ。
これで毎朝7時にRadikoを起動してMacを目覚ましにできるね! Radiko、起動しただけじゃ再生してくれなくて目覚ましにはなりませんでした。しょんぼり@2013/4/5追記

方法 (2) Automatorを使うパターン

Radiko起動するだけじゃダメなんだよ!フォルダ開いてファイル移動したりしたいんだよ! という場合はこちら。

  1. Automator.appを起動
  2. 「書類の種類を選択してください:」のダイアログでiCalアラームを選択
  3. Automatorでやりたいことを書く。書き方はここら辺を参考に。
    1. http://support.apple.com/kb/HT2488?viewlocale=ja_JP
    2. http://pc.nikkeibp.co.jp/article/column/20130220/1080662/
    3. http://allabout.co.jp/gm/gc/80883/
  4. ワークフローを保存すると、iCalが開いてイベントが追加されるので、それ以降は(1)と同じ。

これで朝イチでサーバからファイルをダウンロードして壁紙に設定できます。やったね!

Automatorなんかかったるくて使ってられねえよ!という短気なエンジニアへ

シェルスクリプトを実行」というワイルドカードみたいなアクションがAutomatorにはあります。
rubyでもpythonでもperlでもbashでも好きなもので書いてAutomatorでラップすると吉です。