クロン?発売されましたか?iCal ??
もしそうなら、どのように?
クロン?発売されましたか?iCal ??
もしそうなら、どのように?
回答:
参考までに、3つのオプションはすべて機能します。ただし、iCalオプションには他のオプションよりも多くの制限があります。
(他の回答に記載されているように、cronを編集して起動するGUIがあります)
Cronは最も単純で有名であり、多くのチュートリアルが利用可能です。Coles Notesは、下から最後の行をcrontabに追加します(編集する/etc/crontab
かcrontab
、コマンドラインで使用します)。
MM HH DD MM WKD -- Minutes, Hour, Day, Month, Weekday (eg. Sun, Mon)
MM HH * * * USERNAME /PATH/TO/SCRIPT
00 3 * * * chealion /myscript.sh "Runs at 03:00 every day"
Mac OS Xでは、cron
実際に置き換えられてlaunchd
いますlaunchd
が、下位互換性cron
があり、引き続き使用できますcron
が、実際にはlaunchd
すべての作業を行っています。
使用したい場合は、launchd
ここでスーパーユーザーに関する他の質問もチェックしてください:(たとえば、rootdとしてlaunchdコマンドを実行するにはどうすればよいですか?)構成ファイル(plistファイル)を保存する場所について実行されるタイミングは、格納されているディレクトリとロード方法(たとえば、sudoを使用したかどうか)に依存します-cronと同様です。
サンプルの毎日のlaunchd plistの実行(ファイルとラベルが同じであること-ラベルのplistを引いたもの)を次に示します-このスクリプトは毎日深夜3時過ぎに実行されます。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.IDENTIFIER_HERE.SOMETHING</string>
<key>KeepAlive</key>
<false/>
<key>RunAtLoad</key>
<false/>
<key>UserName</key>
<string>USERNAME HERE</string>
<key>Program</key>
<string>/PATH/TO/SCRIPT</string>
<key>ProgramArguments</key>
<array>
<string>Argument_1</string>
<string>Argument_2</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>00</integer>
<key>Minute</key>
<integer>03</integer>
</dict>
</dict>
</plist>
また、コンピューターがスリープ状態またはオフになっているときにスケジュールされたタスクを起動した場合、コンピューターが再び使用可能になったときに(オンまたはスリープ解除したときに)実行されることに注意してください-何日であっても1回だけですされました。編集:マシンがオフになっていると、その間は起動イベントが失われる、(スクリプトは起動時に起動しない)、(スリープは起動時にスクリプトを起動する)と書かれたAppleのドキュメントを読んだばかりです
もう1つのオプションは、「at」を使用することです(「man at」でマニュアルページを確認してください)。スクリプトは、たとえば次のように自分自身を再スケジュールできます。
echo "sh $0 $@" | at `date +%H:%M` tomorrow
(10分ごとに実行するには「明日」ではなく「+ 10分」を使用します。スケジューリングを停止するには、「at -l」を実行してスケジュール済みジョブIDをリストし、「at -r id」を実行してジョブを削除します)
まず、対応するデーモン(atrun)を起動する必要があります(https://superuser.com/a/43680を参照)。
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
利点:迅速な修正、sudo / rootアクセスが不要、複雑なスケジュールパターンの実行が容易欠点:OS Xの標準のスケジューリング方法ではない(起動される)
launchd
OS Xの下に行く方法です。
crontab -e
、ファイルのターミナルベースのテキストエディターにドロップされ、保存時に個人のcrontabになります。
LaunchControlは、launchd / launchctl用のもう1つのGUIです。他の人が言及する代替手段は毎日スクリプトを完全に起動できますが、LaunchControlを使用すると、複雑なスケジュールを構成できます(「平日1回、週末は午後2時から8時まで」など)。また、実際にジョブを検証するツールは(AFAIK)のみです。ジョブが期待どおりに機能しない場合は、その理由が示されます。
好きなだけ試してみてください。
更新:Mac OS X App Storeでこれを行ういくつかのアプリをチェックアウトできます。
実行しているOSによっては、Lingonも利用できるようです。
plist XMLを生成するためのシンプルで無料のユーティリティを次に示します。
http://www.gieson.com/Library/projects/utilities/launcha/
このユーティリティを使用すると、プログラムをインストールする必要はありません。結果をLibrary / LaunchAgentsフォルダーに保存するだけです。
RunAtStart
は、それがfalseに設定されていることを確認してください(trueにしたくない場合)。Finderがフリーズし、起動時にデスクトップが読み込まれない理由を理解するのに1時間かかりました。無効にRunAtStart
しても、固定スケジュールは妨げられません。
私はいつもこれにLingonを使用していますが、開発中のようです。Crontooieを試すこともできますが、私は個人的に使用したことがありません。または、ターミナルでcrontabファイルを編集します。