crontabでAppleScriptを定期的に実行する
Macで定期的に処理を実行する方法は幾つかあって crontab と launchdがあるらしい launchd は XML で記述するらしくちょっと敷居が高い感じがするので、サクッとcrontabを使うことにする
crontab
crontab(クロンタブ、あるいはクローンタブ、クーロンタブとも)コマンドはUnix系OSにおいて、コマンドの定時実行のスケジュール管理を行うために用いられるコマンドである。標準入力からコマンド列を読み取り、crontabと呼ばれるファイルにそれを記録する。この記録を元に定時になると、その命令内容を読み取り、実行が行われる。cronという名称はギリシア語のクロノス (χρόνος)に由来するという説がある(Command Run ON の略という説も)。日本ではクーロンという読みが慣習的に広く用いられているが、海外では通常クロンまたはクローンと発音する
via crontab - Wikipedia
crontab コマンド
crontab -e crontabの設定ファイルをエディタで開く crontab testcron.txt テキストファイルを与えると設定ファイルを上書きする
crontab 設定の書き方
分 時 日 月 曜日の順でスペースをあけて指定する
* * * * * コマンド 1分ごと(毎分) 14 * * * * コマンド 14分になったら(毎時) * 13 * * * コマンド 13時になったら(毎日) * * 12 * * コマンド 12日になったら(毎月) * * * 11 * コマンド 11月になったら(毎年) * * * * 3 コマンド 水曜日になったら(毎週)
複数指定もできる
0,20,40 * * * * コマンド 0分,20分,40分,になったら 1-5 * * * * コマンド 1分,2分,3分,4分,5分になったら */10 * * * * コマンド 10分ごと
処理
やりたいのはapplescriptの実行なのでスクリプトのある場所に移動してosascript
というコマンドを使ってapplescriptを実行する
0 * * * * cd /Users/theUser/Desktop/ && osascript test.applescript
とすることでデスクトップにあるtest.applescriptを毎時間実行できる様になった
おまけ
>/dev/null 2>&1
をコマンドの後ろに付けるとmailを出力しないようにできる
0 * * * * cd /Users/theUser/Desktop/ && osascript tast.applescript >/dev/null 2>&1
参考ページ
- crontabの書き方 — server-memo.net
- crontabの書き方
- crontab -e は「絶対に」使ってはいけない - ろば電子が詰まっている
- crontabの設定をテキストファイルで行う方法
- crontabの設定メモ - ザリガニが見ていた...。
- 複数コマンドの指定方法と不要なmailをキャンセルする方法
大変参考になりました。ありがとうございます。