メイン

ブログ管理 アーカイブ

Page:  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  10  |  11  |  12 

2011年4月12日

ダイナミックDNSへのIP監視と登録用のスクリプトを定期的に走らせているのですが、OSX 10.6ではcronが使えなくなり、変わりにlaunchを使うようにななったそうです。

スクリプトは、家サーバのIPアドレス更新サンプルスクリプトを使用していました。
このスクリプトを、/usr/local/sbin/ddsn_ip/ddns_ip.plとして設置して実行権を出しておきます(それと、tmpディレクトリを作成しておきます)。

sudo perl /usr/local/sbin/ddsn_ip/ddns_ip.pl

こんな感じで実行するスクリプトです。 これをlaunchで一時間に一回走らせて、IPに変更があったら家サーバに告るわけです。

launchにddns_ip.plを走らせるための設定ファイルをXMLで書きます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
    <string>ddns.ip.set</string>
 
 <key>ProgramArguments</key>
    <array>
      <string>/usr/bin/perl</string>
      <string>/usr/local/sbin/ddsn_ip/ddns_ip.pl</string>
    </array>

  <key>StartInterval</key>
    <integer>3600</integer>
</dict>
</plist>

よくわからないけど、こんな感じ。

Labelで指定したddns.plがlaunch内で呼び出すときの呼び名になります。
ProgramArgumentsで呼び出すプログラムとその引数を指定します。
今回はperlを呼び出して、その引数にスクリプトのパス(/usr/local/sbin/ddsn_ip/ddns_ip.pl)を指定します。
StartInterval、3600秒ごとにスクリプトが実行されます。

このXMLを/System/Library/LaunchAgents/ddns_ip.plistとして設置します。 所有者をrootに変更しておきます。

sudo chown root:wheel ddns_ip.plist
-rw-r--r-- 1 root wheel ddns_ip.plist

最後に、launchedに登録して起動させます。

sudo launchctl load /System/Library/LaunchAgents/ddns_ip.plist
sudo launchctl start hddns.ip.set

loadの時はファイル名を、startの時は、ラベル名を指定します。

登録されているラベルの一覧を取得するには

sudo launchctl list

止めるには

sudo launchctl unload /System/Library/LaunchAgents/ddns_ip.plist

2010年5月 5日

要点だけのメモ

Bashbの環境設定を追加

export EXTRA_LIBS="-lresolv"

make時にiconv関連のエラーが以下のように出るので、PHP5.2.3にパッチをあてる

Undefined symbols:
  "_libiconv", referenced from:
      __php_iconv_strlen in iconv.o
      _php_iconv_string in iconv.o
      _php_iconv_string in iconv.o
      __php_iconv_strpos in iconv.o
      __php_iconv_appendl in iconv.o
      __php_iconv_appendl in iconv.o
      _zif_iconv_substr in iconv.o
      _zif_iconv_mime_encode in iconv.o
      _zif_iconv_mime_encode in iconv.o
      _zif_iconv_mime_encode in iconv.o
      _zif_iconv_mime_encode in iconv.o
      _zif_iconv_mime_encode in iconv.o
      _zif_iconv_mime_encode in iconv.o
      _php_iconv_stream_filter_append_bucket in iconv.o
      _php_iconv_stream_filter_append_bucket in iconv.o
     (maybe you meant: __libiconv_version)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [libs/libphp5.bundle] Error 1

PHP 5.3.0 on Mac OS 10.6 (Snow Leopard)を参考

diff -Naur php-5.3.0/ext/iconv/iconv.c php/ext/iconv/iconv.c
--- php-5.3.0/ext/iconv/iconv.c	2009-03-16 22:31:04.000000000 -0700
+++ php/ext/iconv/iconv.c	2009-07-15 14:40:09.000000000 -0700
@@ -51,9 +51,6 @@
 #include 
 #endif
 
-#ifdef HAVE_LIBICONV
-#undef iconv
-#endif
 
 #include "ext/standard/php_smart_str.h"
 #include "ext/standard/base64.h"
@@ -182,9 +179,6 @@
 }
 /* }}} */
 
-#ifdef HAVE_LIBICONV
-#define iconv libiconv
-#endif
 
 /* {{{ typedef enum php_iconv_enc_scheme_t */
 typedef enum _php_iconv_enc_scheme_t {

5.3.0用なので、そこはpacheの指示に従ってファイルを指定すればかかるハズ。

configure

./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-apxs2=/usr/sbin/apxs --with-ldap=/usr  --with-gd --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/local/lib --with-readline --with-openssl --with-kerberos --enable-cli --with-zlib-dir=/usr --enable-exif --enable-ftp --enable-mbstring --enable-mbregex --enable-sockets --with-iodbc=/usr --with-curl=/usr --with-config-file-path=/etc --sysconfdir=/private/etc --with-pgsql --with-xmlrpc --with-xsl=/usr --with-iconv-dir=/usr/bin

メモ書いて気づいた^^;
上書きしちゃったよorz
/usr/local/binに突っ込む予定だったのに。何のためにサーチパスの変更までしたんだか…。

./configure --with-pgsql --with-gd --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/local/lib --with-readline --with-openssl --with-kerberos --with-zlib --with-curl --enable-exif --with-iconv-dir=/usr/bin

10.6.4で上書きされたら、次回はこっちでインスコしてみよう。

2010年5月 1日

perlモジュールのCrypt::DSAがインストールされたハズなのに、mt-check.cgiでのチェックが通らない!

MTOS 5.01 の mt-check.cgi でチェックすると、インストールされているはずの Crypt::DSA がインストールされていないとなってしまう(まぁ、えぇんとちゃいますか~)によれば、MTのextlib/Math/以下のBigIntとのバージョン依存が起きているらしいです。

で、パスを無効にしてあげれば問題解決になるということなので、念のためリネームして様子を見ようかと思います。

ちなみに…

CPANでインストールされる
Crypt::DSAは、「Crypt-DSA-1.16」
Math::BigIntは、「Math-BigInt-1.89」

MTのextlibでインストールされている
BigInt.pmは、「$VERSION = '1.63';」

ということで、もしかしたらBigInt.pm 1.63に対応するバージョンのCrypt::DSAをインストールすることでも問題を回避できるかもですね。

2009年8月 3日

今更なのですが、<pre>タグを使うときに、横幅から不足したときにスクロールバーを表示するようにしてみた。

pre {	overflow: auto;
	*overflow: scroll;}

ところが、overflow: auto;でスクロールバーを表示すると、IEの場合に内容を隠してしまうという不都合がでてきてしまいます。
これを回避するのに、*overflow: scroll;とつなげると、IEのみに上書きできるみたいで、必ずスクロールバーは表示されてしましますが、内容を隠してしまうのは避けられました。

2009年7月31日

前回、DBD::Pgをインストールするも、MTのmt-check.cgiで何故かクリアできない。
どうやらMTとDBD::Pgのバージョンに問題関係があるらしい。
Movable Typeユーザー・マニュアル: 既知の問題 (制限事項)、3.xのドキュメントですが、この時点でDBD::Pg 1.4でのトラブルが記されている。

Movable Type 3.17 では、DBD::Pg 1.4 のデータベース・ドライバに不具合があるため、DBD::Pg 1.4 をお使いいただけません。

ちなみに、DBD::Pg 1.32以上が条件なのだが…。

ソースからインストールして確認してみた。

OK…DBD-Pg-1.32_1 ** DEVELOPER RELEASE **
OK…DBD-Pg-1.32_2 ** DEVELOPER RELEASE **
OK…DBD-Pg-1.32

1.4から2.5までのソースは見当たらない…

NG…DBD-Pg-2.5.0

NG…DBD-Pg-2.6.0

あきたので飛ばすw

NG…DBD-Pg-2.13.1_7 ** DEVELOPER RELEASE **
NG…DBD-Pg-2.13.1

NG…DBD-Pg-2.14.0
NG…DBD-Pg-2.14.1←現時点での最新版

つまるところ、2.x系は全滅っぽく、MTでDBD::Pgを使う場合、1.32しか選択肢がないってことになるみたい。
CPANでインストールする人は要注意ですね。

こういうの、インストールドキュメントに記載しておいて欲しいですが…。もしかして、うちだけの問題なのかなぁ。

続きを読む "Movable TypeとDBD::Pg" »

Page:  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  10  |  11  |  12 

カテゴリー

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