主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

cygwin で cron を動かすには

最終更新日 2012-05-16 03:19:53 (1年以上前の記事です)

bash スクリプトを Windows で定期的に走らせたかったので、 Cygwin 上で cron を使ったジョブスケジューリングをセットアップしてみた。
環境は以下の通り。

  • Windows 7 Ultimate
  • Cygwin-2.774

必要なものをインストール

まずは、 cron と cygrunsrv パッケージを cygwin の setup.exe からインストールします。
cygrunsrv は cygwin 上で走るデーモンを Windows のサービスとして登録するツールです。
cygwin 上でこのコマンドを実行して cron を Windows のサービスとして登録し、 cygwin が起動していなくても cron が動作しているようにします。

cron daemon を Windows サービスとして登録

作業はいたって簡単ですが、 cygrunsrv を正常に動作させるには管理者権限が必要ですので、 cygwin コンソールを管理者として起動します。
管理者として起動するには、 cygwin コンソールアイコンを右クリックして「管理者として実行 | Run as administrator」を選びます。
コンソールを起動したら、後は cron-config を実行するだけ。

$ cron-config
Do you want to install the cron daemon as a service? (yes/no) yes
Enter the value of CYGWIN for the daemon: [ ](ブランクのまま)

You must decide under what account the cron daemon will run.
If you are the only user on this machine, the daemon can run as yourself.
   This gives access to all network drives but only allows you as user.
To run multiple users, cron must change user context without knowing
  the passwords. There are three methods to do that, as explained in
  http://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-nopasswd1
If all the cron users have executed "passwd -R" (see man passwd),
  which provides access to network drives, or if you are using the
  cyglsa package, then cron should run under the local system account.
Otherwise you need to have or to create a privileged account.
  This script will help you do so.
Do you want the cron daemon to run as yourself? (yes/no) yes

Please enter the password for user 'ma':(パスワードを入力)
Reenter:(パスワードを入力)
Running cron_diagnose ...
WARNING: You do not currently have a crontab file.

... no problem found.

INFO: A cron daemon is already running.

In case of problem, examine the log file for cron,
/var/log/cron.log, and the Windows event log (using /usr/bin/cronevents)
for information about the problem cron is having.

Examine also any cron.log file in the HOME directory
(or the file specified in MAILTO) and cron related files in /tmp.

If you cannot fix the problem, then report it to cygwin@cygwin.com.
Please run the script /usr/bin/cronbug and ATTACH its output
(the file cronbug.txt) to your e-mail.

WARNING: PATH may be set differently under cron than in interactive shells.
         Names such as "find" and "date" may refer to Windows programs.

net コマンドでサービスを実行してみます。

$ net start cron
The Cron daemon service is starting.
The Cron daemon service could not be started.

The service did not report an error.

More help is available by typing NET HELPMSG 3534.
最終更新日 2012-05-16 03:19:53

コメント このエントリーをはてなブックマークに追加

フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank2, rank3, rank7, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google