2011-10-24 Galaxy S mac OSX10.6 で EasyTetherを有効にする

2011-08-26 s3のbucket名のリネームできないのでコピーする
■ s3を画像サーバーとして使う場合の画像URLを独自ドメインでアクセスする

現在、S3を画像サーバーとしてつかっているのだけど
https://s3-ap-northeast-1.amazonaws.com/BUCKET_NAME/XXXX.jpg
のようなURLでamazonのURLがでてしまう。
これを
https://static.DOMAINNAME/XXXX.jpg
のようにアクセスできるように対応してみた。
DNS設定
※お名前.comを使用した場合の説明
static.DOMAINNAME CNAME static.DOMAINNAME.s3-ap-northeast-1.amazonaws.com
s3のbucket作成
https://console.aws.amazon.com/s3/home
s3管理画面より「static.DOMAINNAME」の名前でbucket名作成
その後、XXXX.jpgをこのbucket直下におくと、
https://static.DOMAINNAME/XXXX.jpg
でアクセスできるようになるはず。
以下のようなXMLがでたら、権限がたりていないので Properties - Permission から読み取り権限を与えてやる
<Error>
AccessDenied
<Message>Access Denied</Message>
<RequestId>112CE0ACD5346798</RequestId>
<HostId>
pfcBwjuoc5HCkQ3DJHrkcGqQ6O2sN5r9bQvPGetngKVYrik3oN6Z0IJmEBhNicJ/
</HostId>
</Error>
■ s3のbucket名のリネームできないらしいのでコピーする

どうもs3のbucket名はリネームできないらしい。
https://forums.aws.amazon.com/thread.jspa?threadID=73503
なので、s3で画像サーバーを運用していてURLを独自ドメインに変えたい場合は、
新たにbucketを作成して、元のbucketからファイルをコピーする必要がある。
このため
のあたりのソースを使って、bucketごとコピーしたり、copy_keyにprefixつけて
一部ディレクトリのみコピーしたりしてみた。
その際に、botoのソースでacl(アクセス権限)がコピーされない不具合?があるようで
https://github.com/boto/boto/commit/be6549a2539f763b2b89dc7b548594fad135a813
のパッチをあてると、コピーしたファイルの権限もコピーできるようになった。
※最新のソースだとこのパッチはあたってる?
ちなみにファイル数が少ない場合はAWS の GUI からcopy & pasteするのが一番早そうなんだけど
(PUT COPYを内部でやってくれているらしい。PUT COPYが一番早いようだ。参考URL)
途中でErrorになったりするので必要最低限のファイルのみコピーする方法を考えた方がよい場合もある。
2011-08-24 Ubuntu上でNagiosでグラフ化、リモートホスト監視設定
■ Ubuntu上でNagiosでグラフ化、リモートホスト監視設定

これは自分用のメモです。
監視する側のサーバーにはnagios3.Xが入っているものとする。
リモートホスト監視設定
クライアント側
・インストール apt-get install nagios-plugins nagios-nrpe-server nagios-nrpe-plugin ・メモリ監視がないためインスコ cd /usr/lib/nagios/plugins/wget http://www.sysadminsjourney.com/sites/sysadminsjourney.com/files/code/check_mem.pl.txt mv check_mem.pl.txt check_mem.pl chmod 755 check_mem.pl ./check_mem.pl -w 10 -c 5 -f -COK - 66.6% (419448 kB) free.|TOTAL=629976KB;;;; USED=210528KB;;;; FREE=419448KB;;;; CACHES=406196KB;;;; ・設定ファイル # vi /etc/nagios/nrpe_local.cfg ----- allowed_hosts=XXX.XXX.XXX.XXX,127.0.0.1 command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10 command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20 command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200 command[check_swap]=/usr/lib/nagios/plugins/check_swap -w 20 -c 10 command[check_mem]=/usr/lib/nagios/plugins/check_mem.pl -w 10 -c 5 -f -C ----- # /etc/init.d/nagios-nrpe-server restart # /usr/lib/nagios/plugins/check_nrpe -H localhost NRPE v2.12 注) 監視側のポート5666を空けておく
サーバー側 (ngios設定済みとする)
# apt-get install nagios-nrpe-plugin # /usr/lib/nagios/plugins/check_nrpe -H REMOTE.SERVER.IP NRPE v2.12 CHECK_NRPE: Error - Could not complete SSL handshake. がでた場合は、 /etc/nagios/nrpe_local.cfg で監視サーバーのIPが指定されているか確認
nagiosグラフ化
インストール
apt-get install perl rrdtool librrds-perl php5-gd git clone git://pnp4nagios.git.sourceforge.net/gitroot/pnp4nagios/pnp4nagios cd pnp4nagios ./configure make allmake install make install-webconf make install-config
nagios.cfg設定
まずは、nagiosからperfdata.plを呼び出せるように設定ファイルを編集する。
vi /usr/local/nagios/etc/nagios.cfg ----- ※ 以下のディレクティブを以下の通りにする。 process_performance_data=1 enable_environment_macros=1 service_perfdata_command=process-service-perfdata host_perfdata_command=process-host-perfdata -----
以下Basic認証のファイルは適宜作成しておく
vi /etc/apache2/conf.d/pnp4nagios.conf ----- AuthType Basic AuthUserFile /etc/nagios3/htpasswd.users ----- /etc/init.d/nagios3 restart /etc/init.d/apache2 restart
テスト確認
ページ表示の確認
http://[SERVER DOMAIN]/pnp4nagios/
細かい設定
mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php.org vi /usr/local/pnp4nagios/etc/process_perfdata.cfg ----- : LOG_LEVEL=2 : ----- vi /etc/nagios3/conf.d/hoge.cfg ----- host, service を参考URLをもとに修正する ----- /etc/init.d/nagios3 restart
2011-02-10 Django + nose + selenium in ubuntu で自動テスト環境を整える
■ Django + nose + selenium in ubuntu で自動テスト環境を整える

環境
Python2.6 + Django1.2 + Ubuntu10
など
使うもの
nose
Pythonのunittestをもっと簡単にできるように拡張したもの。プラグインなど簡単に作成する事ができ拡張性も高い
http://somethingaboutorange.com/mrl/projects/nose/1.0.0/
django-nose-selenium
djangoとnoseとseleniumでテストやるためのもの。documentに書かれていない罠が結構ある
https://github.com/weluse/django-nose-selenium
cherrypy
Pythonプログラミング言語を用いたオブジェクト指向のWebアプリケーションフレームワーク
Xvfb
仮想的な X を立ち上げることで、実際に X を起動しておかなくても X を使用した処理を行うことが出来るようにするためのライブラリ
http://en.wikipedia.org/wiki/Xvfb
環境構築
$ sudo pip install nose $ sudo pip install django-nose-selenium $ sudo pip install cherrypy 使うsettingsを指定しておく $ export DJANGO_SETTINGS_MODULE=shohu_settings $ export PYTHONPATH=/PROJECT_ROOT/:$PYTHONPATH Firefoxインスコ $ sudo apt-get install firefox Xvfbインスコ $ sudo apt-get install xvfb FirefoxをX上で動かすための設定 $ export DISPLAY=1.0 $ Xvfb :1 -screen 0 1024x768x24 > /dev/null & ※Firefox起動確認を参考URLを元にしておく
ここまででUbuntu Server上でFirefoxが起動できるようになっているはず。
wget http://selenium.googlecode.com/files/selenium-server-standalone-2.0b1.jar java -jar selenium-server-standalone-2.0b1.jar > /tmp/selenium.log 2>&1 &
ここまででDjango+nose+seleniumを使う環境は整ったはず。
ソースと実行
テストクラス
vi tests.py ----- # -*- coding: utf-8 -*- import unittest class TestSelenium(unittest.TestCase): selenium_test = True start_live_server = True def test_start(self): """Tests the start page.""" self.selenium.open("/") self.failUnless(self.selenium.is_text_present(u"ようこそテストサイトへ!")) -----
start_live_server = True にしていないと
を指定してもテスト実行時にサーバーがたちあがらないので必ず指定する事。
ただ--with-djangoliveserverはうまく動かなかったのでcherrypyの方で実行した。
実行
$ nosetests --with-selenium --with-cherrypyliveserver tests.py ok ---------------------------------------------------------------------- Ran 1 test in 9.140s OK Finished: SUCCESS
nosetestsを実行すると
1.テスト中にDjangoアプリケーションがサーバーとしてたちあがる 2.仮想X上でFirefoxが起動して"/"(ルート)にアクセスする 3.”ようこそテストサイトへ!”の文字が表示されているかチェックする
という事を行ってくれる。
以上でDjango+nose+seleniumで自動テスト環境が整った。
これにHudsonを使う事によって統合テストの自動化環境が整う。
参考URL
http://www.lovebug.jp/index.php?Web%A5%DA%A1%BC%A5%B8%A4%CE%A5%B9%A5%AF%A5%EA%A1%BC%A5%F3%A5%B7%A5%E7%A5%C3%A5%C8%A4%F2%BB%A3%A4%EB%CA%FD%CB%A1(Xvfb%20%2B%20Firefox%20%2B%20ImageMagick)
http://oshyn.com/_blog/Software_Development/post/Selenium-Test-Suite-Ubuntu/
■ ポートを使用しているプロセス調べる in ubuntu

!!! root で実行しないとプロセス名が表示されないので気をつける # netstat -A inet -npl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 3182/master tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 9434/apache2 : :
■ Hudson in ubuntu10

インスコ
wget -O - http://hudson-ci.org/debian/hudson-ci.org.key | sudo apt-key add - vi /etc/apt/sources.list ----- : : deb http://hudson-ci.org/debian binary/ ----- sudo apt-get update sudo apt-get install hudson → デーモン起動してくれる
動作確認
実行ユーザー変更
vi /etc/sysconfig/hudson ----- : HUDSON_USER=hudson : -----
時刻のタイムゾーンが日本時間にならない
javaで以下のように時刻を取得して時刻を表示すると
Calendar cal1 = Calendar.getInstance();
US時刻で表示されてしまう。
# ll /etc/localtime lrwxrwxrwx 1 root root 30 2010-09-29 10:11 /etc/localtime -> /usr/share/zoneinfo/Asia/Tokyo
にも関わらずだ。
Calendar cal1 = Calendar.getInstance(TimeZone.getTimeZone("Asia/Tokyo"));
ような書き方をしないとタイムゾーンがづれてしまうよう。
上記のためHudsonでも時刻がUS時刻になってしまう。
Hudoson内では上記のような時刻の取得をしているらしくづれる。
これを解決するために以下対応を行った。
vi /etc/init.d/hudson ----- : JAVA_ARGS="-Duser.timezone=Asia/Tokyo" : ----- /etc/init.d/hudson start
2011-01-24 Satchmoで通貨単位を¥にする
■ Satchmoで通貨単位を¥にする

参考URL
ソース
settings.py
-----
:
L10N_SETTINGS = {
'currency_formats' : {
'JPN' : {'symbol': u'¥', 'positive' : u"¥%(val)d", 'negative': u"¥(%(val)d)",
'decimal' : ','},
},
'default_currency' : 'JPN',
'show_admin_translations': False,
'allow_translation_choice': False,
}
:
-----


だと、絶対パスで実行した場合に$0の値が変わってしまうので、
PNUM=$(pidof -x ${0##*/})
のようにファイル名だけ渡した方が良いと思います。
全く関係ないですが、FireFox5(Linux 64bit版)だと、投稿時の画像認証が正常に動作しないようです。