トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
Cygwin
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ cron


  
    http://homepage1.nifty.com/cra/linux/cron.html

    cron の設定
    cygwin で cron を使う
    
  DESC
    cron とは、ジョブ(スクリプト)を自動実行するためのデーモンプロセスです      
    crontab コマンドはUnix系OSにおいて
    コマンドの定時実行のスケジュール管理をしたりする


    標準入力からコマンド列を読み取り crontab というファイルに保存

      cron という名称はギリシア語のクロノス (χρ?νο?)に由来

      一般にcrontabコマンドで編集されたスケジュール内容は、
      crond デーモンにより実行される。crondはバックグラウンドで稼動し
      毎分ごとに実行すべきスケジュールがないか確認し、もし実行すべきジョブがあれば
      それを実行する。このジョブは「cron job」とも呼ばれる。
      自分で常駐 Thread を用意しておけばこのようなことも可能. 


___

■ WindowsService.に登録する


   // -D は cron.exe の Argument  
   cygrunsrv -I cron --path /usr/sbin/cron --args -D
   cygrunsrv -R cron
   cygrunsrv -Q cron


    # cronが動いているかテスト
    cygrunsrv --query cron

    # RET
    Service            : cron
    Current State      : Running        // 動いてる !
    Controls Accepted  : Stop
    Command            : /usr/sbin/cron -D

___

■ 下準備

1. Cygwin を Full-Intall する 2. サービス > cron を起動 ( 本体は D:\cygwin\bin\cygrunsrv.exe )
___

■ Job.を登録する

場所は /usr/sbin/cron.exe ファイルは /etc/crontab
___

■ 設定方法

# 編集するには crontab -e 編集ファイルには # comment です # 最後に改行をいれるといいかも # min hour day month week command # [*] WildCard SYNTAX Minute Hour Day Month Week Command DESC 時刻 と 処理 を登録する 各行はそれぞれ1タスクになる Minute : 0-59 hour : 0-23 day : 1-31 month : 1-12 (or names, see below) week : 0-7 (0 or 7 SUN 1 : MON 2 : TUE ... チェック用の Job としては # 1 分ごとに 日付を書き込む * * * * * /bin/date >>/tmp/foobar.txt # vi が嫌なら使いたい Editor を指定する export EDITOR=/usr/bin/emacs # 登録内容をチェック crontab -l # Job を消す crontab -r; # Log を見る cat /var/log/cron.log
___

■ 例

    # 指定 (10/1 3:00) に hoge.sh を実行
    0 3 1 10 * /usr/local/bin/hoge.sh

    # 毎日 2時
    0 2 * * * /usr/local/bin/hoge.sh

    # 月初めの5時
    0 5 1 * * /usr/local/sbin/hoge.sh

    # 2 時間ごと
    0 */2 * * * /usr/local/bin/hoge.sh


    # [*/N]  で N ごと ( Step値指定  )

    # [*] は wildcard

    # 1分ごと
    */1 * * * * /work/foo.sh

    # 15分ごと
    */15 * * * * /work/foo.sh

    # 毎分
    * * * * * /work/shellscript/kawase.sh

    # 毎晩 23:55
    55 23 * * *   /work/shellscript/cronjob.sh
    * * * * *   /work/shellscript/cronjob.sh




    # 1時間に1回 コピー
    0 * * * * cp -auR /cygdrive/c/usr/work/* /home/kaz/backup/


    # 毎日 2時に
    0 2 * * * /usr/local/bin/hoge.sh


___

■ 詳細な.Command.を登録するのは手間なのでxxx.sh.を呼び出す

  * * * * * /work/cronjob.sh
  # Shell Script をすきに記述
  # foo.sh
  
  date >> /work/foo.txt
  date >> /work/bar.txt
  /work/shellscript/foo.sh
___

■ 問題点

PATH がとおっていない ? BAD job.sh OK /work/shellscript/job.sh # こうした方がいいかも cygrunsrv -I cron -p /work/shellscript
___

■ 簡単なJobを登録してテスト

1 分おきに 時間をかきこむ Job # Edit する bash> crontab -e; # EDITOR が起動するので 入力して保存 # WARNING # 最後に [\n] を忘れずに * * * * * date >> /dust/crontest.txt # Install 成功 bash> crontab: installing new crontab
















NINJAIDX 3