« 2008年12月 | メイン | 2009年2月 »

2009年1月 アーカイブ

2008年12月 |2009年1月| 2009年2月

2009年1月13日

sh: line 1: gs: command not found

MTのCAPTCHA認証の使用に合わせて、ImageMagicで使うらしい、gsをインストールしたのだけど、それ以来、Apacheのエラーログに「sh: line 1: gs: command not found」というのが出ていた。
gsのインストール先は、/usr/local/bin/gsだったのですが、どうやら、/usr/bin/gsを期待されていたらしいです。
なので、リンク作成。

sudo ln -s /usr/local/bin/gs /usr/bin/gs

2009年1月26日

FirewallをSSHで越えたいの

会社内から外のサーバにSSH接続をしたいのに、ファイアーウォールが邪魔でw こういう時には、OpenSSHのProxyCommandを利用するらしい。

ProxyCommand は,OpenSSH の ssh(1) コマンドが直接ネットワーク接続を開くのではなく,指定されたコマンドを起動して,その標準入出力をネットワークの入出力の代わりに用います.起動されたコマンドは何とかして本来の目的の ssh サーバへの接続を作り,そのサーバから送られてきたデータ列を標準出力を通じて ssh クライアントに渡します.逆に ssh クライアントからサーバへ送られるデータは,このコマンドの標準入力に書き込まれますので,標準入力を受け取ったコマンドはそれを ssh サーバへ送り出します.つまり,端的に言うとネットワークと標準入出力のブリッジをしてくれるコマンドをProxyCommandに指定すれば良いと言うことです.(OpenSSH クライアントの proxy -- 踏み台サーバを経由しての ssh)

このブリッジをしてくれるコマンドに、connectというのがあります。 ところが本家の方が消失してしまったので、龍谷大学のftpサーバから頂く(外部の SSH サーバに接続する方法のリンクを参照)ことにしました。

とりあえず、connect.cを手に入れるのに苦労したので、上手くできるかどうかは、また後ほど~。

続きを読む "FirewallをSSHで越えたいの" »

2009年1月27日

strftimeの年表記で%Gと%Yとで違いがある件

strftime()で日付をフォーマットする際に年を%Gにするか%Yにするかで結果が変わってくるころがあるんですね。

マニュアルによると、

%G - ISO 週番号 (%V を参照) に対応する 4 桁の年。 これは ISO 週番号が前年もしくは次年に属するかによって使用される年が 異なる事を除き %Y と同じフォーマットと値です。

これは、ISO 8601形式による週の番号によって年が決まるということで、

ISO 8601:1988 で規定された現在の年の週番号の 10 進数表現で、 01 から 53 までの範囲となります。1 は最初の週で、その週は現在の年に 最低 4 日はあります。週は月曜日から始まります (指定したタイムスタンプの週番号に対応する年を表すには、 %G あるいは %g をしてください)。

つまるところ、1月4日を含む週がその年の第1週。 例えば2008年末から2009年始のカレンダーを例にすると、

Mo Tu We Th Fr Sa Su
29 30 31 01 02 03 04 <--第1週
05 06 07 08 09 10 11 <--第2週

2008年12月29日から2009年扱いになります。 つまり%Gで年を表記すると、同じタイムスタンプからでも%Yとは異なる結果になるというわけです。

また、週のフォーマットの方も%U、%W、%Vで結果が異なります。

%U - 年間で何番目の週であるかを 10 進数で表現。 年間で最初の日曜を最初の週の最初の日として数えます。
%V - ISO 8601:1988 で規定された現在の年の週番号の 10 進数表現で、 01 から 53 までの範囲となります。1 は最初の週で、その週は現在の年に 最低 4 日はあります。週は月曜日から始まります (指定したタイムスタンプの週番号に対応する年を表すには、 %G あるいは %g をしてください)。
%W - 現在の年で何番目の週であるかを 10 進数で表現。 年間で最初の月曜を最初の週の最初の日として数えます。
年始何末の挙動
1230303600 --> 2008-12-27(Sat)
 %Y(%U:%W) --> 2008(51:51)
 %G(%V)    --> 2008(52)
1230390000 --> 2008-12-28(Sun)
 %Y(%U:%W) --> 2008(52:51)**********(1)
 %G(%V)    --> 2008(52)
1230476400 --> 2008-12-29(Mon)
 %Y(%U:%W) --> 2008(52:52)
 %G(%V)    --> 2009(01)**********(2)
1230562800 --> 2008-12-30(Tue)
 %Y(%U:%W) --> 2008(52:52)
 %G(%V)    --> 2009(01)
1230649200 --> 2008-12-31(Wed)
 %Y(%U:%W) --> 2008(52:52)
 %G(%V)    --> 2009(01)
1230735600 --> 2009-01-01(Thu)
 %Y(%U:%W) --> 2009(00:00)**********(3)
 %G(%V)    --> 2009(01)
1230822000 --> 2009-01-02(Fri)
 %Y(%U:%W) --> 2009(00:00)
 %G(%V)    --> 2009(01)
1230908400 --> 2009-01-03(Sat)
 %Y(%U:%W) --> 2009(00:00)
 %G(%V)    --> 2009(01)
1230994800 --> 2009-01-04(Sun)
 %Y(%U:%W) --> 2009(01:00)**********(1)
 %G(%V)    --> 2009(01)
1231081200 --> 2009-01-05(Mon)
 %Y(%U:%W) --> 2009(01:01)
 %G(%V)    --> 2009(02)
終了

(1)%Uは日曜始まり、%Wは月曜始まり
(2)ISO週番号に連動して年始まりが繰り上がる
(3)週番号のスタート値が%U・%Wでは00だが、%Vでは01

ちなみに2009年末から2010年始はどうなるかというと、

Mo Tu We Th Fr Sa Su
26 27 28 29 30 31 01 <--第53週
02 03 04 05 06 07 08 <--第1週

1262271600 --> 2010-01-01(Fri)
 %Y(%U:%W) --> 2010(00:00)
 %G(%V)    --> 2009(53)

2010年1月1日までが2009年になるなど、週の方も繰り下がります。

2009年1月28日

SSHのポート変更

OSXのsshdでポートを変更する
/etc/services の以下の部分、22番ポートから任意のポートに変更する。

ssh              22/udp     # SSH Remote Login Protocol
ssh              22/tcp     # SSH Remote Login Protocol

これだとクライアントのsshのポートも変わってしまうので、
/etc/ssh_config の以下のコメント(#)記号を外し、22番ポートに戻す。

#    Port 22

そろそろ忘れないように

喰霊-零- 2(限定版) 2009年1月30日発売予定。
黄泉さんの楽しい時間が始まります。

Amazoneでポチットなw
喰霊-零- 2(限定版) [DVD]

2008年12月 |2009年1月| 2009年2月

カテゴリー

PAMO Menu
イラスト 綾波レイ MIWO 独白 掲示板