ページ更新: 2004-11-30 (火) (4920日前)

未整理…てか、調査中。たぶん文書を大幅に変更すると思う。

目次

[編集]

資料 #

/usr/share/doc/Cygwin/cron.README

[編集]

リリースノート #

Updated: cron-3.0.1-15 (2004-12-22)

  • Crontab now changes group membership of the crontab files to be ADMINISTRATORS, to allow access from any privileged process...

Updated: cron-3.0.1-14 (2004-12-14)

  • includes the helpful cron_diagnose.sh script
[編集]

環境 #

Windows XP Professional SP1, Cygwin 1.5.11-1

$ cygcheck -cd cygwin cron cygrunsrv
Cygwin Package Information
Package              Version
cron                 3.0.1-13
cygrunsrv            1.0-1
cygwin               1.5.11-1
[編集]

設定 #

[編集]

サービスに登録 #

コマンドラインから入力するのも面倒なのと、記録を残したいので、 シェルスクリプトを作っておく。

(ついでにサービスからの削除(cygrunsrv --remove)とか 登録確認(cygrunsrv --query)も一緒にやると便利かも。)

cron-config.sh

#!/bin/sh -x
# File: cron-config.sh
# Purpose: Installs cron daemon as a Windows service

cygrunsrv --install cron \
          --path /usr/sbin/cron \
          --args "-D" \
          --type manual \
          --disp "Cygwin cron" \
          --desc "cron daemon"

サービスに登録。テストのため、サービスの起動は手動(manual)で。

$ ./cron-config.sh
+ cygrunsrv --install cron --path /usr/sbin/cron --args -D --type manual --disp
Cygwin cron --desc cron daemon

サービスを起動

$ cygrunsrv -S cron

サービスの状態を確認

$ cygrunsrv -Q cron
Service cron exists
Type                : Own Process
Current State       : Running      ★実行中
Controls Accepted   : Accept Stop

ログファイルを確認

$ cat /var/log/cron.log
[3244] cron started

イベントログ(アプリケーション)を確認。cronが起動した事がわかる。
一覧表示(最新1件)

$ cscript "c:\windows\system32\eventquery.vbs" /l application /r 1
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.


------------------------------------------------------------------------------
ホスト 'HOSTNAME' の 'application' ログのイベントを一覧表示しています。
------------------------------------------------------------------------------
 Type          Event  Date Time                Source            ComputerName
 ------------- ------ ------------------------ ----------------- --------------
 情報          0      2004/11/26 23:26:36      cron              HOSTNAME

詳細表示(最新1件)

$ cscript "c:\windows\system32\eventquery.vbs" /l application /r 1 /fo list /v
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.


------------------------------------------------------------------------------
ホスト 'HOSTNAME' の 'application' ログのイベントを一覧表示しています。
------------------------------------------------------------------------------
Type:         情報
Event:        0
Date Time:    2004/11/26 23:26:36
Source:       cron
ComputerName: HOSTNAME
Category:     なし
User:         NT AUTHORITY\SYSTEM
Description:  cron : PID 1356 : `cron' service started
[編集]

エントリの追加 #

crontabを追加。

$ crontab -e
no crontab for username - using an empty one
crontab: installing new crontab
(ここでvimが起動するので、エントリを追加。ここでは「毎分1回、/bin/dateの実行結果を/tmp/date.logに追加」するエントリを入れた)

crontabの確認

$ crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.1780 installed on Fri Nov 26 22:44:22 2004)
# (Cron version -- $Id: crontab.c,v 1.7 2003/04/15 15:13:41 corinna Exp $)
* * * * * /bin/date.exe >> /tmp/date.log

しばらく待ってから、イベントログを確認。cronの実行結果が記録されたことがわかる。

$ cscript "c:\windows\system32\eventquery.vbs" /l application /r 2
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.


------------------------------------------------------------------------------
ホスト 'HOSTNAME' の 'application' ログのイベントを一覧表示しています。
------------------------------------------------------------------------------
 Type          Event  Date Time                Source            ComputerName
 ------------- ------ ------------------------ ----------------- --------------
 情報          0      2004/11/26 23:27:00      /USR/SBIN/CRON    HOSTNAME
 情報          0      2004/11/26 23:26:36      cron              HOSTNAME

$ cscript "c:\windows\system32\eventquery.vbs" /l application /r 1 /fo list /v
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.


------------------------------------------------------------------------------
ホスト 'HOSTNAME' の 'application' ログのイベントを一覧表示しています。
------------------------------------------------------------------------------
Type:         情報
Event:        0
Date Time:    2004/11/26 23:27:00
Source:       /USR/SBIN/CRON
ComputerName: HOSTNAME
Category:     なし
User:         NT AUTHORITY\SYSTEM
Description:  /USR/SBIN/CRON : PID 3264 : (username) CMD (/bin/date.exe >> /tmp/d
ate.log)

実行結果 (/tmp/date.log への日時出力)を確認する。

$ ls /tmp
.X11-unix/  .ki2-unix/  XWin.log  date.log  ed.003464

$ cat /tmp/date.log
Fri Nov 26 23:27:00 JST 2004
Fri Nov 26 23:28:00 JST 2004
Fri Nov 26 23:29:00 JST 2004
[編集]

#

cronのパーミッション

$ \ls -al /usr/sbin/cron.exe
-rwxr-x---+   1 username  Users       25088 Oct 20 21:07 /usr/sbin/cron.exe
$ getfacl /usr/sbin/cron.exe
# file: /usr/sbin/cron.exe
# owner: username
# group: Users
user::rwx
group::r-x
group:SYSTEM:rwx
group:Administrators:rwx
mask:rwx
other:---

テストに使ったdateのパーミッション。以前に chmod a+rx /usr/bin /usr/bin/* を実行した…と思う。(/usr/share/doc/Cygwin/postgresql-7.4.5.REAMDEのIssues:より。)

$ \ls -al /usr/bin/date.exe
-rwxr-xr-x+   1 username  Users       53248 Jul 24  2003 /usr/bin/date.exe

$ getfacl /usr/bin/date.exe
# file: /usr/bin/date.exe
# owner: username
# group: Users
user::rwx
group::r-x
group:SYSTEM:rwx
group:Administrators:rwx
mask:rwx
other:r-x

試しに、パーミッションを変更してみたが、問題なく動作するみたい。

$ cd /usr/bin

$ cp date.exe crontestdate.exe

$ chmod 700 crontestdate.exe

$ ls -l crontestdate.exe
-rwx------    1 username  なし        53248 Nov 27 09:52 crontestdate.exe

$ crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.1112 installed on Sat Nov 27 09:53:59 2004)
# (Cron version -- $Id: crontab.c,v 1.7 2003/04/15 15:13:41 corinna Exp $)
* * * * * /usr/bin/crontestdate >> /tmp/date.log
$ cscript "c:\windows\system32\eventquery.vbs" /l application /r 1
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.


------------------------------------------------------------------------------
ホスト 'HOSTNAME' の 'application' ログのイベントを一覧表示しています。
------------------------------------------------------------------------------
 Type          Event  Date Time                Source            ComputerName
 ------------- ------ ------------------------ ----------------- --------------
 情報          0      2004/11/27 9:54:18       cron              HOSTNAME
 情報          0      2004/11/27 9:54:01       crontab           HOSTNAME


$ cscript "c:\windows\system32\eventquery.vbs" /l application /r 1 /fo list /v
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.


------------------------------------------------------------------------------
ホスト 'HOSTNAME' の 'application' ログのイベントを一覧表示しています。
------------------------------------------------------------------------------
Type:         情報
Event:        0
Date Time:    2004/11/27 9:55:00
Source:       /USR/SBIN/CRON
ComputerName: HOSTNAME
Category:     なし
User:         NT AUTHORITY\SYSTEM
Description:  /USR/SBIN/CRON : PID 3320 : (username) CMD (/usr/bin/crontestdate >
> /tmp/date.log)

$ cat /tmp/date.log
Sat Nov 27 09:55:01 JST 2004