《サーブバージョンを利用山実用的なバージョン管理》という本と 《実用主義プログラマーのためのビルド自動化》という本を読んでいる. サーブバージョンをまともに使おうとすれば本を一番(回)は必ず見なければならないと思っていたが, やっぱり見たら役に立った. ソブゾゾンの構造, CVSとの差などに対してよく分かった. CVS2SVNと言うプログラムもあると言う.(しどろもどろだね)

ヨトンガンに, 今日はおもしろいことを分かるようになった. ビルド自動化… 私のようなウェブプログラマーにはどんなに必要か分からないという気がしたりしたが, ヨトンガンに分かれば便利のようなのが生じた. すぐ毎晩 svnで自動に exportを行うようにしたのだ. このようなのをビルド自動化と言うようだと思った.

そんな予約作業には実力のないスクリプトが使われる. 私も実力のないスクリプトを作った. 内容は下のようだ.

ファイル名は svn_export.sh路した. 参照用で svn_export.shの内容も入れて置く. cronと係わる内容ではないから下のコマンドラインを理解する必要はない.

#!/bin/sh
svn export file:///home/mytory/svn-repos/myProject/trunk /var/www/myProject --force

予約作業登録すること

予約作業を登録するために登録ページをつけた. crontab -eがすぐクロンに予約作業を登録するための命令語だ. クロンの予約作業にも権限がある. もし管理者権限が必要な作業をクロンがしなければならなかったら sudo crontab -eと書いてくれなければならない. 今度作業は管理者権限が必要ない作業だから sudo なしにした. (/var/wwwが管理者権限が必要ないと? する方々いるかも知れない;; 所有権移転した.)

crontab -e

命令語を打てばどんなエディタを使うつもりなのと問ったりする. nanoをお勧めすると被せていた. それでそれを書いた. 使いやすかった.

そこに下のように書いてくれた.

0 5 * * * /home/mytory/svn_export.sh

上のように少なければ毎日 5時に home/mytory/svn_export.sh を行いなさいという話だ.

一番目 0は何人に行うかけるかを指定してくれるのだ. 0だと書けば 0分に行う. 5と行えば 5分に行う.混同してはいけないことは ‘5分ごとに’ 行うのではなく 5分に行うという点だ. (*を書けば毎分, すなわち 1分ごとに行うのがなる.)

二番目 5は 5時に行いなさいというんだ. やっぱり 5時間ごとに行いなさいというのではない. やっぱり *を書けば毎時間ごとに, すなわち 1時間ごとに行いなさいということになる.

三番目 *は毎日行いなさいという意味になる. もしここに 5を少なければ 5日に行いなさいという意味になる. 一月に一回行いたければここに数字を書く.

四番目 *は毎月行いなさいという意味になる. もしここに 1を少なければ 1月に行いなさいという意味になる. 1年に一回だけ行うのがないなら当然 *を書かなければならないつもりだ.

五番目 *は曜日に関する. 0‾6 うちの数字を入力する. 0は日曜日, 6は土曜日だ. 毎週水曜日に行いたければ 3だと少ない.

それで五つの数字あるいは星を組み合わせれば cronこのいつこの命令を行わなければならない出ることだ. 例をいくつ聞いて見よう.

  • 0 5 * * *: 毎日 5時 0分に実行.lt;/li>
  • 5 * * * * : 毎時 5分になる度に実行. すなわち, 一時間間隔で実行.
  • * * * * * : 1分に一回ずつ実行.
  • 0 5 1 * * : 毎月 1日夜明け 5時に実行.

それでは 5分に一回ずつあるいは 5時間に一回ずつ行いたければどんなに少なくなければならないか? 下のように少ない.

  • */5 * * * * : 5分に一回ずつ
  • 0 */5 * * * : 5時間に一回ずつ

もちろんあの後に行うスクリプト経路を書いてくれなければならないという点を忘れてはいけない.

最後に.

  • 0 5,11 * * * : 夜明け 5時と夜 11時.
  • 0 5,11 * * 0,3 : 毎週日曜日と水曜日夜明け 5時と夜 11時.

こんなに書けば良い.

終えて

自動化は良いのだ. 人間をつらい繰り返し労動で解放させて創造的な活動ができるように助けるから言葉だ.ちょうどI

参考

ウィキペディアのcron説明

- コメント機能はありません。コメントの代わりに[email protected]にメールを送ってください。