私はcronジョブに慣れようとしていますが、基本的な考え方(スケジューリング、構文など)は理解できたと思いますが、ターミナルを備えたMacでは正しく理解できないようです。 Crontab?スクリプトへのパスをどのように参照する必要がありますか?
私がやろうとしているのは、リモートマシン(http:// ..。)でphpスクリプトをヒットすることです-それは可能ですか?
私はcronジョブに慣れようとしていますが、基本的な考え方(スケジューリング、構文など)は理解できたと思いますが、ターミナルを備えたMacでは正しく理解できないようです。 Crontab?スクリプトへのパスをどのように参照する必要がありますか?
私がやろうとしているのは、リモートマシン(http:// ..。)でphpスクリプトをヒットすることです-それは可能ですか?
入力crontab -e
して、cron テーブルを編集crontab -l
し、現在の内容を一覧表示します。man 1 crontab
そのコマンドman 5 crontab
の詳細と、cron テーブル ファイル形式の詳細については、入力してください。
たとえば、毎日 10:00a に stackoverflow ページをダウンロードするには、 を実行しcrontab -e
、この行を入力してから保存/終了します。出力は、ホーム ディレクトリのファイルに書き込まれます。
0 10 * * * /usr/bin/curl -s http://stackoverflow.com > ~/stackoverflow.html
(cron の代わりに) launchd を使い始めるには、まず空の.plist
ファイルを作成する必要があります。たとえばlocal.mytask.plist
、どこかに配置します。~/Library/LaunchAgents
おそらく良い場所です。それをテキストエディターで開き、以下のコードをコピーします
<?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>KeepAlive</key>
<false/>
<key>Label</key>
<string>local.mytask</string>
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/wget</string>
<string>http://someserver/somepage.php</string>
</array>
<key>StartInterval</key>
<integer>300</integer>
<key>RunAtLoad</key>
<true />
<key>StandardErrorPath</key>
<string>/dev/null</string>
<key>StandardOutPath</key>
<string>/dev/null</string>
</dict>
</plist>
次に、コマンド ラインからファイルを「アクティブ化」します。
sudo launchctl load /Users/my_username/Library/LaunchAgents/local.mytask.plist
~/.launchd.conf
自動的に読み込まれるようにするには、同じ行(マイナスsudo launch
)でファイルを作成します
load /Users/my_username/Library/LaunchAgents/local.mytask.plist
上記の手順は、www.davidlanier.comからコピーされ、参照用にここに再掲載されています。
万一、Snow Leopard で cron と戦っている他の誰かがこれに出くわす機会があれば、私はこの古いスレッドを掘り起こします。
はい、launchd は cron を置き換えることになっていますが、実際には、cron ができる特定のことを実行できません。
Cron はうまく統合されていません。メッセージを送信すると、もちろん Apple Mail が何も知らない /var/mail/user_name に行き着きます。
crontab -e は、「一時ファイルをその場で編集する必要があります」と言ってスローします。どうやらvimはviと互換性がありません。その後、crontab "< /tmp/crontab.whatever" を実行できます (/tmp を調べて、実際に使用されている名前を確認します)。正しい場所に配置され、タイプミスがなければ動作します。
はい、これをすべて整理するのに時間がかかりました:(
launchdは強力ですが、plistを自分で作成する必要はありません。Lingonを入手してください。これは、システムの起動タスクを作成および管理するための、オープンソースで非常によく設計されたGUIです。
Cronは、10.4以降launchdに置き換えられました。ある時点でタスクをLinux/Unixシステムに移植する予定がない限り、おそらくこれを使用してタスクを作成する必要があります。
とにかくcronを使用することにした場合は、crontab -e
またはを入力してみてくださいsudo crontab -e
。これらは異なるcrontabファイルを提供します。前者は現在実行しているユーザー用で、後者はrootユーザー用です。
URLを「ヒット」するには、さまざまな方法があります。「ヒット」するために使用しているローカルスクリプトに応じて、言語の組み込みメソッド/クラスの一部を使用できます。たとえば、Rubyスクリプトはnet / httpを使用しますが、bashスクリプトを作成しているだけの場合は、curlも試すことができます。詳細を確認するために実行しますman curl
が、基本的なコマンドはcurl http://google.com
。
cron を使用する必要がなくなりました。他の人がすでに述べているように、launchd に置き換えられており、launchd が Mac OS X の将来になることは明らかです。
MacTech Magazine は最近、launchd に関する一連の記事を掲載しており、それらを読むことを強くお勧めします。私は確かに多くのことを学んだことを知っています。
2009 年 9 月 (第 25 巻、第 9 号) 25.09 MacEnterprise: ランチ用に launchd
2009 年 10 月 (第 25 巻、第 10 号) Snow Leopard、Launchd、Lunch さらに多くの Launchd レシピと Snow Leopard の変更点
MacTech には他にも記事がありましたので、それらのサイトを検索することをお勧めします。