2013年1月31日木曜日
2013年1月30日水曜日
【Zabbix】Get value error: ZBX_TCP_READ() failed: [104] Connection reset by peer
zabbix_get をしたときにでてきました
おそらくはネットワークの設定かなーと思っていたのですが、まさかでしたので記載しておきます
zabbix_agent.confの「Server=」の部分に記載されているIPによって
そのzabbix-agentがプライベート通信するのかグローバル側で通信するのかが決定する
つまり書かれているIPによって通信するNICが変わってることですね
しらんかったぜよ
ネットワーク系のエラーだったのFWかなーと思ったが・・・まさかでした
冷静になれば確かにと思うんですがね
おそらくはネットワークの設定かなーと思っていたのですが、まさかでしたので記載しておきます
zabbix_agent.confの「Server=」の部分に記載されているIPによって
そのzabbix-agentがプライベート通信するのかグローバル側で通信するのかが決定する
つまり書かれているIPによって通信するNICが変わってることですね
しらんかったぜよ
ネットワーク系のエラーだったのFWかなーと思ったが・・・まさかでした
冷静になれば確かにと思うんですがね
2013年1月28日月曜日
phpMyAdminで設定の拡張機能を使用する方法
■環境
[root@yoshi3 phpMyAdmin]# uname -an
Linux yoshi3 2.6.18-238.el5 #1 SMP Thu Jan 13 15:51:15 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@yoshi3 phpMyAdmin]# cat /etc/issue
CentOS release 5.8 (Final)
Kernel \r on an \m
phpMyAdminバージョン:5.0.95
■前提
phpMyAdminがすでにインストールされるいる
インストール方法は以下のようにインストールします
http://kakakikikeke.blogspot.jp/2012/11/centos63phpmyadmin.html
■設定手順
cd /var/www/html/phpMyAdmin/examples/
mysql -u username -h hostname -p < create_tables.sql
mysql -u username -h hostname -p < upgrade_tables_mysql_4_1_2+.sql
mysql -u root
emacs config.inc.php
以下の部分をコメントアウトし有効状態にします
箇所に書き換える必要がありますので注意を
■確認
一旦phpMyAdminをログアウトし再度ログインして「この設定を永続的に有効にするには、phpMyAdmin 環境保管領域が必要です。」の警告が表示されないことを確認する
これで拡張設定が使えるようになりました
次回はこの機能を使ってphpMyAdminにログインしているセッションのタイムアウトを時間を設定したいと思います
[root@yoshi3 phpMyAdmin]# uname -an
Linux yoshi3 2.6.18-238.el5 #1 SMP Thu Jan 13 15:51:15 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@yoshi3 phpMyAdmin]# cat /etc/issue
CentOS release 5.8 (Final)
Kernel \r on an \m
phpMyAdminバージョン:5.0.95
■前提
phpMyAdminがすでにインストールされるいる
インストール方法は以下のようにインストールします
http://kakakikikeke.blogspot.jp/2012/11/centos63phpmyadmin.html
■設定手順
cd /var/www/html/phpMyAdmin/examples/
mysql -u username -h hostname -p < create_tables.sql
mysql -u username -h hostname -p < upgrade_tables_mysql_4_1_2+.sql
mysql -u root
CREATE USER 'pma'@'%' IDENTIFIED BY '***';
GRANT SELECT ,INSERT ,UPDATE ,DELETE ,CREATE ,DROP ,FILE ,INDEX ,ALTER ,CREATE TEMPORARY TABLES ,CREATE VIEW ,SHOW VIEW ,CREATE ROUTINE,ALTER ROUTINE, EXECUTE ON * . * TO 'pma'@'%' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
cd /var/www/html/phpMyAdmin/GRANT SELECT ,INSERT ,UPDATE ,DELETE ,CREATE ,DROP ,FILE ,INDEX ,ALTER ,CREATE TEMPORARY TABLES ,CREATE VIEW ,SHOW VIEW ,CREATE ROUTINE,ALTER ROUTINE, EXECUTE ON * . * TO 'pma'@'%' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
emacs config.inc.php
以下の部分をコメントアウトし有効状態にします
/* User used to manipulate with storage */
$cfg['Servers'][$i]['controlhost'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';
/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
$cfg['Servers'][$i]['recent'] = 'pma_recent';
/* Contrib / Swekey authentication */
$cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';
このとき$iがサーバの変数参照になっているので、create_tableしたサーバの順番の$cfg['Servers'][$i]['controlhost'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';
/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
$cfg['Servers'][$i]['recent'] = 'pma_recent';
/* Contrib / Swekey authentication */
$cfg['Servers'][$i]['auth_swekey_config'] = '/etc/swekey-pma.conf';
箇所に書き換える必要がありますので注意を
■確認
一旦phpMyAdminをログアウトし再度ログインして「この設定を永続的に有効にするには、phpMyAdmin 環境保管領域が必要です。」の警告が表示されないことを確認する
これで拡張設定が使えるようになりました
次回はこの機能を使ってphpMyAdminにログインしているセッションのタイムアウトを時間を設定したいと思います
2013年1月26日土曜日
.emacs設定メモと便利コマンドメモ
■.emacs設定
■便利コマンド
※chefのcookbooksとしてgithubで公開しました
・cookbooks
https://github.com/kakakikikeke/cookbooks-emacs
・.emacs
https://github.com/kakakikikeke/cookbooks-emacs/blob/master/files/default/dot_emacs
・cookbooks
https://github.com/kakakikikeke/cookbooks-emacs
・.emacs
https://github.com/kakakikikeke/cookbooks-emacs/blob/master/files/default/dot_emacs
- JDEEインストール時の設定 http://kakakikikeke.blogspot.com/2013/03/emacsjavajdee.html
- yasnippetインストール時の設定
- auto-completeインストール時の設定
- auto-java-completeインストール時の設定 http://kakakikikeke.blogspot.com/2013/03/emacsjava.html
- anythingインストール時の設定 http://kakakikikeke.blogspot.com/2013/03/emacsanything.html
- flymakeインストール時の設定
- multi-termインストール時の設定 http://kakakikikeke.blogspot.com/2013/03/emacsmulti-termel.html
- キーバインドの変更
- 起動時のバッファ設定
- バックアップファイルの保存先の指定
- ファイルオープン時の警告設定
- w3mインストール時の設定 http://kakakikikeke.blogspot.com/2013/03/emacsw3m.html
- insert-numberインストール時の設定 http://kakakikikeke.blogspot.com/2013/03/emacslisp.html
- split4インストール時の設定 http://kakakikikeke.blogspot.com/2013/04/emacs4elisp.html
- emacs serverとして動作する設定
- NIFTYCloud SDK for elispインストール時の設定(作成中)
- XML Parserインストール時の設定 http://kakakikikeke.blogspot.com/2013/04/emacsxml.html
- BufferListをソートするための関数定義とキー割り当て
- PHPモードの有効化
- Markdownモードの有効化
- 動的略語変換用のキーバインド割り当て
■便利コマンド
矩形文字挿入 Ctrl+x, r, t でマーク設定してある矩形範囲に文字挿入
矩形切り取り Ctrl+x, r, k でマーク設定してある矩形範囲を切り取り
矩形貼り付け Ctrl+x, r, y で現在のカーソル位置から矩形切り取りした情報を貼り付け
矩形切り取り Ctrl+x, r, k でマーク設定してある矩形範囲を切り取り
矩形貼り付け Ctrl+x, r, y で現在のカーソル位置から矩形切り取りした情報を貼り付け
.emacs設定反映 ESC-x でミニバッファモードになり eval-buffer を実行
現在のキーバインド一覧表示 ESC-x でミニバッファモードになり describe-bindings
現在のキーバインド一覧表示 ESC-x でミニバッファモードになり describe-bindings
Buffer Listの操作方法
Ctrl+d で削除予約
u で削除予約解除
x で実行
s で保存していないファイルを保存する
1 でバッファを開く
Ctrl+d で削除予約
u で削除予約解除
x で実行
s で保存していないファイルを保存する
1 でバッファを開く
terminalモードを実行する(bashを使うことができるモード)
ESC-x でミニバッファモードになり terminal-emulator
Ctrl+6 b でterminalモードから選択した他のバッファ切り替え
Ctrl+6 o でterminalモードから開いている他のバッファに移動
ESC-x でミニバッファモードになり terminal-emulator
Ctrl+6 b でterminalモードから選択した他のバッファ切り替え
Ctrl+6 o でterminalモードから開いている他のバッファに移動
縦に分割する Ctrl+5 (split-window-vertically)
横に分割する Ctrl+2 (split-window Ctrl+q TAB でタブ文字入力
横に分割する Ctrl+2 (split-window Ctrl+q TAB でタブ文字入力
前回のコマンドを再度実行する Ctrl+x, ESC, ESC
2013年1月25日金曜日
【Jenkins 】FATAL: Could not apply tag jenkins-project____android-data-trade-sample-2
githubにコミットがあったらgithubからのhookを検知してビルドが実行されるジョブでずっと以下のようなエラーが出続けていた
なんやこれ!なんやこれ・・・
って結構悩んだ
で、結局原因は
glassfish上で動かしていたため
実はちょっと前にアプリサーバをtomcatからglassfishに切り替えてそのときにJenkinsのコンテナもそちらに移動した
確かにそのときは起動したところまでくらいしか確認してなかったからな・・・
まさかそんなところに原因があったとは・・・
ちなみに
Jenkinsでcapistranoを連携しているジョブでも以下のようなログが大量に吐かれてました
上記もtomcatに戻したらエラー吐かなくなりやした
ってことを考えると環境変数的なやつがglassfish上だと受け継がれてないような気がします
まぁ自分はglassfishあきらめてtomcatにしましたけどね!!w
Started by user root Building in workspace /root/.jenkins/jobs/project____android-data-trade-sample/workspace Checkout:workspace / /root/.jenkins/jobs/project____android-data-trade-sample/workspace - hudson.remoting.LocalChannel@3ca2d904 Using strategy: Default Fetching changes from 1 remote Git repository Fetching upstream changes from git://github.com/kakakikikeke/android-data-trade-sample.git Seen branch in repository origin/HEAD Seen branch in repository origin/master Commencing build of Revision fc5c1e5930cff29f44d5b04f0b8efd98f3c03442 (origin/HEAD, origin/master) Checking out Revision fc5c1e5930cff29f44d5b04f0b8efd98f3c03442 (origin/HEAD, origin/master) FATAL: Could not apply tag jenkins-project____android-data-trade-sample-2 hudson.plugins.git.GitException: Could not apply tag jenkins-project____android-data-trade-sample-2 at hudson.plugins.git.GitAPI.tag(GitAPI.java:737) at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1320) at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1268) at hudson.FilePath.act(FilePath.java:851) at hudson.FilePath.act(FilePath.java:824) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1268) at hudson.model.AbstractProject.checkout(AbstractProject.java:1308) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:679) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:584) at hudson.model.Run.execute(Run.java:1516) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:236) Caused by: hudson.plugins.git.GitException: Command "git tag -a -f -m Jenkins Build #2 jenkins-project____android-data-trade-sample-2" returned status code 128: stdout: stderr: *** Please tell me who you are. Run git config --global user.email "you@example.com" git config --global user.name "Your Name" to set your account's default identity. Omit --global to set the identity only in this repository. fatal: unable to auto-detect email address (got 'root@yoshi3.(none)') at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:786) at hudson.plugins.git.GitAPI.launchCommand(GitAPI.java:748) at hudson.plugins.git.GitAPI.launchCommand(GitAPI.java:758) at hudson.plugins.git.GitAPI.tag(GitAPI.java:735) ... 13 more
なんやこれ!なんやこれ・・・
って結構悩んだ
で、結局原因は
glassfish上で動かしていたため
実はちょっと前にアプリサーバをtomcatからglassfishに切り替えてそのときにJenkinsのコンテナもそちらに移動した
確かにそのときは起動したところまでくらいしか確認してなかったからな・・・
まさかそんなところに原因があったとは・・・
ちなみに
Jenkinsでcapistranoを連携しているジョブでも以下のようなログが大量に吐かれてました
Started by user root Building in workspace /root/.jenkins/jobs/deploy_____shorten-the-url/workspace [workspace] $ /bin/sh -xe /tmp/hudson4760269984174449186.sh + cd /usr/local/cap + cap deploy:update_code /tmp/hudson4760269984174449186.sh: line 3: cap: command not found Build step 'Execute shell' marked build as failure Finished: FAILURE
上記もtomcatに戻したらエラー吐かなくなりやした
ってことを考えると環境変数的なやつがglassfish上だと受け継がれてないような気がします
まぁ自分はglassfishあきらめてtomcatにしましたけどね!!w
2013年1月24日木曜日
Zabbixでguestユーザを削除する方法
Zabbixにはデフォルトでguestという名前のユーザが存在しています
こいつはUIからでは消さないみたいで、使わなったりセキュリティ的にあまりよろしくありません
ということで直接DBを操作して削除してみました
違っていたら適宜変更してSQLを発行してください
UIにログインできないことと他のユーザでログインしてguestユーザがいないことは確認しました
動作的にも何も問題なさそう
こいつはUIからでは消さないみたいで、使わなったりセキュリティ的にあまりよろしくありません
ということで直接DBを操作して削除してみました
mysql -u zabbix -p zabbix DELETE FROM `zabbix`.`users` WHERE `users`.`userid` = 2何もしてなければuseridの2番がguestユーザだとは思います
違っていたら適宜変更してSQLを発行してください
UIにログインできないことと他のユーザでログインしてguestユーザがいないことは確認しました
動作的にも何も問題なさそう
Jenkinsでジョブ名に命名規則を設定する方法
2013年1月23日水曜日
【Linux】ctrl+sで画面が動かなくなってしまった場合の対処方法
ctrl+q
または
ctrl+x, ctrl+q
で抜けれます
Linuxのctrl+sは画面ロックの状態になるキーなので画面ロックの状態になってしまっただけです
慌てず上記コマンドで抜けましょう
ちなみに慌てまくって、キーを押しまくってctrl+qするとそれまでに押したキーが全部ターミナルに送信されてしまいますので、注意してctrl+qはしてください
※xkeymacsを使っているとctrl+qがxkeymacsのON/OFFになってしまうので、一旦xkeymacsを終了する必要があります
または
ctrl+x, ctrl+q
で抜けれます
Linuxのctrl+sは画面ロックの状態になるキーなので画面ロックの状態になってしまっただけです
慌てず上記コマンドで抜けましょう
ちなみに慌てまくって、キーを押しまくってctrl+qするとそれまでに押したキーが全部ターミナルに送信されてしまいますので、注意してctrl+qはしてください
※xkeymacsを使っているとctrl+qがxkeymacsのON/OFFになってしまうので、一旦xkeymacsを終了する必要があります
2013年1月22日火曜日
【Google】BloggerのAPIを使ってブログ記事を取得する方法
■手順
1. blogIDを取得する
2. Google API Keysを取得します
3. リクエストを生成する
4. 実行する
5. 次のページを取得する
■その他
Blogger API v3.0 リファレンス
https://developers.google.com/blogger/docs/3.0/reference/index
SDK一覧
https://developers.google.com/blogger/docs/3.0/libraries
リクエスト生成ツール
以下のURLでblogIDからAPIをサンプルで実行することができます
https://developers.google.com/blogger/docs/3.0/libraries
Googleってこういうのあるから素敵ですよね
あと実はBlogger APIを使おうとしたのは記事のアクセス数でソーティングできないので、自分で作ろうと思っていたのですが、どうやらアクセス数はAPIでも取れないみたいで結局あきらめましたw
残念・・・
1. blogIDを取得する
Bloggerのダッシュボード画面から取得できます
ダッシュボードにアクセスした際のURLのにあるblogID=XXXXXの部分
http://support.google.com/blogger/bin/answer.py?hl=en&answer=42191
ダッシュボードにアクセスした際のURLのにあるblogID=XXXXXの部分
http://support.google.com/blogger/bin/answer.py?hl=en&answer=42191
2. Google API Keysを取得します
Google Accountの登録が必要です
Google Accountを登録したらGoogle API CosoleからBlogger API v3のAPI Keyを取得します
https://code.google.com/apis/console/
※どうやらBlogger API v3のAPI Keyは申請フォームから申請しないと取得できないみたいです
申請が通るとメールでAPI Keyの連絡がくるそうです
Google Accountを登録したらGoogle API CosoleからBlogger API v3のAPI Keyを取得します
https://code.google.com/apis/console/
※どうやらBlogger API v3のAPI Keyは申請フォームから申請しないと取得できないみたいです
申請が通るとメールでAPI Keyの連絡がくるそうです
3. リクエストを生成する
https://www.googleapis.com/blogger/v3/blogs/{blogID}/posts?fetchBodies=true&key={YOUR_API_KEY}
4. 実行する
生成したリクエストをブラウザをたちあげてURLに貼り実行すればOK
Linux環境があるならばurlコマンド等でも代用出来ます
Linux環境があるならばurlコマンド等でも代用出来ます
5. 次のページを取得する
https://www.googleapis.com/blogger/v3/blogs/{blogID}/posts?fetchBodies=true&maxResults=10&pageToken={pageToken}&key={YOUR_API_KEY}
どうやら1ページで取得できる最大の記事数は10件なようです(maxResultsで指定できます)
なので、pageTokenパラメータで次のページに遷移してまた10件と取得しかないと全件取得できません
pageTokenはレスポンスの「nextPageToken」として返却されるのでそれをレスポンスから解析後、次のページにいくためのリクエストを生成するときに埋め込む必要があります
なので、pageTokenパラメータで次のページに遷移してまた10件と取得しかないと全件取得できません
pageTokenはレスポンスの「nextPageToken」として返却されるのでそれをレスポンスから解析後、次のページにいくためのリクエストを生成するときに埋め込む必要があります
■その他
Blogger API v3.0 リファレンス
https://developers.google.com/blogger/docs/3.0/reference/index
SDK一覧
https://developers.google.com/blogger/docs/3.0/libraries
リクエスト生成ツール
以下のURLでblogIDからAPIをサンプルで実行することができます
https://developers.google.com/blogger/docs/3.0/libraries
Googleってこういうのあるから素敵ですよね
あと実はBlogger APIを使おうとしたのは記事のアクセス数でソーティングできないので、自分で作ろうと思っていたのですが、どうやらアクセス数はAPIでも取れないみたいで結局あきらめましたw
残念・・・
2013年1月21日月曜日
Windows Server 2008R2で追加ディスクを実施する方法
■概要
物理ディスクはすでに接続している状態としてWindowsにそれをドライブとして認識させる方法を紹介します
■手順
1. スタートからコンピュータの管理を開きます
2. ディスクの管理を選択すると追加したディスクが「未割り当て」で存在しているのが確認できます
3. 右クリックからオンラインを選択
選択はすべてデフォルトのままで問題ないです
4. 再度右クリックでディスクの初期化を選択
5. 先ほどとは違う隣の場所(黒く塗られている部分)で右クリックし「新しいシンプルボリューム」を選択
ここも選択はすべてデフォルトで問題ないです
6. 図のようになれば完了です、エクスプローラを開いてファイルやフォルダが作成できることを確認しましょう
ちなみに追加ディスクを削除するときには「ボリュームの削除」を実施して再度黒状態になってから追加ディスクをはずしてください
物理ディスクはすでに接続している状態としてWindowsにそれをドライブとして認識させる方法を紹介します
■手順
1. スタートからコンピュータの管理を開きます
2. ディスクの管理を選択すると追加したディスクが「未割り当て」で存在しているのが確認できます
3. 右クリックからオンラインを選択
選択はすべてデフォルトのままで問題ないです
4. 再度右クリックでディスクの初期化を選択
5. 先ほどとは違う隣の場所(黒く塗られている部分)で右クリックし「新しいシンプルボリューム」を選択
ここも選択はすべてデフォルトで問題ないです
6. 図のようになれば完了です、エクスプローラを開いてファイルやフォルダが作成できることを確認しましょう
ちなみに追加ディスクを削除するときには「ボリュームの削除」を実施して再度黒状態になってから追加ディスクをはずしてください
2013年1月20日日曜日
2013年1月18日金曜日
【シェルスクリプト】ホスト名とユーザを判断して実行するif文
if [ `hostname` == 'yoshi3' -a `whoami` == 'root' ] then hostname else echo "NG" fi
備忘録として書いておいきます
2013年1月17日木曜日
capistranoでROLESが引数に指定されているか確認する方法
どうってことはなく、capistranoはrubyを記述することができるので
同様にHOSTS等もこれで確認することができます
引数に必ずROLESが指定されていないと実行されない等の条件を付けたいときには使えそうです
if ENV['ROLES'] != nil puts ENV['ROLES'] endで環境変数を参照すればROLES指定をチェックすることができます
同様にHOSTS等もこれで確認することができます
引数に必ずROLESが指定されていないと実行されない等の条件を付けたいときには使えそうです
2013年1月16日水曜日
【Selenium】[error] Unknown command: 'while'
Selenium IDEはデフォルトではwhileという命令を使用できないようです
拡張のJavaScriptをインストールすると動かせます
※「storedVars」っていう名前の変数は定義されているものだから勝手に小文字にしたりしないでね
(自分はこれで結構はまった・・・)
お試しあれ
参考サイト:http://51elliot.blogspot.jp/2008/02/selenium-ide-goto.html
拡張のJavaScriptをインストールすると動かせます
- https://github.com/darrenderidder/sideflow/blob/master/sideflow.js からJavaScriptファイルを「goto_sel_ide.js」という名前でダウンロード
- Firefoxを起動し、ツールから「Selenium IDE」を起動
- オプション→設定を開く
- 「Selenium Core 拡張スクリプト(user-extension.js)のパス」という欄にダウンロードしたJavaScriptファイルを設定
- OKして一旦Selenium IDEを閉じて再度起動する
- whileの構文を使ったテストケースを記載する(以下は100回ループしてリフレッシュするサンプル)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head profile="http://selenium-ide.openqa.org/profiles/test-case"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="selenium.base" href="http://xxx.xxx.xxx.xxx/" /> <title>test</title> </head> <body> <table cellpadding="1" cellspacing="1" border="1"> <thead> <tr><td rowspan="1" colspan="3">test</td></tr> </thead><tbody> <tr> <td>store</td> <td>0</td> <td>i</td> </tr> <tr> <td>while</td> <td>storedVars.i++<100</td> <td></td> </tr> <tr> <td>refresh</td> <td></td> <td></td> </tr> <tr> <td>endWhile</td> <td></td> <td></td> </tr> </tbody></table> </body> </html>
※「storedVars」っていう名前の変数は定義されているものだから勝手に小文字にしたりしないでね
(自分はこれで結構はまった・・・)
お試しあれ
参考サイト:http://51elliot.blogspot.jp/2008/02/selenium-ide-goto.html
2013年1月15日火曜日
公開鍵認証sshをパスワード認証sshに切り替えるシェルスクリプト
#!/bin/sh sed -i -e "s/^PermitRootLogin/\#PermitRootLogin/g" /etc/ssh/sshd_config sed -i -e "s/^PasswordAuthentication/\#PasswordAuthentication/g" /etc/ssh/sshd_config echo "PermitRootLogin yes" >> /etc/ssh/sshd_config echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config echo "password" | passwd --stdin root
CentOSベースのスクリプトになります
AWSやニフティクラウドのように起動時にシェルスクリプトが実行できる環境があれば
サーバを起動した直後にパスワード認証に変更することも可能になります
ただ、当たり前ですがセキュリティ的にはあまくなりますので、
その辺は自己責任で使用してください。
基本的には救済のときに使用する感じですかね
お試しあれー
2013年1月10日木曜日
2013年1月9日水曜日
【Chef】had an error: ArgumentError: wrong number of arguments (0 for 1)
かなり初歩的だとは思うのですが、若干ハマったのでメモ
こんな感じでレシピを書いていたらタイトルのようなエラーが・・・
directoryに対する引数がおかしいよというエラーのようです
なぜかこの形式のだとattributes上手く参照できないようです
attributesの設定は以下
で調べたらレシピで参照する方法がいけないみたい
正解は以下
attributesを参照する場合はnode["key1"]["key2"]という形式で必ず参照しましょう
他にも参照する方法はありますが、上記がChef的には推奨らしいです
directory "#{node.dir.delete}" do recursive true action :delete end
こんな感じでレシピを書いていたらタイトルのようなエラーが・・・
directoryに対する引数がおかしいよというエラーのようです
なぜかこの形式のだとattributes上手く参照できないようです
attributesの設定は以下
default["dir"]["delete"] = "/tmp/tmpdir3"
で調べたらレシピで参照する方法がいけないみたい
正解は以下
directory node["dir"]["delete"] do recursive true action :delete end
attributesを参照する場合はnode["key1"]["key2"]という形式で必ず参照しましょう
他にも参照する方法はありますが、上記がChef的には推奨らしいです
2013年1月8日火曜日
opensslで作成したkeystoreから秘密鍵を抽出する方法
■概要
opensslでCSR(企業情報)を作成する際にkeystoreが同時に作成できますが、
秘密鍵を単体ではなくkeystore埋め込み形式で作成してしまった場合に秘密鍵の抽出は
keytoolでは行えません
別途プログラムを作成して実施する必要があるので、その方法を紹介します
■プログラムダウンロード
以下のサイトにアクセス
http://code.google.com/p/java-exportpriv/
Downloadsからtgzのファイルをダウンロード
ダウンロード後展開するとBase64Coder.javaとExportPriv.javaがあるのでそれをeclipseの適当なパッケージに展開
■設定
パッケージ名がソースに記載されていないので、パッケージ名を入力
実行が必要なので引数に「keystore名」「エイリアス名」「keystoreのパスワード」
エイリアス名は抽出したい秘密鍵のエイリアスを入力します
※わからない場合はkeytoolコマンドを使って直接keystoreを覗いてエイリアス情報を確認してみてください
■実行
ExportPrivを実行します
標準出力にキーの情報が表示されるので、すべて選択してテキストに貼り付けて保存すれば秘密鍵ファイルの作成は完了です
opensslでCSR(企業情報)を作成する際にkeystoreが同時に作成できますが、
秘密鍵を単体ではなくkeystore埋め込み形式で作成してしまった場合に秘密鍵の抽出は
keytoolでは行えません
別途プログラムを作成して実施する必要があるので、その方法を紹介します
■プログラムダウンロード
以下のサイトにアクセス
http://code.google.com/p/java-exportpriv/
Downloadsからtgzのファイルをダウンロード
ダウンロード後展開するとBase64Coder.javaとExportPriv.javaがあるのでそれをeclipseの適当なパッケージに展開
■設定
パッケージ名がソースに記載されていないので、パッケージ名を入力
実行が必要なので引数に「keystore名」「エイリアス名」「keystoreのパスワード」
エイリアス名は抽出したい秘密鍵のエイリアスを入力します
※わからない場合はkeytoolコマンドを使って直接keystoreを覗いてエイリアス情報を確認してみてください
■実行
ExportPrivを実行します
標準出力にキーの情報が表示されるので、すべて選択してテキストに貼り付けて保存すれば秘密鍵ファイルの作成は完了です
2013年1月7日月曜日
OOM Killerの発生原因と対処方法
■概要
Linux上のメモリをすべて使い果たし空きメモリを確保するためにOOM Killerというプロセスが動作し
既存のプロセスを「無作為」にkillしまくるという仕組み
■発生原因
メモリ不足からのスワップ領域不足
(スワップ領域まで食いつぶすと発生するようです)
■対処方法
■エラー文
/var/log/messagesに以下のようなログがでるとOOMが発生しています
Linux上のメモリをすべて使い果たし空きメモリを確保するためにOOM Killerというプロセスが動作し
既存のプロセスを「無作為」にkillしまくるという仕組み
■発生原因
メモリ不足からのスワップ領域不足
(スワップ領域まで食いつぶすと発生するようです)
■対処方法
- メモリ増強
- swap領域増加
- パラメータチューニング(設定ファイル編集)
- OOM Killer実行抑止(設定ファイル編集)
■エラー文
/var/log/messagesに以下のようなログがでるとOOMが発生しています
Node 0 HighMem free:0kB min:128kB low:128kB high:128kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no lowmem_reserve[]: 0 0 0 0 Node 0 DMA: 5*4kB 5*8kB 3*16kB 4* 32kB 4*64kB 2*128kB 1*256kB 0*512kB 2*1024kB 0*2048kB 0*4096kB = 3052kB Node 0 DMA32: 5*4kB 5*8kB 3*16kB 4*32kB 4*64kB 2*128kB 1*256kB 0*512kB 2*1024kB 0*2048kB 0*4096kB = 5440kB Node 0 Normal: empty Node 0 HighMem: empty 1154 pagecache pages Swap cache: add 1141628, delete 1141308 find 296920/345846, race 0+14 Free swap = 0kB Total swap = 2152700kB
登録:
投稿 (Atom)