Browse Month: January 2012

crontab で環境変数を使う方法

crontab にたくさんの同じようなバッチ処理を書く場合、環境変数を使うのが便利です。各バッチ処理で、同じ環境変数名でかつ値が違う環境変数を設定するためにどうすればよいのかなぁと調べたところ、crontabで環境変数を使う際に知っておきたいたった1つのこと – (゚∀゚)o彡 sasata299’s blog を見つけました。ここでは env を使っていますが、なぜか CentOS 5 系ではうまくいきませんでした。

いろいろと試行錯誤したところ、次のような感じで値が違う同じ環境変数を設定することができました。


MAILTO=root
RUBY=/usr/local/bin/ruby

ROOT_DIR=/home/naoya/app1
RAILS_ENV=production
0 0 * * * cd $ROOT_DIR; $RUBY script/runner

ROOT_DIR=/home/naoya/app2
RAILS_ENV=test
0 1 * * * cd $ROOT_DIR; $RUBY script/runner

こんな感じで設定すると、バッチはその上に書かれている環境変数の値となって実行することができます。

  1. 00:00: ROOT_DIR=/home/naoya/app1, RAILS_ENV=production
  2. 01:00: ROOT_DIR=/home/naoya/app2, RAILS_ENV=test

ちなみに Puppet で設定すると、上と同じ設定内容になります。
上の記述の方が、env を使うよりもすっきりとバッチ処理を記述できるので、いいと想っています。

sched_clock() overflow after 208.5 days in Linux Kernel

Linux kernel 2.6.28 以降に、約 208.5 日で再起動してしまうという問題が見つかったようです。
情報ソース:セキュリティメモ

RHEL5 系には該当しませんが、RHEL6 系に該当するので、注意が必要です。

問題があるカーネルのバージョンは、次のとおりです。

  • 2.6.28 〜 3.1.4

すでに Linux kernel 2.6.32.50 / 3.0.13 / 3.1.5 で修正されていますが、現時点で RHEL6 でセキュリティパッチが提供されていませんので、RHEL6 系のディストリビューションは注意が必要そうです。

なお、VMware や Xen などで仮想化マシン上の Linux は影響がない模様です。Xen Dom0 の場合は不明です。。。

Lion 10.7.2 で遭遇している不思議な現象

あけましておめでとうございます。

Lion 10.7.2(ハードウェアは、Macbook Air 13 Mid 2011)で、現在とても不思議な現象にはまっていて、とても困っているので現象だけをまとめておきます。
今のところ、具体的な原因と解決策が分かっていないので、もしご存じの方がいましたら教えてください。

  1. 認証のかかっている無線 LAN を利用するとして、その SSID に接続します(僕の場合は DoCoMo m-zone の無線 LAN を契約していますので、SSID は docomo です)
  2. 接続した IP などが切り替わると、正しく認証するまでは、すべての接続は https://wlan.m-zone.jp にリダイレクトされます
  3. ここで、認証するため、10 分以上の時間を要することがあったり、ひどいときにはまったく https://wlan.m-zone.jp に接続できなくなりますが、ここでブラウザから認証したとします
  4. そうすると、普通にインターネットを利用することができます
  5. 正しく認証したあと、まったく別のオープンな無線 LAN に切り替えると、https へのページにまったく接続できなくなりました…
  6. ※このとき、ローカルの VMware fusion の Linux からは問題なく https 接続できるため、Lion 側の問題だと推測しています

 

コマンドラインから、curl してみると、鍵交換する前で、ずーとブロックしたままかえってきません。

$ curl url https://gmail.com --verbose
* About to connect() to gmail.com port 443 (#0)
* Trying 74.125.235.119... connected
* Connected to gmail.com (74.125.235.119) port 443 (#0)
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
(ここでブロックする)

さらに Mail も IMAPs を使っているのですが、これもまったく接続できなくなります。Apple Mail の応答がなくなりひどいことになります。さらに Evernote も SSL 経由でデータを取得しているためか、起動しても応答がなくなります。当然ですが、どのブラウザからもどの https ページに接続できなくなります。

肝心の解決策ですが、今のところシャットダウンしてから再起動すると直りますが、再起動や無線 LAN のオフオンでは効果がありませんでした。

おそらく、この問題は 10.7.2 にアップデートしたくらいから発生しているような気がしています。
認証のある無線 LAN を使うとかなりの頻度で再現します。今日は、一回で再現しました。
認証のある無線 LAN の場合、そこで接続してしまうと、接続後はすべての http 通信などが認証用の https ページにリダイレクトされることになるため、そうなると何かがおかしくなるようです。。。

この問題を Apple へ報告したいのですが、症状をうまく伝えることができそうにないので困っています。

今のところ、この問題に遭遇しないようにするには、m-zone のような認証のある無線 LAN を利用しないってことなのですが、せっかく契約しているため使いたいです。

今年は、怒濤の年になりそうです。