■コマンド履歴を表示する
------------------------------------------------------
[root@xxxxxxxxx ~]# history
1 cd share/
2 ls -l
3 cd files
~~中略~~~~~~~
[root@xxxxxxxxx ~]# echo ${HISTTIMEFORMAT}
[root@dti-vps-srv741 ~]#
------------------------------------------------------
■コマンド履歴を日付時刻付で表示する
環境変数HISTTIMEFORMATに日付フォーマットを設定すると
historyコマンドの実行結果に日付時刻も記録するようになる
------------------------------------------------------
[xxxxxx@xxxxxxxx ~]$ history
1 2014-10-24 10:32:05 /etc/init.d/tomcat5 start
2 2014-10-24 10:32:05 vi /etc/init.d/tomcat5
3 2014-10-24 10:32:05 EXIT
~~中略~~~~~~~
[xxxxxx@xxxxxxxx ~]$ echo ${HISTTIMEFORMAT}
%F %T
[xxxxxx@xxxxxxxx ~]$
------------------------------------------------------
■コマンド履歴を削除する
------------------------------------------------------
[xxxxxx@xxxxxxxx ~]$ history -c[xxxxxx@xxxxxxxx ~]$ history 1 2014-10-24 10:58:43 history[xxxxxx@xxxxxxxx ~]$
------------------------------------------------------
2014年10月24日金曜日
2014年10月21日火曜日
個人事業主メモ 退職 切り替え 個人事業主 SE
必要な手続き
http://egsguide.com/owner.php
退職届フォーマット
http://www.template.usefulful.net/down/syanai16_2.lzh
http://egsguide.com/owner.php
退職届フォーマット
http://www.template.usefulful.net/down/syanai16_2.lzh
就職、社内文書
2014年9月30日火曜日
bash の脆弱性 SehllShock (CVE-2014-6721)
対応
yumつかってるなら
yum update bashで9月26日にだされた修正パッチをあてればよい
実際どのような箇所が問題なのか詳しく説明してくれているサイト様、すごいよくわかる・・!
http://moro-archive.hatenablog.com/entry/2014/09/27/200553
root@xxxxxx]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable ←コイツがでるとアウト
this is a test
上記のようになると脆弱性ありありなので
yum update bashを実行
その後
[root@xxxxxx]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test
デナクナッター
---- 仕事にて古いredhatの対応もせねばならなくなりそうなので色々まとめ ------
■redhat or centosなら下記コマンドを実行してOSversionを確認する
cat /etc/redhat-release
■通常のredhat4は既にサポート切れ(2012/02/29)だが、延長契約をしてれば2015/02/29までredhatのレポジトリから
bashのアップデートで対応が可能。延長契約しているのかどうかをユーザ様に確認
#RHEL4 ELSは、2005年に出荷開始された「Red Hat Enterprise Linux 4」の7年間の標準サポートに加え、3年間の延長サポートを提供するもの。これにより、2012年2月29日までの標準サポートを最大2015年2月末まで延長が可能となる。
■現状脆弱性確認
[root@xxxxxx]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable ←下記のthis is a test以外が表示された場合脆弱性あり
this is a test ←この文字列のみ表示された場合脆弱性なし
■バッシュ対応確認チェックスクリプト
https://github.com/hannob/bashcheck
[root@dti-vps-srv741 ~]# sh bashcheck
Testing /bin/bash ...
Bash version 4.1.2(1)-release
Variable function parser pre/suffixed [(), redhat], bugs not exploitable
Not vulnerable to CVE-2014-6271 (original shellshock)
Not vulnerable to CVE-2014-7169 (taviso bug)
Not vulnerable to CVE-2014-7186 (redir_stack bug)
Test for CVE-2014-7187 not reliable without address sanitizer
Found non-exploitable CVE-2014-6277 (lcamtuf bug #1)
Not vulnerable to CVE-2014-6278 (lcamtuf bug #2)
上記のように表示されていれば対応完了済
対応できていないwarningやらerrorなどの文字列が含まれた結果が表示されるかと
■update対応
☆redhat 5~などなら
yum update bash-*
のみで対応できる。
☆redhat 4は延長サポートをうけていれば
up2date -u bash-*
で対応可能
☆redhat 4は延長サポートをうけていない場合
1・オラクルからでてる修正パッチをwgetで入手
wget https://oss.oracle.com/el4/SRPMS-updates/bash-3.0-27.0.2.el4.src.rpm
2・リビルド
rpmbuild -rebuild bash-3.0-27.0.2.el4.src.rpm
(rpmbuildコマンドが使えない場合使えるようインストールしておくこと)
3・インストール
rpm -Uvh bash-3.0-27.0.3.i386.rpm
■現状脆弱性確認
[root@xxxxxx]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test
上記結果となっていればインストール対応完了
バッシュversion確認
rpm -qa | egrep '^bash'
yumつかってるなら
yum update bashで9月26日にだされた修正パッチをあてればよい
実際どのような箇所が問題なのか詳しく説明してくれているサイト様、すごいよくわかる・・!
http://moro-archive.hatenablog.com/entry/2014/09/27/200553
root@xxxxxx]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable ←コイツがでるとアウト
this is a test
上記のようになると脆弱性ありありなので
yum update bashを実行
その後
[root@xxxxxx]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test
デナクナッター
---- 仕事にて古いredhatの対応もせねばならなくなりそうなので色々まとめ ------
■redhat or centosなら下記コマンドを実行してOSversionを確認する
cat /etc/redhat-release
■通常のredhat4は既にサポート切れ(2012/02/29)だが、延長契約をしてれば2015/02/29までredhatのレポジトリから
bashのアップデートで対応が可能。延長契約しているのかどうかをユーザ様に確認
#RHEL4 ELSは、2005年に出荷開始された「Red Hat Enterprise Linux 4」の7年間の標準サポートに加え、3年間の延長サポートを提供するもの。これにより、2012年2月29日までの標準サポートを最大2015年2月末まで延長が可能となる。
■現状脆弱性確認
[root@xxxxxx]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable ←下記のthis is a test以外が表示された場合脆弱性あり
this is a test ←この文字列のみ表示された場合脆弱性なし
■バッシュ対応確認チェックスクリプト
https://github.com/hannob/bashcheck
[root@dti-vps-srv741 ~]# sh bashcheck
Testing /bin/bash ...
Bash version 4.1.2(1)-release
Variable function parser pre/suffixed [(), redhat], bugs not exploitable
Not vulnerable to CVE-2014-6271 (original shellshock)
Not vulnerable to CVE-2014-7169 (taviso bug)
Not vulnerable to CVE-2014-7186 (redir_stack bug)
Test for CVE-2014-7187 not reliable without address sanitizer
Found non-exploitable CVE-2014-6277 (lcamtuf bug #1)
Not vulnerable to CVE-2014-6278 (lcamtuf bug #2)
上記のように表示されていれば対応完了済
対応できていないwarningやらerrorなどの文字列が含まれた結果が表示されるかと
■update対応
☆redhat 5~などなら
yum update bash-*
のみで対応できる。
☆redhat 4は延長サポートをうけていれば
up2date -u bash-*
で対応可能
☆redhat 4は延長サポートをうけていない場合
1・オラクルからでてる修正パッチをwgetで入手
wget https://oss.oracle.com/el4/SRPMS-updates/bash-3.0-27.0.2.el4.src.rpm
2・リビルド
rpmbuild -rebuild bash-3.0-27.0.2.el4.src.rpm
(rpmbuildコマンドが使えない場合使えるようインストールしておくこと)
3・インストール
rpm -Uvh bash-3.0-27.0.3.i386.rpm
■現状脆弱性確認
[root@xxxxxx]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test
上記結果となっていればインストール対応完了
バッシュversion確認
rpm -qa | egrep '^bash'
2014年9月29日月曜日
postfix メモ
■動いてるかもしれないデフォルトのsendmailを止める
/etc/rc.d/init.d/sendmail stop
■postfixインストール
yum -y install postfix
■postfix起動
[root@dti-vps-srv741 trunk]# service postfix restart
Shutting down postfix: [FAILED]
Starting postfix: [ OK ]
■MTA変更前の設定確認
[root@dti-vps-srv741 trunk]# alternatives --display mta
mta - status is manual.
link currently points to /usr/sbin/sendmail.sendmail ←デフォルトはsendmail
■MTAの切り替え
[root@xxxxx trunk]# alternatives --config mta
There are 2 programs which provide 'mta'.
Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail ・・・デフォルトはsendmailになってる
2 /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number: 2 ・・postfixは2なので2を入力しエンター
■MTA変更後の設定確認
[root@xxxxx trunk]# alternatives --display mta
mta - status is manual.
link currently points to /usr/sbin/sendmail.postfix ←postfixになったことを確認
■メール送信テスト
[[root@xxxxx trunk]# /usr/sbin/sendmail -f <送信元メアド> <送信先メアド> <<EOM
From: <送信元メアド>
To: <送信先メアド>
Subject:テストです
Content-Type:text/plain;charset=UTF-8;
テストでメールを送ってみました。
EOM
送信先メアドで上記の送信テストのメールを受信できたかを確認
/etc/rc.d/init.d/sendmail stop
■postfixインストール
yum -y install postfix
■postfix起動
[root@dti-vps-srv741 trunk]# service postfix restart
Shutting down postfix: [FAILED]
Starting postfix: [ OK ]
■MTA変更前の設定確認
[root@dti-vps-srv741 trunk]# alternatives --display mta
mta - status is manual.
link currently points to /usr/sbin/sendmail.sendmail ←デフォルトはsendmail
■MTAの切り替え
[root@xxxxx trunk]# alternatives --config mta
There are 2 programs which provide 'mta'.
Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail ・・・デフォルトはsendmailになってる
2 /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number: 2 ・・postfixは2なので2を入力しエンター
■MTA変更後の設定確認
[root@xxxxx trunk]# alternatives --display mta
mta - status is manual.
link currently points to /usr/sbin/sendmail.postfix ←postfixになったことを確認
■メール送信テスト
[[root@xxxxx trunk]# /usr/sbin/sendmail -f <送信元メアド> <送信先メアド> <<EOM
From: <送信元メアド>
To: <送信先メアド>
Subject:テストです
Content-Type:text/plain;charset=UTF-8;
テストでメールを送ってみました。
EOM
送信先メアドで上記の送信テストのメールを受信できたかを確認
2014年9月19日金曜日
linux 権限系コマンドメモ
■現在のディレクトリ配下のroot権限になっているものを探す
find ./ -user root
■現在のディレクトリ配下のroot権限になっているものに対して一括でchown userA.groupAを実行する
find ./ -user root | xargs -i -r chown userA.groupA {}
■SVNの状態を確認する
svn st -u
■ファイルを更新する(SVN)
svn up -r HEAD
※リビジョンはリリースするときにどれを適用するのか決める
find ./ -user root
■現在のディレクトリ配下のroot権限になっているものに対して一括でchown userA.groupAを実行する
find ./ -user root | xargs -i -r chown userA.groupA {}
■SVNの状態を確認する
svn st -u
■ファイルを更新する(SVN)
svn up -r HEAD
※リビジョンはリリースするときにどれを適用するのか決める
2014年9月10日水曜日
手動とcron実行・及び違うサーバで同じシェルスクリプト叩いて実行結果が違った時の確認
実行するときの環境変数の差を疑うべし
実行ユーザでprintenvした環境変数と
cronで実行したprintenvを比べてLANG設定とかちゃんと同じか確認する
# vi /etc/crontab
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
*/1 * * * * root printenv > /root/printenv.txt
SHELL=/bin/bash
USER=root
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PWD=/
LANG=ja_JP.UTF-8
SHLVL=1
HOME=/
LOGNAME=root
_=/usr/bin/printenv
検証環境と本番環境で違っていたので上記の方法で確認して本番環境に
LANG設定がされてなかったのを確認
実行ユーザでprintenvした環境変数と
cronで実行したprintenvを比べてLANG設定とかちゃんと同じか確認する
# vi /etc/crontab
------------------------------------------------------------------------
SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
---------------------------------------------------------------
# less /root/printenv.txt
----------------------------------------
MAILTO=rootSHELL=/bin/bash
USER=root
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PWD=/
LANG=ja_JP.UTF-8
SHLVL=1
HOME=/
LOGNAME=root
_=/usr/bin/printenv
----------------------------------------
LANG設定がされてなかったのを確認
2014年7月17日木曜日
2014年7月16日水曜日
置換を行う REPLACE SQL
■テーブルのあるカラムを対象にabcという文字列が存在している場合、abcをdefに置き換えてアップデートする 特定行だけにしたい場合はwhere句をつける
UPDATE テーブル名 SET カラム名=REPLACE(カラム名,'abc','drg') ;
UPDATE テーブル名 SET カラム名=REPLACE(カラム名,'abc','drg') ;
2014年7月15日火曜日
改行コードを入れる SQL
INSERT INTO NANTOKA_TABLE (textbody) VALUES ('改行を' || chr(10) || 'いれます');
chr(13) : CR chr(10) : LF
chr(13) : CR chr(10) : LF
2014年7月14日月曜日
MySQL コマンドラインメモ
1■エラーを無視してインポートするMySQLのコマンド( force)
http://nob-log.info/2013/02/15/mysql-force-import/
2■コマンドラインで実行するときのオプション
http://dev.mysql.com/doc/refman/4.1/ja/mysql.html
3■MySQLのコマンドラインで-pオプションを使わずにパスワードを指定する方法
http://heartbeats.jp/hbblog/2010/03/mysql-p.html
これをやらないと毎回
Warning: Using a password on the command line interface can be insecure.
がでてめんどい。
2+3の複合
シェルスクリプトでselect実行結果を変数にいれたいとき
-e SQL文を渡すためのオプション
B 実行結果の枠線を消す
N カラム名を表示しない
http://nob-log.info/2013/02/15/mysql-force-import/
2■コマンドラインで実行するときのオプション
http://dev.mysql.com/doc/refman/4.1/ja/mysql.html
3■MySQLのコマンドラインで-pオプションを使わずにパスワードを指定する方法
http://heartbeats.jp/hbblog/2010/03/mysql-p.html
これをやらないと毎回
Warning: Using a password on the command line interface can be insecure.
がでてめんどい。
2+3の複合
シェルスクリプトでselect実行結果を変数にいれたいとき
-e SQL文を渡すためのオプション
B 実行結果の枠線を消す
N カラム名を表示しない
変数名=`mysql -uユーザ名 DB名 -NBe "select ~~"`
セレクトで得たid群分処理を回したい
ids=`mysql -uユーザ名 DB名 -NBe "select id from xxxxx"`
for i in $ids
do
echo $i
done
みたいな感じ ids に 1 2 3 と結果がはいった場合
for分は3回実行され $i は 1 2 3と順次中身がとりだされ実行される
セレクトで得たid群分処理を回したい
ids=`mysql -uユーザ名 DB名 -NBe "select id from xxxxx"`
for i in $ids
do
echo $i
done
みたいな感じ ids に 1 2 3 と結果がはいった場合
for分は3回実行され $i は 1 2 3と順次中身がとりだされ実行される
2014年7月4日金曜日
cakePHPメモ
CakePHPの共通のライブラリの作り方
http://ameblo.jp/itboy/entry-11354038711.htmlCakePHP:モデル内でコンポーネントを呼び出す
http://mac-studio.info/cakephp%EF%BC%9A%E3%83%A2%E3%83%87%E3%83%AB%E5%86%85%E3%81%A7%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99CakePHPでコントローラーを複数のディレクトリに整理する方法
http://d.hatena.ne.jp/yandod/20080510/1210416583
[CakePHP2]コンポーネントでloadModelできる便利メソッドを作る
http://www.happyquality.com/2012/08/24/2449.htmCakePHP2でComponentからHTTPリクエストのクエリパラメータを取得する方法
http://tech.oga-ria.com/get-request-query-parameter-at-component-in-cakephp/2014年7月1日火曜日
cakephpでユーザ定義定数を読みだす
http://hakomori.net/cakephp-original-constant/
defineだけ記述したものでやりたく上記を参考にしてやってみたが
エラーが発生した・・とほほ
$configを最低でもひとつ定義していないと上記画面になるっぽい
下記のような$configをてきとーに一個かいてみたら上記画面はでなくなり、問題なく動作しました。
$config['test'] = array(
"test_a"=>"abc",
"test_b"=>"def",
"test_c"=>"ghi",
);
2014年6月18日水曜日
Google Maps API V3 逆ジオコーディング
参考
https://developers.google.com/maps/documentation/javascript/geocoding?hl=ja
http://pcrice.blog129.fc2.com/blog-entry-161.html
https://sites.google.com/site/gmapsapi3/Home/services
http://negimemo.net/1860
現在地の緯度・経度を取得してそれを引数に都道府県を特定したかったので
上記を参考に取得確認できるようなものをてけとーにかいたのでメモ
<html>
<body>
<head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
</head>
<script type="text/javascript">
if (navigator.geolocation) {
// 現在の位置情報を取得
navigator.geolocation.getCurrentPosition(
// (1)位置情報の取得に成功した場合
function (pos){
reversegeocoding(pos.coords.latitude,pos.coords.longitude);
},
// (2)位置情報の取得に失敗した場合
function (error) {
var message = "";
switch (error.code) {
// 位置情報が取得できない場合
case error.POSITION_UNAVAILABLE:
message = "位置情報の取得ができませんでした。";
break;
// Geolocationの使用が許可されない場合
case error.PERMISSION_DENIED:
message = "位置情報取得の使用許可がされませんでした。";
break;
// タイムアウトした場合
case error.PERMISSION_DENIED_TIMEOUT:
message = "位置情報取得中にタイムアウトしました。";
break;
}
window.alert(message);
}
);
} else {
window.alert("本ブラウザではGeolocationが使えません");
}
function reversegeocoding(lat,lng){
var geocoder;
alert("id: " + lat); // 緯度
alert("keido: " + lng); // 経度
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(lat,lng);
if (geocoder) {
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
for (var r = 0; r < results.length; r ++) {
var end = 0;
var address = results[r].address_components;
for (var i = 0; i < address.length; i++) {
switch (address[i].types[0]) {
case "administrative_area_level_1":
alert(address[i].long_name);
end = 1;
break;
}
}
if(end == 1){
break;
}
}
}else{
alert("Geocoder failed due to: " + status);
}
});
}
}
</script>
</body>
</html>
https://developers.google.com/maps/documentation/javascript/geocoding?hl=ja
http://pcrice.blog129.fc2.com/blog-entry-161.html
https://sites.google.com/site/gmapsapi3/Home/services
http://negimemo.net/1860
現在地の緯度・経度を取得してそれを引数に都道府県を特定したかったので
上記を参考に取得確認できるようなものをてけとーにかいたのでメモ
<html>
<body>
<head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
</head>
<script type="text/javascript">
if (navigator.geolocation) {
// 現在の位置情報を取得
navigator.geolocation.getCurrentPosition(
function (pos){
reversegeocoding(pos.coords.latitude,pos.coords.longitude);
},
// (2)位置情報の取得に失敗した場合
function (error) {
var message = "";
switch (error.code) {
// 位置情報が取得できない場合
case error.POSITION_UNAVAILABLE:
message = "位置情報の取得ができませんでした。";
break;
// Geolocationの使用が許可されない場合
case error.PERMISSION_DENIED:
message = "位置情報取得の使用許可がされませんでした。";
break;
// タイムアウトした場合
case error.PERMISSION_DENIED_TIMEOUT:
message = "位置情報取得中にタイムアウトしました。";
break;
}
window.alert(message);
}
);
} else {
window.alert("本ブラウザではGeolocationが使えません");
}
function reversegeocoding(lat,lng){
var geocoder;
alert("id: " + lat); // 緯度
alert("keido: " + lng); // 経度
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(lat,lng);
if (geocoder) {
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
for (var r = 0; r < results.length; r ++) {
var end = 0;
var address = results[r].address_components;
for (var i = 0; i < address.length; i++) {
switch (address[i].types[0]) {
case "administrative_area_level_1":
alert(address[i].long_name);
end = 1;
break;
}
}
if(end == 1){
break;
}
}
}else{
alert("Geocoder failed due to: " + status);
}
});
}
}
</script>
</body>
</html>
2014年6月12日木曜日
vi --LinuxCommand
■■ 編集モードへ移る ■■
・現在のカーソル位置から挿入
i
・現在のカーソル位置から置換
R
・現在行の末尾に追加
A
■■ 終了 ■■■■■■■■
・保存
:w
・保存して終了
:wq
・保存せずに終了
:q
・変更した行も保存せずに終了
:q!
■■ 検索 ■■■■■■■■
・前方検索
/正規表現
・後方検索
?正規表現
・次の候補
n
・前の候補
N
■■■■■■■■■■■■■
・行表示
:set number
・指定行に飛ぶ
517行目に飛ぶ
:517
・範囲選択での削除
- 削除範囲の開始行で「ms」と入力します。
- 削除範囲の終了行で「me」と入力します。
- 「:'s,'ed」と入力し、エンターを押します。
http://d.hatena.ne.jp/nattou_curry_2/20090915/1253022774#delete
2014年6月9日月曜日
jQuery 値を取得する
http://www.jquerystudy.info/reference/
http://www.jquerystudy.info/reference/manipulation/text.html
・jQuery 選択されているラジオボタンの値を取得する
http://symfoware.blog68.fc2.com/blog-entry-871.html
・jQueryでチェックボックスのチェック状態を調べる
http://d.hatena.ne.jp/replication/20130613/1371137959
・jQueryでチェックされたcheckboxの値を取得して配列に格納する方法、また、配列をcheckboxの値に設定する方法
http://www.jquerystudy.info/reference/manipulation/text.html
・jQuery 選択されているラジオボタンの値を取得する
http://symfoware.blog68.fc2.com/blog-entry-871.html
・jQueryでチェックボックスのチェック状態を調べる
http://d.hatena.ne.jp/replication/20130613/1371137959
・jQueryでチェックされたcheckboxの値を取得して配列に格納する方法、また、配列をcheckboxの値に設定する方法
http://knt45.hatenablog.com/entry/2013/04/15/131531
2014年5月22日木曜日
シンボリックリンクを作成する ln --LinuxCommand
ln -s <参照先> シンボリックリンク名
・/var/www/share配下にproperty_imagesという名のシンボリックリンクを作成
向き先は/opt/images/public
ln -s /opt/images/public /var/www/share/property_images
・/var/www/share配下にproperty_imagesという名のシンボリックリンクを作成
向き先は/opt/images/public
ln -s /opt/images/public /var/www/share/property_images
2014年5月18日日曜日
apache2.4 mysql5.6 php5.5 linuxインストールメモ
※centos6.4, httpd-2.4.6, MySQL-5.6.14, php-5.5.6
■最新化
yum update
yum update
■makeの下準備
yum install gcc gcc-c++ zlib zlib-devel libxml2 libxml2-devel libmcrypt libmcrypt-devel curl curl-devel openssl-devel
yum install gcc gcc-c++ zlib zlib-devel libxml2 libxml2-devel libmcrypt libmcrypt-devel curl curl-devel openssl-devel
■Apache
yum install -y pcre-devel
wget http://archive.apache.org/dist/httpd/httpd-2.4.6.tar.gz
tar zxvf httpd-2.4.6.tar.gz
cd httpd-2.4.6
cd ./srclib/
wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-1.5.1.tar.gz
wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-util-1.5.3.tar.gz
tar zxvf apr-1.5.1.tar.gz
tar zxvf apr-util-1.5.3.tar.gz
mv apr-1.5.0 apr
mv apr-util-1.5.3 apr-util
cd ..
./configure --with-included-apr --enable-mods-shared=all
make
make install
yum install -y pcre-devel
wget http://archive.apache.org/dist/httpd/httpd-2.4.6.tar.gz
tar zxvf httpd-2.4.6.tar.gz
cd httpd-2.4.6
cd ./srclib/
wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-1.5.1.tar.gz
wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-util-1.5.3.tar.gz
tar zxvf apr-1.5.1.tar.gz
tar zxvf apr-util-1.5.3.tar.gz
mv apr-1.5.0 apr
mv apr-util-1.5.3 apr-util
cd ..
./configure --with-included-apr --enable-mods-shared=all
make
make install
/usr/local/apache2/bin/httpd -v cp build/rpm/httpd.init /etc/rc.d/init.d/httpd vim /etc/rc.d/init.d/httpd ← bin,pidのあたりを修正する ps -aux | grep httpd kill [process number] service httpd [start,stop,restart] vim /etc/hosts ← hostname を追加する htpasswd -c .htpasswd xxxxxx /usr/local/apache2/bin/httpd -S -DSSL /usr/local/apache2/bin/httpd -M
■MySQL
yum install libaio libaio-devel
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.14-1.linux_glibc2.5.x86_64.rpm-bundle.tar
tar xvf MySQL-5.6.14-1.linux_glibc2.5.x86_64.rpm-bundle.tar
yum install libaio libaio-devel
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.14-1.linux_glibc2.5.x86_64.rpm-bundle.tar
tar xvf MySQL-5.6.14-1.linux_glibc2.5.x86_64.rpm-bundle.tar
rpm -ivh MySQL-shared-5.6.14-1.linux_glibc2.5.x86_64.rpm rpm -ivh MySQL-client-5.6.14-1.linux_glibc2.5.x86_64.rpm rpm -ivh MySQL-server-5.6.14-1.linux_glibc2.5.x86_64.rpm rpm -ivh MySQL-devel-5.6.14-1.linux_glibc2.5.x86_64.rpm ls /etc/my.cnf cp /usr/share/mysql/my-default.cnf /etc/my.cnf vim /etc/my.cnf service mysql start view ~/.mysql_secret ← パスワードの確認 mysql -u root -p SET PASSWORD = PASSWORD('root');
■PHP
wget http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm
vim /etc/yum.repos.d/epel.repo ← enabled=0
yum --enablerepo=epel install libmcrypt-devel
wget http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm
vim /etc/yum.repos.d/epel.repo ← enabled=0
yum --enablerepo=epel install libmcrypt-devel
wget http://jp1.php.net/get/php-5.5.6.tar.gz/from/this/mirror tar zxvf php-5.5.6.tar.gz cd php-5.5.6 ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-mbregex --with-mcrypt --enable-calendar --with-libdir=lib64 --with-mysql --with-mysqli --with-openssl --with-curl --with-curlwrappers --enable-zip [20140724]./configure --prefix=/usr/local/php --with-apxs2=/etc/httpd/bin/apxs --enable-mbstring --enable-mbregex --with-mcrypt --enable-calendar --with-libdir=lib64 --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-curl --enable-zip --enable-memcache --with-gd --with-zlibmake make test make install /usr/local/php/bin/php -v cd /usr/bin ln -s /usr/local/php/bin/php php php -r 'phpinfo();' | grep php.ini cp php.ini-development /usr/local/php/lib/php.ini vim /usr/local/php/lib/php.ini ← time.zone = Asia/Tokyo
■phpmadmin
wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/4.0.9/phpMyAdmin-4.0.9-all-languages.zip?r=http%3A%2F%2Fwww.phpmyadmin.net%2Fhome_page%2Findex.php&ts=1385817138&use_mirror=jaist
unzip phpMyAdmin-4.0.9-all-languages.zip
mv phpMyAdmin-4.0.9-all-languages phpmyadmin
mv phpMyAdmin-4.0.9-all-languages.zip ./org
cd phpmyadmin/
cp config.sample.inc.php config.inc.php
vim config.inc.php
wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/4.0.9/phpMyAdmin-4.0.9-all-languages.zip?r=http%3A%2F%2Fwww.phpmyadmin.net%2Fhome_page%2Findex.php&ts=1385817138&use_mirror=jaist
unzip phpMyAdmin-4.0.9-all-languages.zip
mv phpMyAdmin-4.0.9-all-languages phpmyadmin
mv phpMyAdmin-4.0.9-all-languages.zip ./org
cd phpmyadmin/
cp config.sample.inc.php config.inc.php
vim config.inc.php
2014年5月13日火曜日
phpadminインストール メモ linux
■phpadminインストール
cd /root/src
wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.2.0/phpMyAdmin-4.2.0-all-languages.tar.gz/download#
tar xvfz download
mv phpMyAdmin-4.2.0-all-languages /etc/httpd/htdocs/phpmyadmin
cp /etc/httpd/htdocs/phpmyadmin/config.sample.inc.php /etc/httpd/htdocs/phpmyadmin/config.inc.php
chmod 660 /etc/httpd/htdocs/phpmyadmin/config.inc.php
vi /etc/httpd/htdocs/phpmyadmin/config.inc.php
$cfg['blowfish_secret'] = 'denen';
$cfg['Lang'] = 'ja-utf-8';
Basic認証設置
/etc/httpd/bin/htpasswd -c /etc/httpd/htdocs/phpmyadmin/.htpasswd xxxxx ←xxxはユーザ名
パスワード: xxxxxxx
vi /etc/httpd/htdocs/phpmyadmin/.htaccess
AuthType Basic
AuthName "Please Enter Your Password"
AuthUserFile /etc/httpd/htdocs/phpmyadmin/.htpasswd
Require valid-user
cd /root/src
wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/4.2.0/phpMyAdmin-4.2.0-all-languages.tar.gz/download#
tar xvfz download
mv phpMyAdmin-4.2.0-all-languages /etc/httpd/htdocs/phpmyadmin
cp /etc/httpd/htdocs/phpmyadmin/config.sample.inc.php /etc/httpd/htdocs/phpmyadmin/config.inc.php
chmod 660 /etc/httpd/htdocs/phpmyadmin/config.inc.php
vi /etc/httpd/htdocs/phpmyadmin/config.inc.php
$cfg['blowfish_secret'] = 'denen';
$cfg['Lang'] = 'ja-utf-8';
Basic認証設置
/etc/httpd/bin/htpasswd -c /etc/httpd/htdocs/phpmyadmin/.htpasswd xxxxx ←xxxはユーザ名
パスワード: xxxxxxx
vi /etc/httpd/htdocs/phpmyadmin/.htaccess
AuthType Basic
AuthName "Please Enter Your Password"
AuthUserFile /etc/httpd/htdocs/phpmyadmin/.htpasswd
Require valid-user
2014年5月12日月曜日
mysql 5.6.16インストールメモ Linux
yum install libaio libaio-devel
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.16-1.linux_glibc2.5.x86_64.rpm-bundle.tar
tar xvf MySQL-5.6.16-1.linux_glibc2.5.x86_64.rpm-bundle.tar
rpm -ivh MySQL-shared-5.6.16-1.linux_glibc2.5.x86_64.rpm
rpm -ivh MySQL-client-5.6.16-1.linux_glibc2.5.x86_64.rpm
rpm -ivh MySQL-server-5.6.16-1.linux_glibc2.5.x86_64.rpm
rpm -ivh MySQL-devel-5.6.16-1.linux_glibc2.5.x86_64.rpm
ls /usr/my.cnf
cp -p /usr/my.cnf /usr/my.cnf_org
cp /usr/share/mysql/my-default.cnf /usr/my.cnf
vim /usr/my.cnf
cat ~/.mysql_secret パスワード確認
mysql -u root -p
mysql> set password for 'root'@'localhost' = password('root'); パスワード設定
dumpファイルでリストア
mysql -u root -p データベース名 < dumpファイル
・mysql起動/停止
/etc/init.d/mysql start
/etc/init.d/mysql stop
・設定ファイル
/usr/my.cnf
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.16-1.linux_glibc2.5.x86_64.rpm-bundle.tar
tar xvf MySQL-5.6.16-1.linux_glibc2.5.x86_64.rpm-bundle.tar
rpm -ivh MySQL-shared-5.6.16-1.linux_glibc2.5.x86_64.rpm
rpm -ivh MySQL-client-5.6.16-1.linux_glibc2.5.x86_64.rpm
rpm -ivh MySQL-server-5.6.16-1.linux_glibc2.5.x86_64.rpm
rpm -ivh MySQL-devel-5.6.16-1.linux_glibc2.5.x86_64.rpm
ls /usr/my.cnf
cp -p /usr/my.cnf /usr/my.cnf_org
cp /usr/share/mysql/my-default.cnf /usr/my.cnf
vim /usr/my.cnf
cat ~/.mysql_secret パスワード確認
mysql -u root -p
mysql> set password for 'root'@'localhost' = password('root'); パスワード設定
dumpファイルでリストア
mysql -u root -p データベース名 < dumpファイル
・mysql起動/停止
/etc/init.d/mysql start
/etc/init.d/mysql stop
・設定ファイル
/usr/my.cnf
2014年5月8日木曜日
memcachedインストール Linux CentOS6.3
■memcached インストール
yum install -y memcached インストール
less vi /etc/sysconfig/memcached 設定ファイル確認
/etc/init.d/memcached start 起動
chkconfig memcached on 自動起動設定
chkconfig --list | grep 3:on 自動起動設定確認
telnet localhost 11211 接続
quit 接続終了
■phpのセッションをmemcachedに変更する
/usr/local/php/bin/pecl install memcache memcache.soができる
vi /usr/local/php/lib/php.ini php設定ファイルのセッション部分を修正する
----------------------------------------------
extension=memcache.so
;session.save_handler = files
session.save_handler = memcache
;session.save_path = "/tmp"
session.save_path = "tcp://localhost:11211"
----------------------------------------------
yum install -y memcached インストール
less vi /etc/sysconfig/memcached 設定ファイル確認
/etc/init.d/memcached start 起動
chkconfig memcached on 自動起動設定
chkconfig --list | grep 3:on 自動起動設定確認
telnet localhost 11211 接続
quit 接続終了
■phpのセッションをmemcachedに変更する
/usr/local/php/bin/pecl install memcache memcache.soができる
vi /usr/local/php/lib/php.ini php設定ファイルのセッション部分を修正する
----------------------------------------------
extension=memcache.so
;session.save_handler = files
session.save_handler = memcache
;session.save_path = "/tmp"
session.save_path = "tcp://localhost:11211"
----------------------------------------------
2014年5月7日水曜日
locate ファイルを高速に検索 LinuxCommand
■はいってなければインストール
[root@xxxxxx xxxxxx]# locate php.ini
bash: locate: コマンドが見つかりません
[root@xxxxxx xxxxxx]# yum install mlocate
~~インストールログ略~~
[root@xxxxxx xxxxxx]# locate php.ini ・・・ まだ足りぬ
locate: stat () `'/var/lib/mlocate/mlocate.db' できません: そのようなファイルや ディレクトリはありません
[root@xxxxxx xxxxxx]# updatedb ・・・ updatedb
[root@xxxxxx xxxxxx]# locate php.ini ・・・ コマンド実行できた
/etc/php.ini
/root/php.ini
/usr/local/php/lib/php.ini
/usr/local/src/php-5.5.6/php.ini-development
/usr/local/src/php-5.5.6/php.ini-production
/usr/local/src/php-5.5.8/php.ini-development
/usr/local/src/php-5.5.8/php.ini-production
/usr/share/doc/php-common-5.3.3/php.ini-development
/usr/share/doc/php-common-5.3.3/php.ini-production
要約すると・・
yum install mlocate ・・インストールして
updatedb ・・updatedbすれば使える
■使い方
locate <ファイル名>
使用例 php.iniファイルのあるパスを一覧表示
[root@xxxxxx xxxxxx]# locate php.ini
/etc/php.ini
/root/php.ini
/usr/local/php/lib/php.ini
/usr/local/src/php-5.5.6/php.ini-development
/usr/local/src/php-5.5.6/php.ini-production
/usr/local/src/php-5.5.8/php.ini-development
/usr/local/src/php-5.5.8/php.ini-production
/usr/share/doc/php-common-5.3.3/php.ini-development
/usr/share/doc/php-common-5.3.3/php.ini-production
2014年5月6日火曜日
ネットワーク設定
■プライベートIPアドレスを指定する centOS6.3
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
#BOOTPROTO="dhcp" ←コメントアウトする
IPADDR=192.168.0.X ←指定したいIPアドレスを設定する
NETMASK=255.255.255.0
GATEWAY=192.168.0.1 ←デフォルトゲータウェイ
HWADDR="D4:3D:7E:0B:FD:67"
NM_CONTROLLED="yes"
ONBOOT="yes" ←noだったらyesにしとく
TYPE="Ethernet"
※上記BOOTPROTOのコメントアウトとONBOOTをyesにしておかないと再起動したときに
プライベートIPアドレスがセットされないで127.0.0.1にもどる。するのわすれてリモートで再起動しちゃってつながらくなったのは良い思い出。
■ネットワーク起動/停止/再起動
etc/rc.d/init.d/network restart
etc/rc.d/init.d/network start
etc/rc.d/init.d/network stop
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
#BOOTPROTO="dhcp" ←コメントアウトする
IPADDR=192.168.0.X ←指定したいIPアドレスを設定する
NETMASK=255.255.255.0
GATEWAY=192.168.0.1 ←デフォルトゲータウェイ
HWADDR="D4:3D:7E:0B:FD:67"
NM_CONTROLLED="yes"
ONBOOT="yes" ←noだったらyesにしとく
TYPE="Ethernet"
※上記BOOTPROTOのコメントアウトとONBOOTをyesにしておかないと再起動したときに
プライベートIPアドレスがセットされないで127.0.0.1にもどる。するのわすれてリモートで再起動しちゃってつながらくなったのは良い思い出。
■ネットワーク起動/停止/再起動
etc/rc.d/init.d/network restart
etc/rc.d/init.d/network start
etc/rc.d/init.d/network stop
シャットダウン・再起動 shutdown LinuxCommand
shutdown -r 再起動する
shutdown -h シャットダウンする
shutdown now すぐにシャットダウン・再起動を行う
■すぐに再起動する
shutdown -r now
shutdown -h シャットダウンする
shutdown now すぐにシャットダウン・再起動を行う
■すぐに再起動する
shutdown -r now
2014年4月30日水曜日
2014年4月25日金曜日
Apache Struts2 の脆弱性対策について(CVE-2014-0094)(S2-020)
https://www.ipa.go.jp/security/ciadr/vul/20140417-struts.html■概要: Apache Struts のバージョン 2.0.0 から 2.3.16 には、ClassLoader を操作される脆弱性が存在(CVE-2014-0094)が存在しますが、同様の脆弱性がApache Struts 1.Xにおいても存在することを確認された。
デフォルト状態のStruts1.X及びStruts1.Xを拡張したフレームワークが本脆弱性の影響を受ける可能性。
過去、Struts2に関する攻撃は脆弱性公表後に早期に行われている傾向がある。
今回のStruts1.Xに対する脆弱性についても、同様に攻撃が行われる可能性があるため、早急な対策を推奨。
■対象となるアプリケーションとバージョン Struts1.X (検証済バージョンはStruts 1.3.8、Struts1.3.10のみですが、他のバージョンも影響を受けると想定される。)
■対策: Struts1.Xはサポート切れの製品であるため修正パッチは提供されない可能性がある。
本脆弱性にはパラメータ名に不正な文字列が含まれる特徴がある。
Struts2では不正なパラメータを遮断する設定機能が提供されていますが、Struts1.Xに同様の機能は存在しないため、設定で回避することが出来ない。
そのため、ServletFilterやWAF等を使用して不正なパラメータ名を含むリクエストを遮断する必要があります。
遮断用文字列の例 (^|\.)[cC]lass\.
※「.Class.」「.class.」「(行頭)Class.」「(行頭)class.」の場合検知するような正規表現となります。
ただ、パラメータ名に前述の文字列を含む リクエストが遮断されるためアプリケーションの正常動作に影響を与える可能性があります。
■想定される被害 (1)サービスの停止 (2)リモートからのファイルの読み込み (3)リモートからのコードの実行
■参考(類似の脆弱性) S2-020 CVE-2014-0094 http://struts.apache.org/release/2.3.x/docs/s2-020.html
http://www.scutum.jp/information/waf_tech_blog/2014/04/waf-blog-036.html
■対策コード
http://www.mbsd.jp/img/testFilter.java
sar CPU・ネットワーク・メモリ・ディスクの情報確認 LinuxCommand
■インストール
CentOS/iostat,sarコマンドのインストール
http://linux.just4fun.biz/CentOS/iostat,sar%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB.html#n7f92f26
■インストールしたけど実行できないとき
http://www.uetyi.mydns.jp/wordpress/linux-server/entry-122.html
以下インストールして実行できず実行できるようになるまでのメモログ。CentOS6.3
[root@xxxxx ~]# sar
-bash: sar: コマンドが見つかりません
[root@xxxxx ~]# yum install sysstat
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.kddilabs.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package sysstat.x86_64 0:9.0.4-22.el6 will be installed
--> Processing Dependency: /etc/cron.d for package: sysstat-9.0.4-22.el6.x86_64
--> Running transaction check
---> Package cronie.x86_64 0:1.4.4-12.el6 will be installed
--> Processing Dependency: dailyjobs for package: cronie-1.4.4-12.el6.x86_64
--> Processing Dependency: /usr/sbin/sendmail for package: cronie-1.4.4-12.el6.x86_64
--> Running transaction check
---> Package cronie-anacron.x86_64 0:1.4.4-12.el6 will be installed
--> Processing Dependency: crontabs for package: cronie-anacron-1.4.4-12.el6.x86_64
---> Package exim.x86_64 0:4.72-4.el6 will be installed
--> Running transaction check
---> Package crontabs.noarch 0:1.10-33.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
sysstat x86_64 9.0.4-22.el6 base 230 k
Installing for dependencies:
cronie x86_64 1.4.4-12.el6 base 73 k
cronie-anacron x86_64 1.4.4-12.el6 base 30 k
crontabs noarch 1.10-33.el6 base 10 k
exim x86_64 4.72-4.el6 epel 1.2 M
Transaction Summary
================================================================================
Install 5 Package(s)
Total download size: 1.6 M
Installed size: 4.8 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): cronie-1.4.4-12.el6.x86_64.rpm | 73 kB 00:00
(2/5): cronie-anacron-1.4.4-12.el6.x86_64.rpm | 30 kB 00:00
(3/5): crontabs-1.10-33.el6.noarch.rpm | 10 kB 00:00
(4/5): exim-4.72-4.el6.x86_64.rpm | 1.2 MB 00:00
(5/5): sysstat-9.0.4-22.el6.x86_64.rpm | 230 kB 00:00
--------------------------------------------------------------------------------
Total 2.5 MB/s | 1.6 MB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : exim-4.72-4.el6.x86_64 1/5
Installing : cronie-1.4.4-12.el6.x86_64 2/5
Installing : crontabs-1.10-33.el6.noarch 3/5
Installing : cronie-anacron-1.4.4-12.el6.x86_64 4/5
Installing : sysstat-9.0.4-22.el6.x86_64 5/5
Verifying : crontabs-1.10-33.el6.noarch 1/5
Verifying : exim-4.72-4.el6.x86_64 2/5
Verifying : cronie-anacron-1.4.4-12.el6.x86_64 3/5
Verifying : sysstat-9.0.4-22.el6.x86_64 4/5
Verifying : cronie-1.4.4-12.el6.x86_64 5/5
Installed:
sysstat.x86_64 0:9.0.4-22.el6
Dependency Installed:
cronie.x86_64 0:1.4.4-12.el6 cronie-anacron.x86_64 0:1.4.4-12.el6
crontabs.noarch 0:1.10-33.el6 exim.x86_64 0:4.72-4.el6
Complete!
[root@xxxxx ~]# sar
/var/log/sa/sa25 を開けません: そのようなファイルやディレクトリはありません
[root@xxxxx ~]# /etc/init.d/sysstat start
Calling the system activity data collector (sadc)...
[root@buront ~]# sar
Linux 2.6.32-431.el6.x86_64 (buront.localdomain) 2014年04月25日 _x86_64_ (2 CPU)
11時12分23秒 LINUX RESTART
[root@xxxxx ~]#
CentOS/iostat,sarコマンドのインストール
http://linux.just4fun.biz/CentOS/iostat,sar%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB.html#n7f92f26
■インストールしたけど実行できないとき
http://www.uetyi.mydns.jp/wordpress/linux-server/entry-122.html
以下インストールして実行できず実行できるようになるまでのメモログ。CentOS6.3
[root@xxxxx ~]# sar
-bash: sar: コマンドが見つかりません
[root@xxxxx ~]# yum install sysstat
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.kddilabs.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package sysstat.x86_64 0:9.0.4-22.el6 will be installed
--> Processing Dependency: /etc/cron.d for package: sysstat-9.0.4-22.el6.x86_64
--> Running transaction check
---> Package cronie.x86_64 0:1.4.4-12.el6 will be installed
--> Processing Dependency: dailyjobs for package: cronie-1.4.4-12.el6.x86_64
--> Processing Dependency: /usr/sbin/sendmail for package: cronie-1.4.4-12.el6.x86_64
--> Running transaction check
---> Package cronie-anacron.x86_64 0:1.4.4-12.el6 will be installed
--> Processing Dependency: crontabs for package: cronie-anacron-1.4.4-12.el6.x86_64
---> Package exim.x86_64 0:4.72-4.el6 will be installed
--> Running transaction check
---> Package crontabs.noarch 0:1.10-33.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
sysstat x86_64 9.0.4-22.el6 base 230 k
Installing for dependencies:
cronie x86_64 1.4.4-12.el6 base 73 k
cronie-anacron x86_64 1.4.4-12.el6 base 30 k
crontabs noarch 1.10-33.el6 base 10 k
exim x86_64 4.72-4.el6 epel 1.2 M
Transaction Summary
================================================================================
Install 5 Package(s)
Total download size: 1.6 M
Installed size: 4.8 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): cronie-1.4.4-12.el6.x86_64.rpm | 73 kB 00:00
(2/5): cronie-anacron-1.4.4-12.el6.x86_64.rpm | 30 kB 00:00
(3/5): crontabs-1.10-33.el6.noarch.rpm | 10 kB 00:00
(4/5): exim-4.72-4.el6.x86_64.rpm | 1.2 MB 00:00
(5/5): sysstat-9.0.4-22.el6.x86_64.rpm | 230 kB 00:00
--------------------------------------------------------------------------------
Total 2.5 MB/s | 1.6 MB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : exim-4.72-4.el6.x86_64 1/5
Installing : cronie-1.4.4-12.el6.x86_64 2/5
Installing : crontabs-1.10-33.el6.noarch 3/5
Installing : cronie-anacron-1.4.4-12.el6.x86_64 4/5
Installing : sysstat-9.0.4-22.el6.x86_64 5/5
Verifying : crontabs-1.10-33.el6.noarch 1/5
Verifying : exim-4.72-4.el6.x86_64 2/5
Verifying : cronie-anacron-1.4.4-12.el6.x86_64 3/5
Verifying : sysstat-9.0.4-22.el6.x86_64 4/5
Verifying : cronie-1.4.4-12.el6.x86_64 5/5
Installed:
sysstat.x86_64 0:9.0.4-22.el6
Dependency Installed:
cronie.x86_64 0:1.4.4-12.el6 cronie-anacron.x86_64 0:1.4.4-12.el6
crontabs.noarch 0:1.10-33.el6 exim.x86_64 0:4.72-4.el6
Complete!
[root@xxxxx ~]# sar
/var/log/sa/sa25 を開けません: そのようなファイルやディレクトリはありません
[root@xxxxx ~]# /etc/init.d/sysstat start
Calling the system activity data collector (sadc)...
[root@buront ~]# sar
Linux 2.6.32-431.el6.x86_64 (buront.localdomain) 2014年04月25日 _x86_64_ (2 CPU)
11時12分23秒 LINUX RESTART
[root@xxxxx ~]#
2014年4月23日水曜日
.htaccess メモ
■有効範囲
適用範囲このファイルを制御をおこないたいディレクトリに置けば、そのディレクトリと下位ディレクトリに設定が反映される。
ただし、下位のディレクトリに別の.htaccessがあった場合はそちらが優先される。
上記のようにOverrideが有効になる範囲が設定されている場合は、許可されている範囲でのみ設定が再定義される。
上位のディレクトリやhttpd.conf(access.conf)には共通の設定を記述し、細かい制御をおこないたいディレクトリで個別の設定をかくとよいだろう。
記述のない項目に関しては、上位ディレクトリの設定が継承されるので、心配ならば明示的に記述しておくほうがよいだろう。
■windowsで.htaccessのファイルを作成するとき
GUI上でやろうとすると弾かれてしまうことぬなる
適用範囲このファイルを制御をおこないたいディレクトリに置けば、そのディレクトリと下位ディレクトリに設定が反映される。
ただし、下位のディレクトリに別の.htaccessがあった場合はそちらが優先される。
上記のようにOverrideが有効になる範囲が設定されている場合は、許可されている範囲でのみ設定が再定義される。
上位のディレクトリやhttpd.conf(access.conf)には共通の設定を記述し、細かい制御をおこないたいディレクトリで個別の設定をかくとよいだろう。
記述のない項目に関しては、上位ディレクトリの設定が継承されるので、心配ならば明示的に記述しておくほうがよいだろう。
■windowsで.htaccessのファイルを作成するとき
GUI上でやろうとすると弾かれてしまうことぬなる
2014年4月22日火曜日
mysql 5.5.32インストールメモ windows
■ダウンロード
http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.5/
上記URLからmysql-5.5.32-win32.msiをダウンロード
■インストール
ダウンロードしたmysql-5.5.32-win32.msiをクリックし実行
以下下記のようにすすめていく
環境変数 Path の設定
インストールディレクトリ/bin をpathに追加する
C:\Program Files\MySQL\MySQL Server 5.5\bin
コマンドプロンプトにてmysqlに接続できるか確認を行う。
mysql -u root -p
http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.5/
上記URLからmysql-5.5.32-win32.msiをダウンロード
■インストール
ダウンロードしたmysql-5.5.32-win32.msiをクリックし実行
以下下記のようにすすめていく
環境変数 Path の設定
インストールディレクトリ/bin をpathに追加する
C:\Program Files\MySQL\MySQL Server 5.5\bin
コマンドプロンプトにてmysqlに接続できるか確認を行う。
mysql -u root -p
2014年4月18日金曜日
ユーザのパスワードを変更する passwd -- LinuxConfig/LinuxCommand
# passwd xxxxxx ・・ユーザ:xxxxxxのパスワードを変更する
# passwd ・・ユーザ名を指定しない場合はカレントユーザのパスワード変更となる
※rootで他者のパスワードを変更する際は旧パスワードは聞かれない。
※以前使用していたパスワード、またそれと似ているパスワードは設定できない(下記ログはcentos6.3にて施行したもの)
---------------------------------------------
[root@xxxxxx ~]# passwd xxxxxx
ユーザー xxxxxx のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: 全ての認証トークンが正しく更新できました。
[root@xxxxxx ~]# su xxxxxx
[xxxxxx@xxxxxx root]$ passwd
ユーザー xxxxxx のパスワードを変更。
xxxxxx 用にパスワードを変更中
現在のUNIXパスワード: xxxxxxxxxxxx
新しいパスワード:
よくないパスワード: 古いものと似ています
新しいパスワード:
------------------------------------
# passwd ・・ユーザ名を指定しない場合はカレントユーザのパスワード変更となる
※rootで他者のパスワードを変更する際は旧パスワードは聞かれない。
※以前使用していたパスワード、またそれと似ているパスワードは設定できない(下記ログはcentos6.3にて施行したもの)
---------------------------------------------
[root@xxxxxx ~]# passwd xxxxxx
ユーザー xxxxxx のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: 全ての認証トークンが正しく更新できました。
[root@xxxxxx ~]# su xxxxxx
[xxxxxx@xxxxxx root]$ passwd
ユーザー xxxxxx のパスワードを変更。
xxxxxx 用にパスワードを変更中
現在のUNIXパスワード: xxxxxxxxxxxx
新しいパスワード:
よくないパスワード: 古いものと似ています
新しいパスワード:
------------------------------------
ssh接続の設定 /etc/ssh/sshd_config LinuxConfig
# RSA秘密鍵 identityを必須にする( no で“必須”を指定 )
PasswordAuthentication no
# rootでのログインを禁止する
PermitRootLogin no
# パスワード無しのログインを許すか
PermitEmptyPasswords no
# .rhosts等を信用するか(RSA認証付き)
RhostsRSAAuthentication no
# ユーザhogeのみ接続許可をする(不特定多数に接続させない為)
AllowUsers hoge
設定内容を修正したら再起動を行い設定を反映させる
# /etc/rc.d/init.d/sshd restart
http://fnya.cocolog-nifty.com/blog/2012/03/centos-6aa8.html
http://akiniwa.hatenablog.jp/entry/2013/09/09/080718
ユーザ一覧を確認 /etc/passwd --LinucConfig--
ユーザー名、パスワード、ユーザーID、グループID、コメント,ホームディレクトリ、ログインシェルが記録されている
[root@xxxxxx ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
~~
root:x:0:0:root:/root:/bin/bash
上記を左から準備
root:ユーザ名
x:「 x 」という文字か、もしくは暗号化されたパスワード。「 x 」はシャドウパスワードを使用している事を意味します。
0:ユーザーID
0:グループID
root:コメント
/root:ユーザのホームディレクトリ
/bin/bash:ユーザのログインシェル名
パスワードの部分が空白である場合、パスワード無しでログインできる。セキュリティ上よろしくなのにで設定すべし。
パスワード部分の「 x 」を削除すると、パスワード未設定の状態になり、 パスワード無しでログインできる状態にする事ができます( パスワード無しでログインできる環境なら )。
ユーザ一覧のみを出力
[root@buront ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
~~
参考
http://kazmax.zpp.jp/linux_beginner/etc_passwd.html
[root@xxxxxx ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
~~
root:x:0:0:root:/root:/bin/bash
上記を左から準備
root:ユーザ名
x:「 x 」という文字か、もしくは暗号化されたパスワード。「 x 」はシャドウパスワードを使用している事を意味します。
0:ユーザーID
0:グループID
root:コメント
/root:ユーザのホームディレクトリ
/bin/bash:ユーザのログインシェル名
パスワードの部分が空白である場合、パスワード無しでログインできる。セキュリティ上よろしくなのにで設定すべし。
パスワード部分の「 x 」を削除すると、パスワード未設定の状態になり、 パスワード無しでログインできる状態にする事ができます( パスワード無しでログインできる環境なら )。
ユーザ一覧のみを出力
[root@buront ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
~~
参考
http://kazmax.zpp.jp/linux_beginner/etc_passwd.html
2014年4月17日木曜日
Apache MPM/ prefork or worker メモ
Apacheは2.0から、起動時にMPM(Multi-Processing Modules)という基本モジュールが選択できるようになった
どっちの設定になっているか確認する方法
# apachectl -V | grep 'Server MPM'
Server MPM: Worker
※上記はApache2.0.55ではapachectl -VでServer MPMの項目が表示されないので確認できない
workerモードでは、「php-mbstring」や「php-mysql」などのPHP拡張機能が使えない感じでした。
mod_phpは非スレッドセーフであるため、MPMはworkerではなくprefork一択となる
どっちの設定になっているか確認する方法
# apachectl -V | grep 'Server MPM'
Server MPM: Worker
※上記はApache2.0.55ではapachectl -VでServer MPMの項目が表示されないので確認できない
ApacheのMPM、「prefork」と「worker」を切り替える方法
http://blog.flatlabs.net/20110222_232623/
Apache + PHPでloadavgがじわじわ上がっていく現象と対策
http://blog.uu59.org/2012-02-18-prefork-mpm-with-php.html
サバリプレイス時のjava画像認証がエラーで表示されなくなったときの対応メモ
java.lang.UnsatisfiedLinkError: /usr/java/j2sdk1.4.2_13/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
[root@xxxxx ~]# yum install libXp.so.6
java.lang.UnsatisfiedLinkError: /usr/java/j2sdk1.4.2_13/jre/lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory
[root@xxxxx ~]# yum install libXt.so.6
java.lang.UnsatisfiedLinkError: /usr/java/j2sdk1.4.2_13/jre/lib/i386/libawt.so: libXtst.so.6: cannot open shared object file: No such file or directory
[root@xxxxx]# yum install libXtst.so.6
srcを再配備しapa tom再起動後
文字認証が表示されるようになった
[root@xxxxx ~]# yum install libXp.so.6
java.lang.UnsatisfiedLinkError: /usr/java/j2sdk1.4.2_13/jre/lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory
[root@xxxxx ~]# yum install libXt.so.6
java.lang.UnsatisfiedLinkError: /usr/java/j2sdk1.4.2_13/jre/lib/i386/libawt.so: libXtst.so.6: cannot open shared object file: No such file or directory
[root@xxxxx]# yum install libXtst.so.6
srcを再配備しapa tom再起動後
文字認証が表示されるようになった
eclipseインストール java tomcat設定
Pleiades - Eclipse プラグイン日本語化プラグイン
Pleiades All in One は Windows 向けに開発対象プログラミング言語別でパッケージングした Eclipse 本体と Pleiades および便利なプラグインのセット。
ダウンロードした zip ファイルを解凍 (zip 解凍時の注意) し、eclipse.exe を起動すれば、すぐに日本語化された Eclipse を利用できる。
http://mergedoc.sourceforge.jp/index.html
開発環境にあわせてよく設定変更をする箇所
■javaの設定
ウィンドドウ(W)→設定→Java→インストール済みのJRE
ウィンドドウ(W)→設定→Java→コンパイラー
■tomcatの設定
ウィンドドウ(W)→設定→Tomcat
ウィンドドウ(W)→設定→Tomcat→JVM設定
■antの設定
ウィンドドウ(W)→設定→Ant→ランタイム
※↓はウィンドドウ(W)→設定→Java→インストール済みのJREの設定画面
■SVN設定
・メニューから「ウィンドウ → パースペクティブを開く → その他 → SVNリポジトリー・エクスプローラー」を選択し、「OK」
・SVNリポジトリー・エクスプローラーで、マウス右クリック → 新規 → リポジトリー・ロケーション
・URL欄に、SVNのアドレスを入力
・ラベル : xxxxxx
・認証 : ログインユーザ名
・パスワード : パスワード
・「終了」をクリック
・「リポジトリ・エクスプローラ」に、SVNの内容が展開されることを確認
Pleiades All in One は Windows 向けに開発対象プログラミング言語別でパッケージングした Eclipse 本体と Pleiades および便利なプラグインのセット。
ダウンロードした zip ファイルを解凍 (zip 解凍時の注意) し、eclipse.exe を起動すれば、すぐに日本語化された Eclipse を利用できる。
開発環境にあわせてよく設定変更をする箇所
■javaの設定
ウィンドドウ(W)→設定→Java→インストール済みのJRE
ウィンドドウ(W)→設定→Java→コンパイラー
■tomcatの設定
ウィンドドウ(W)→設定→Tomcat
ウィンドドウ(W)→設定→Tomcat→JVM設定
■antの設定
ウィンドドウ(W)→設定→Ant→ランタイム
※↓はウィンドドウ(W)→設定→Java→インストール済みのJREの設定画面
■SVN設定
・メニューから「ウィンドウ → パースペクティブを開く → その他 → SVNリポジトリー・エクスプローラー」を選択し、「OK」
・SVNリポジトリー・エクスプローラーで、マウス右クリック → 新規 → リポジトリー・ロケーション
・URL欄に、SVNのアドレスを入力
・ラベル : xxxxxx
・認証 : ログインユーザ名
・パスワード : パスワード
・「終了」をクリック
・「リポジトリ・エクスプローラ」に、SVNの内容が展開されることを確認
-チェックアウト
・開発対象の案件(リポジトリラベル名)上で、マウス右クリック
・検索/別名チェックアウト
・名前を指定してプロジェクトとしてチェックアウトを選択
・名前の欄を、リポジトリラベル名と同じにする
・「終了」をクリック
・メニューから「ウィンドウ → パースペクティブを開く → リソース」を選択
・入力したプロジェクト名でチェックアウトされていることを確認
・開発対象の案件(リポジトリラベル名)上で、マウス右クリック
・検索/別名チェックアウト
・名前を指定してプロジェクトとしてチェックアウトを選択
・名前の欄を、リポジトリラベル名と同じにする
・「終了」をクリック
・メニューから「ウィンドウ → パースペクティブを開く → リソース」を選択
・入力したプロジェクト名でチェックアウトされていることを確認
2014年4月16日水曜日
Java文字列連結の性能
http://d.hatena.ne.jp/nowokay/20140408#1396924547
http://d.hatena.ne.jp/nowokay/20140409#1397010846
http://d.hatena.ne.jp/nowokay/20140413#1397359039
http://d.hatena.ne.jp/j5ik2o/20110222/1298380551
http://d.hatena.ne.jp/nowokay/20140409#1397010846
http://d.hatena.ne.jp/nowokay/20140413#1397359039
http://d.hatena.ne.jp/j5ik2o/20110222/1298380551
セキュリティ設定 Linuxメモ
CentOS で行なっておきたいセキュリティ設定
http://fnya.cocolog-nifty.com/blog/2012/03/centos-6aa8.html
http://fnya.cocolog-nifty.com/blog/2012/03/centos-6aa8.html
鍵交換方式による SSH 接続メモ- PuTTY/teraterm
■PuTTY
http://www.kuins.kyoto-u.ac.jp/news/47/putty-gen.html
■teraterm
http://centos.server-manual.com/centos6_ssh_teraterm_rsa.html
http://www.kuins.kyoto-u.ac.jp/news/47/putty-gen.html
■teraterm
http://centos.server-manual.com/centos6_ssh_teraterm_rsa.html
eclipse メモ
eclipse3.3
java ~6 ~tomcat6.0
eclipse3.6
java ~6 ~tomcat7.0
eclipse3.7
java ~7 ~tomcat7.0
java ~6 ~tomcat6.0
eclipse3.6
java ~6 ~tomcat7.0
eclipse3.7
java ~7 ~tomcat7.0
Antメモ
Antインストール
http://ameblo.jp/developer-yk/entry-11062548252.html
Antのbuild.xmlをEclipseから自動生成
http://www.hitachi.co.jp/Prod/comp/soft1/cosminexus/useful/tips/091204_eclipse-create-buildxml.html
build.xml
http://www.javadrive.jp/ant/buildxml/index1.html
2014年4月15日火曜日
2014年4月11日金曜日
2014年4月9日水曜日
2014年4月8日火曜日
ファイル/ディレクトリのアクセス権変更 -- chmod -- LinuxCommand
ファイル/ディレクトリのアクセス権を変更する
chmod 777 file-x ・・file-xのアクセス権限を777に変更するchmod a+x file-x ・・全てユーザ(所有者、グループ、その他のユーザー)のfile-xの実行権限を付与する。
chmod -R 777 directory-x ・・directory-x内のファイル全て及びディレクトリのアクセス権限を777に変更する
chown -Rc user-a directory-x -cをつけることによりアクセス権限が変更されたファイルを詳細情報付きで表示する
数値の意味 左から順に所有者、グループ、その他のユーザーの権限
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx
r 読み込み権限
w 書き込み権限
x 実行権限
u 所有者の権限
g グループの権限
o その他のユーザーの権限
a すべての権限
chown -Rc user-a directory-x -cをつけることによりアクセス権限が変更されたファイルを詳細情報付きで表示する
数値の意味 左から順に所有者、グループ、その他のユーザーの権限
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx
r 読み込み権限
w 書き込み権限
x 実行権限
u 所有者の権限
g グループの権限
o その他のユーザーの権限
a すべての権限
前回起動方法の確認 PostgreSQL
起動対象のデータディレクトリ内に存在するpostmaster.optsを調べる
less /usr/local/pgsql/data/postmaster.opts
↓下記のように起動時のコマンドが表示される
/usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data"
ファイル/ディレクトリの所有者を変更 - chown - LinuxCommand
ファイル/ディレクトリの所有者を変更する
chown user-a file-x ・・file-xの所有者をuser-aに変更する
chown -R user-a directory-x ・・directory-x内のファイル全て及びディレクトリの所有者をuser-aに変更する
chown -Rc user-a directory-x -cをつけることにより所有者が変更されたファイルを詳細情報付きで表示する
2014年4月7日月曜日
hostsの変更反映 Windows config
windows7の場合のhostsファイルは下記
C:\Windows\System32\drivers\etc\hosts
コマンドプロントにて
ipconfig /displaydns
で確認
ipconfig /flushdns で反映
もしくは
net stop dnscache
でDNS Client サービスを停止し
net start dnscache
でDNS Client サービスを起動
C:\Windows\System32\drivers\etc\hosts
コマンドプロントにて
ipconfig /displaydns
で確認
ipconfig /flushdns で反映
もしくは
net stop dnscache
でDNS Client サービスを停止し
net start dnscache
でDNS Client サービスを起動
/etc/hostsの変更反映 Linux config
# /etc/rc.d/init.d/network resatart
or
# /etc/rc.d/init.d/network reload
or
# /etc/rc.d/init.d/network reload
ファイル/ディレクトリを検索 -- find -- Linux:command
■ファイル/ディレクトリ/シンボリックリンクなどを検索する
・現位置のディレクトリとその配下にあるすべてより zipとなのつくファイル、ディレクトリを検索し
ひっかかたものをファイル/ディレクトリ名を表示する
find . -name "*zip*" -print
・現位置のディレクトリとその配下にあるすべてより zipとなのつくファイル、ディレクトリを検索し
ひっかかたものをファイル/ディレクトリ名詳細情報つきで表示する
find . -name "*zip*" -ls
・現位置のディレクトリとその配下にあるすべてのシンボリックリンクを表示する
find . -type l
・/var/www/trunk配下にあるすべての .svnとなまえのつく"ディレクトリ"を削除する
find /var/www/trunk -type d -name '*.svn' | xargs rm -rf
※xargsコマンドは左辺のコマンドの出力結果をxargsの右辺のコマンドに渡す。
・/etc配下にある全てのファイルの中にhogeという文字列が含まれてるか検索し対象ファイル名を表示する
find /etc -type f -print | xargs grep hoge /dev/null
2014年4月4日金曜日
Java jvmのDNSキャッシュ
インフラがドメインのipアドレスを変更して以降javaからの接続でこけるようになった。
javaではipアドレスではなくURLドメイン名で指定してるから問題ねーだろとおもってら
ダメだった。
ググって調べたら
JVMはデフォルトだと一回でも成功しているDNSキャッシュはずっと保持しつづける設定になっている。とのこと
なんでこんな設定になってるのかはDNSリバインディング対策とからしい
インストールされているjavaの中に
/usr/java/j2sdk1.4.2_13/jre/lib/security/java.security
設定ファイルがある
■jspで現在どのような状態になっているかも下記内容をいれれば確認できる
javaではipアドレスではなくURLドメイン名で指定してるから問題ねーだろとおもってら
ダメだった。
ググって調べたら
JVMはデフォルトだと一回でも成功しているDNSキャッシュはずっと保持しつづける設定になっている。とのこと
なんでこんな設定になってるのかはDNSリバインディング対策とからしい
インストールされているjavaの中に
/usr/java/j2sdk1.4.2_13/jre/lib/security/java.security
設定ファイルがある
下記行がそのデフォルトを示す設定
#networkaddress.cache.ttl=-1
こいつを下記のように
networkaddress.cache.ttl=0
修正した。
networkaddress.cache.ttl (デフォルト: -1)
java.security で指定して、ネームサービスからの名前の検索に成功した場合のキャッシングポリシーを示します。 指定する値は、成功した検索結果をキャッシュする秒数を示す整数です。-1 の値は、「ずっとキャッシュする」という意味です。
networkaddress.cache.negative.ttl (デフォルト: 10)
java.security で指定して、ネームサービスからの名前の検索に失敗した場合のキャッシングポリシーを示します。 指定する値は、失敗した検索結果をキャッシュする秒数を示す整数です。0 の値は、「キャッシュしない」という意味です。 -1 の値は、「ずっとキャッシュする」という意味です。
java.security で指定して、ネームサービスからの名前の検索に成功した場合のキャッシングポリシーを示します。 指定する値は、成功した検索結果をキャッシュする秒数を示す整数です。-1 の値は、「ずっとキャッシュする」という意味です。
networkaddress.cache.negative.ttl (デフォルト: 10)
java.security で指定して、ネームサービスからの名前の検索に失敗した場合のキャッシングポリシーを示します。 指定する値は、失敗した検索結果をキャッシュする秒数を示す整数です。0 の値は、「キャッシュしない」という意味です。 -1 の値は、「ずっとキャッシュする」という意味です。
■jspで現在どのような状態になっているかも下記内容をいれれば確認できる
<%@ page import="java.net.*,java.security.*,sun.net.*" %>
<%
InetAddress inetAddress = InetAddress.getByName("www.google.co.jp");
byte[] address = inetAddress.getAddress();
out.println("Domain Name : "+inetAddress.getHostName() + "<br>");
out.println("IP Address : "+inetAddress.getHostAddress() + "<br>");
out.println("Cache Policy : "+InetAddressCachePolicy.get() + "<br>");
%>
■参考
http://docs.oracle.com/javase/jp/1.4/guide/net/properties.html
http://dev.classmethod.jp/cloud/apache-tomcat-elb-ttl-1/
http://koteitan.seesaa.net/article/95301330.html
http://dev.classmethod.jp/cloud/apache-tomcat-elb-ttl-1/
http://koteitan.seesaa.net/article/95301330.html
登録:
投稿 (Atom)