さくらのVPSを使ってみる【6】cronの設定をしてみる

8月 26th, 2011 カテゴリー さくら VPS

さくらのVPSに、cronの設定をしてみます。
結構はまったので、作業した内容を全部メモしときます。

設定内容:
設定した時刻にファイルを時刻のファイル名でコピーします。


1)実行ファイルを作成します

cron-set.php
<?php
$date = date('Ymd-H'); //時刻取得
$evntid = array ('460','20101118'); //ディレクトリID設定
$DirRoot = '/var/www/data/'; //pathを指定
//各ディレクトリにファイルをコピーします
foreach($evntid as $k => $v){
$tmpData = $DirRoot. $v. '/'. $v. '.txt';
copy( $tmpData, $DirRoot. $v. '/'. $date. '_cp.txt');
}
echo 'copy OK';
?>
/var/www/data/ ※パーミッションは【777】
の直下にcron-set.phpのファイルをおいて

/var/www/data/460/ ※パーミッションは【777】
の直下に460.txtをおきます。

/var/www/data/20101118/ ※パーミッションは【777】
の直下にも20101118.txtをおきます。



2)crontabに設定します

一応phpのパスを調べます。
まずphpのパスを調べておきます
which php
/usr/bin/php

crontabを編集します
crontab は、cron を実行するための情報が書かれています。
sudo vi /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
23 * * * * root run-parts /etc/cron.hourly
24 3 * * * root run-parts /etc/cron.daily
44 3 * * 0 root run-parts /etc/cron.weekly
04 4 1 * * root run-parts /etc/cron.monthly
#以下の記述を追加します
40 14 * * 5 root /usr/bin/php /var/www/data/cron-set.php
金曜日の14時40分にcron-set.phpを実行するように指定しています。

* * * * *は
左から、
「分」 0~59
「時」0~23
「日」1~31
「月」1~12 or jan~dec
「曜日」0~7 [0,7は日曜日] or sun~sat
※日=0 月=1 火=2 水=3 木=4 金=5 土=6
になります。

実行ユーザーを「root」にし、
phpのパス「/usr/bin/php」を入力し、
「/var/www/data/cron-set.php」実行するコマンドのパスを入力しておしまいです。

ログを確認するには
sudo view /var/log/cron


設定した時刻になると、「460」「20101118」の直下にコピーファイルができました!!

以上です。


中々うまく動かなくて、php.iniのdate.timezoneの設定までしたりしてました。。。
あんまり関係なかったぽいですけど。。。



⇒ さくらのVPSを使ってみる【7】独自ドメインの設定をしてみる

Sponsored Links

コメント

コメントする

  1. Undenniably believe that which you said. Your favorite
    justification seemed to be on the net the easiest thing to be aware
    of. I say to you, I definitely get annoyed while people consider worries that they plaainly don’t know about.
    Youu managed to hit the nail upon the top and defined out the
    whole thing without having side-effects , people can take a signal.
    Will likely be bback to get more. Thanks

コメントする

Eメールアドレスは公開されません。