トップ «前の日記(2008-08-10) 最新 次の日記(2008-08-14)» 編集

2008-08-11 [長年日記]

_ periodic_forwarder を書いた

cron シリーズ、何個目だ?

以前から cron の管理が面倒くさいことは書いているのですが、periodic, run-parts を利用することで厳密な時間設定の必要ないスクリプトの管理は比較的楽になりました。しかし、すべてのスクリプトがシステムワイドな cron ディレクトリにあると都合の悪い場合もあります。

そこでこんなものを書いてみました。

/lang/ruby/misc/periodic_forwarder CodeRepos::Share

どういうものかと言うと、

/etc/periodic/
|-- daily/
|   `-- periodic_forwarder*  ->  periodic /BASE_DIR/foo/FILLING_PATH/daily/
|-- monthly/
|   `-- periodic_forwarder*  ->  periodic /BASE_DIR/foo/FILLING_PATH/monthly/
`-- weekly/
    `-- periodic_forwarder*  ->  periodic /BASE_DIR/foo/FILLING_PATH/weekly/

こんな感じで、システムワイドな cron ディレクトリにこのスクリプトを置いておく(実際には link で ok)と、任意のディレクトリにこれを forward して、対応する period のスクリプト群を periodic, run-parts によって実行してくれるというものです。

※ 上の例は *BSD フレーバーなシステムの話ですが、Linux の /etc/cron.*/ 方式にも対応しています。

どういう場合に便利かというと、例えば

/var/www/HOST1/
/var/www/HOST2/
/var/www/HOST3/
/var/www/HOST4/

みたいに virtual host が設定されているとして、これらの HOST ごとに異なる仕事を定期的に実行させたいときなどに威力を発揮します。

/var/www/HOST1/cron/
`-- daily/
/var/www/HOST2/cron/
`-- weekly/
/var/www/HOST3/cron/
`-- daily/
/var/www/HOST4/cron/
`-- monthly/

こんな感じで定期実行するスクリプトを置くディレクトリを用意したら、

BASE_DIR     = /var/www
FILLING_PATH = cron

となるように設定してこのスクリプトをセットしておきます。

これで、ある HOST のための cron ジョブはちゃんとその HOST 用のリポジトリの中に収めておくことができます。

設定をスクリプトと分離する処理はちゃんと書いてない*1ので、ちょっと中身を書き換えてもらわないといけないですけど。すいません。一応起動時のオプションで設定を与えることはできるようにしてあるので、お試しで動かすことはできると思います。

とりあえず自分はこれで目的が達成できそうなので、今は結構ホクホクしています。


しかしこういう、

  • オプションを指定できる
  • ディレクトリを自前でなめる

ものをシステム管理的によく書くのですが、どうも自分はこの二つが同時に入っているコードのテストを書くのが苦手です。Rake とか使ってコードを置くディレクトリからテスト用のコードを生成するとかすればいいんだろうけど、面倒くさくなってベタで書いちゃうからテストを公開できなくなっちゃうんですよねぇ。うーん。まだ全然へたくそだ。

Tags: Cron Ruby

*1 いや実際には書いたんだけど、shell スクリプトと設定を共有するという特殊な方法を考えているので現在リポジトリにはその部分は上げてません。

本日のツッコミ(全2件) [ツッコミを入れる]
_ 高野光弘の32nd Diaryについて (2008-08-22 03:19)

takano32,TAKANO Mitsuhiroこと高野光弘(26歳、日立製作所エンタープライズサーバ事業部、日本UNIXユーザ会、日本Rubyの会)が、自身の『32nd diary』で公然と日立の機密を漏示し、障害者差別発言、さらに殺人予告までしています。<br><br>2007-08-22 14:24:35 ついに職場で人が倒れた。担架で運ばれていった。みな、ほんとうに死んだ魚を見ているようだった。管理者は苦笑している。<br>2007-10-26 09:18:30 たまに社内のファイルサーバが重くなりすぎる。社内Winnyネットワークでも作りゃいいんだよ!!<br>2007-11-13 09:45:20 そういや、配属元の上司はほんとにバカでISO9001で不要な文書をポリシー化しているだけなのに、それをISO9001のせいにしていた。しかも、ISMSとか話題にしたら「なにそれ?うちの会社は情報漏えい気をつけてるから大丈夫」だってさ。死んだほうがいいよ。ほんと。<br>2007-12-06 06:57:37 起きている。今日の目覚めは最低だ。いつ会社にエンジニアとして殺されるのか、そして、いつその波によって殺されるということがありうるのか。他人が聞いたら信じられないような話だろうがボクは恐怖している。<br>2007-12-14 17:29:51 社内システムが無駄に Ajax するようになった。作れない Permalink があることに気づけよ!<br>2007-12-19 16:40:32 この会社の拡販の部署はクソ。身をもって知った。客層広げることをまったく考えてないんだな。<br>2007-12-28 09:26:38 社内システムクソうんこ。 Ajax とか生半可にかじりはじめて、 Query を Cookie で渡すような仕組みになっている。検索条件を指定済みのブックマークとか作れねえじゃんかよ。うんこ改悪すんな。うんこ。<br>2008-01-11 07:45:05 社内でPathtraq使いたいが、真面目に情報漏洩の可能性があるので困る。とりあえず、思いとどまっておこう。<br>2008-01-22 06:29:23 昨日の課長は「デモ環境作成にあたり、ついでにバグ出しもできる」という考えにもあきれたが、机をバシバシ叩きながら話すという威圧的な行動に閉口だったなぁ・・・合理的かつ理論的に会話する人間が少ない。<br>2008-01-28 13:45:00 内部で rlog がこけてる、とか思ったら、 author が数字なんですけど・・・これじゃ名前として認識されないだろ・・・この会社バカだなぁ・・・ほんとに。<br>2008-01-30 23:56:19 今日の仕事は非常識な言動の上司に腹が立った。「自分で考えないならそこらへんのお姉ちゃん雇った方がいいじゃん」とかいうわけよ。なんだこいつ、と、放置決め込んだんだが、オレに分かんないことを質問してくるわけよ。なんなの、こいつは。こいつの代わりにお姉ちゃん雇いたいわ。マジで。<br>2008-01-31 08:58:22 ちなみに、朝言ってたクソは異動になる。ブラフばっかでむかついてたんで清々する。しかし、ダメなやつの巣窟だなぁ・・・ほんとに進路を間違ったわ・・・<br>2008-02-18 12:28:46 今の会社うんこすぎる。社会人として以前に人としてブラフはきまくり&いうこと聞かないやつたたいたら俺が社会人としてどうなのよ?と疑われた。なんつーヒエラルキー重視の北朝鮮。ほかの企業経験してないだろ?<br>2008-02-19 19:15:02 ってか、課長居眠りこきすぎだっつーの・・・・なのこのムカムカは。<br>2008-05-26 20:00:58 自分のやりたいことを就業時間中にやると給料泥棒とかうんぬん言われた。技術泥棒のくせになに言ってんだよ。どんどん機会が奪われていく。胸糞が悪い。<br>2008-05-27 22:36:35 きゅうりょうどろぼうはきょうもよるおそくまでおしごとしてこれからかえるのでした。心バキバキ川田くん。<br>2008-05-28 04:23:33 三時間で目が覚めた。自分にとってはクビが飛ぶくらいなんでもねぇ、一言入れれば明日にでも雇ってくれるところは複数あるもんね、と思っていたが、心のそこがバキバキなんだめう。人事は恐ろしい。ちょっと寝なおす。<br>2008-05-28 08:20:01 社内から技術者以外に見られるとうざいと思って access deny にしていたが、開放した。一度、一騎打ちしようと思う。たぶん、そのひとりが変な考え持ってるので。←誹謗中傷ではない<br>2008-05-29 09:11:59 何度言ってもわかんねーようだなぁ。オレなんかが個人で発信する情報よりウィニー(笑)で漏洩する情報を先にどうにかするのがさきなんじゃないの?<br>2008-05-30 07:17:00 しっかし、会社はやり方にいらつく。誰からの制裁かわかんない。てめぇのメールアドレスでスプーフィングして、全社員にメール送るスクリプトでも組んでやろうか、という気分。まぁ、マジにやるつもりはないけど、あんまなめてるとやりかねませんよ、と。   2008-05-31 22:33:30 んで、キチガイがいる *.tokyo.ocn.ne.jp を解禁したいのだが、いつぐらいにしたらいいのか迷う。あのキチガイはもう他のところにポインタ向いたかね?<br>2008-6-14 予告 心バキバキ川田くんを殺します。<br>2008-6-15 日本の警察をみた。いつも行動力がないと言われている日本の警察ですが、今日は変な行動力をみた。 理不尽で半端な行動力なので、もう少しガイドラインを固めないとダメだと思った(現場の人は悪くないので、上がきちんとしろ、という意味)。 予告.in 予告.out 事情を話し、くだんの書き込み元IPアドレスなどを回答した。<br><br>理不尽なのは、「殺します」、「死んだほうがいいよ」、「クソ」、「うんこ」、「バカ」、「キチガイ」という発言の方なのではないでしょうか?<br><br>高野光弘君の発言をどうお考えでしょうか?

_ takano32 (2008-08-22 07:05)

うちの宮本がご迷惑をおかけしてすみません。