Windowsで日々のバックアップを取るためにcygwinをインストールしました。バックアップは、cygwinのrsync+cronでNASに5分ごとに同期しようと思っています。
cygwinのインストール
下記、URLからsetup.exeをダウンロードして起動します。
Cygwin
必要なパッケージ
cygwinの下記のパッケージをインストールします。
cron openssh rsync vim
環境は、下記の通り
XP
$ uname -a CYGWIN_NT-5.1 1.5.24(0.156/4/2) 2007-01-31 10:57 i686 Cygwin
Vista
$ uname -a CYGWIN_NT-6.0 1.5.24(0.156/4/2) 2007-01-31 10:57 i686 Cygwin $
cronの設定
Vistaでは、cygrunsrvコマンドでサービスを登録するには”Cygwin bash shell”の起動時に”管理者として実行…”を選択して実行する必要があります。
/etc/passwdと/etc/groupがない場合には、下記で生成します。
$ mkpasswd -l > /etc/passwd $ mkgroup -l > /etc/group
サービスの登録
cygrunsrvコマンドでWindowsサービスとしてcronを登録します。
$ cygrunsrv.exe -I cron -d "Cygwin cron" -p /usr/sbin/cron.exe -a -D $ cygrunsrv.exe --query cron Service : cron Display name : Cygwin cron Current State : Stopped Command : /usr/sbin/cron.exe -D $
サービスの起動
cygrunコマンドで登録したサービスを起動します。
$ cygrunsrv.exe --start cron $ cygrunsrv.exe --query cron Service : cron Display name : Cygwin cron Current State : Running Controls Accepted : Stop Command : /usr/sbin/cron.exe -D $
テスト用のcronジョブを登録
下記のようにテスト用のcronジョブを登録します。
$ crontab -l # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.Yai3MdJruN installed on Wed Oct 24 22:29:34 2007) # (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $) * * * * * /usr/bin/date >> /tmp/date.log $
XPで試したところ下記のように正しく動きました。
$ tail -f /tmp/date.log Wed Oct 24 18:53:02 2007 Wed Oct 24 18:54:02 2007 Wed Oct 24 18:55:02 2007 Wed Oct 24 18:56:01 2007 Wed Oct 24 18:57:02 2007 Wed Oct 24 18:58:02 2007 Wed Oct 24 18:59:02 2007
しかし、Vistaでは、イベントビューアで確認すると下記のようなメッセージが表示され動きません。マシンをリブートしても状況は変わりませんでした。
イベントには次の情報が含まれています: /usr/sbin/cron: PID 8108: (CRON) error (can't switch user context)
なんでだろ…
今日は、これまで…
cron用ユーザを登録する方法がありました。試すのは、また今度…
http://tanixxx.vox.com/library/posts/tags/tech/
ううむ、下記情報ではパーミッション関係で、とてもややこしそう
http://sohda.net/cygwin/treebbs/treebbs.cgi?log=3377