クエリを投げて、複数行の結果がかえってくるような検索プログラムに、
htmlで表を使って表示させているが、その際にsequence numberを表示させたいと要望があったので、
一番簡単な方法を掲載。
while ($col = pg_fetch_array($rst)) {
$seq +=1;
whileが終わるまで、seqに+1づつしてくれます。
##PHPの内容抜粋
$body .= "<TABLE border='1'>
<TR>
<TH><font size=2>seq</font></TH>
<TH><font size=2>内容</font></TH>
</TR>";
while ($col = pg_fetch_array($rst)) {
$seq +=1;
$body .= "<TR>" .
"<TD><font size=2>$seq</font></TD>" .
"<TD><font size=2>$col[内容のカラム名]</font></TD>" .
"</TR>";
$body .= "</TABLE>";
こんな感じで使うようですね。
2013/06/26
php WEBシステム クエリの結果に行数を反映させたい
2013/06/24
postgresql 他の拠点(ホスト)からのアクセスを許可する設定
postgresの
/usr/local/pgsql/data/postgresql.conf を修正
listen_addresses = '*'
コメントになっている場合は、コメントを消す(#を取る)
接続ホストの制限をしている設定ファイル
/usr/local/pgsql/data/pg_hba.conf を修正
末尾に新しい拠点(ホスト)を記載。
でpostgresqlを再起動して、設定を有効にする。
/usr/local/pgsql/data/postgresql.conf を修正
listen_addresses = '*'
コメントになっている場合は、コメントを消す(#を取る)
接続ホストの制限をしている設定ファイル
/usr/local/pgsql/data/pg_hba.conf を修正
末尾に新しい拠点(ホスト)を記載。
host all all 192.168.XXX.0/24 password
補足
サブネットマスクは忘れず記載。
passwordで md5ベースのパスワード
md5は総当たりでやられるらしく、
SHA-2とかのほうがセキュアらしいが、
その辺はルーターで穴を塞いでいるので、
ローカルレベルのパスワード定義で十分。
# /etc/rc.d/init.d/postgresql restartでpostgresqlを再起動して、設定を有効にする。
2013/03/21
CentOs6.0 crontab
crontab -e でcronデーモンを登録しようとしたが、上手くいかない。
rootで/var/spool/cronの直下のユーザ名ファイルに直接書き込んだ。
これでも、良いようだ。
rootで/var/spool/cronの直下のユーザ名ファイルに直接書き込んだ。
これでも、良いようだ。
2013/03/18
CentOS6.0以降のcrontab設定
Logwatchをrpmでインストールして 、メールを携帯に飛ばして状態管理をしており、
CentOS6.0のマシンからも、メールを飛ばすようした際のオボエガキ。
CentOS6.0以降のcrontabはrootでも定義されていない。
crontabのdailyを7時半に定義したところ、
朝3時半頃と、指定した時間の2回送られてくるようになった。
All about linuxさん に解説があったので、残す。
何やら、anacron (cronie-anacron)によって、ランダム化をし、
スクリプトシェルが重なったりして実行できない等の問題を解決しているようだ。
/etc/anacrontab
これで、7時前半となる場合は、
cronie-noanacronというパッケージをインストールすると、ランダム化されないそうだ。
パッケージの依存関係のため、事前に cronie-noanacron をインストールし、
その後に cronie-anacron を削除するという手順を踏む。
cronie-anacron パッケージを削除しないと有効化されないようにガードされているそうだ。
cron.weekly および cron.monthlyも同様。
CentOS6.0のマシンからも、メールを飛ばすようした際のオボエガキ。
CentOS6.0以降のcrontabはrootでも定義されていない。
crontabのdailyを7時半に定義したところ、
朝3時半頃と、指定した時間の2回送られてくるようになった。
All about linuxさん に解説があったので、残す。
何やら、anacron (cronie-anacron)によって、ランダム化をし、
スクリプトシェルが重なったりして実行できない等の問題を解決しているようだ。
/etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
赤字の 1 (左端) が実行周期 (日時実行=1) で、
次の数字 5 は、実行開始タイミングになってから、5 分間の遅延を入れる指定
実行開始する時間帯は START_HOURS_RANGEで制御され、
3-22 とは、3時から22時までの範囲 (3:00 ≦ t < 22:00) を指定
ランダム化の幅はRANDOM_DELAY で制御され、
45 とは 0~45 分の範囲 (乱数計算の実装上、正確には 44 分まで)
でランダムに遅延を行うことを指定している。
とのこと。詳しくは、manにて
起動時間帯が、3-22時の場合は、3:05~3:50に(正確には3:06となるらしい)起動することになる。
7時半頃飛んで来ればいいので、START_HOURS_RANGE=7-22
に変更。これで、7時前半となる場合は、
1 5 cron.daily nice run-parts /etc/cron.daily
5を30とかにすれば、いいはず。cronie-noanacronというパッケージをインストールすると、ランダム化されないそうだ。
パッケージの依存関係のため、事前に cronie-noanacron をインストールし、
その後に cronie-anacron を削除するという手順を踏む。
# yum install cronie-noanacron
..略..
Installed:
cronie-noanacron.x86_64 0:1.4.4-7.el6
Complete!
# rpm -e cronie-anacron
/etc/cron.d/dailyjobsというものが生成され、こいつに、見慣れたcromtabを指定すればよい。
中身
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
02 4 * * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.daily
22 4 * * 0 root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.weekly
42 4 1 * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.monthly
cronie-anacron パッケージを削除しないと有効化されないようにガードされているそうだ。
cron.weekly および cron.monthlyも同様。
2012/10/09
Tomcat Catalina_opts
CATALINA_OPTS の設定方法
tomcatのbinにある、catalina.batの中の
set CATALINA_OPTS=CATALINA_OPTS=
" -verbose:gc -XX:+PrintGCTimeStamps -Xms1024m -Xmx1536m -XX:NewSize=170m -XX:MaxNewSize=170m -XX:SurvivorRatio=2 -XX:PermSize=64m -XX:MaxPermSize=64m"
ここの
Xmsが初期値 -Xms1024m
Xmxが最大値 -Xmx1536m
こんな感じで書く。
他の記載はそのままで問題なく動く。
OutOfMemoryが頻出の際は、メモリを買ってここを直す。
tomcatのbinにある、catalina.batの中の
set CATALINA_OPTS=CATALINA_OPTS=
" -verbose:gc -XX:+PrintGCTimeStamps -Xms1024m -Xmx1536m -XX:NewSize=170m -XX:MaxNewSize=170m -XX:SurvivorRatio=2 -XX:PermSize=64m -XX:MaxPermSize=64m"
ここの
Xmsが初期値 -Xms1024m
Xmxが最大値 -Xmx1536m
こんな感じで書く。
他の記載はそのままで問題なく動く。
OutOfMemoryが頻出の際は、メモリを買ってここを直す。
2012/03/29
PHPの日付計算
PHPの日付の記載方法を調べていたら
参考になるところを発見したので、
貼り付けておく。
http://www.ilovex.co.jp/Division/ITD/archives/2006/03/php.html
株式会社アイロベックス様の
ITプロフェッショナル部のアーカイブより発見。
PHPで1週間前の日付の取得方法がわからなかったので、
参考になるところを発見したので、
貼り付けておく。
http://www.ilovex.co.jp/Division/ITD/archives/2006/03/php.html
株式会社アイロベックス様の
ITプロフェッショナル部のアーカイブより発見。
PHPで1週間前の日付の取得方法がわからなかったので、
調べたところ下記の記述が出てきました。
↓↓↓↓↓↓↓以下PHPコード↓↓↓↓↓↓↓↓↓
//今日の日付を取得(タイムスタンプ)
$date_today = mktime (0, 0, 0, date("m"), date("d"), date("y"));
//一週間前を取得
$date_oneweek = $date_today - 86400 * 7;
↑↑↑↑↑↑↑以上PHPコード↑↑↑↑↑↑↑↑↑
86400というのが一日を表しているらしいです。
その数値×7日で一週間分の数値を求め、それを本日のタイムスタンプから引くと、
一週間前の日付が取得できるといった原理です。
確かにちゃんと動くのですが、本当にこの方法しかないのか??
と思い調べたところ違う書き方もありました。
しかも、上記の記述よりも簡単に書くことができました。
↓↓↓↓↓↓↓以下PHPコード↓↓↓↓↓↓↓↓↓
echo "1日前" . date("Y/m/d",strtotime("-1 day"));
echo "1ヶ月前" . date("Y/m/d",strtotime("-1 month"));
echo "1年前" . date("Y/m/d",strtotime("-1 year"));
echo "1週間前" . date("Y/m/d",strtotime("-1 week"));
↑↑↑↑↑↑↑以上PHPコード↑↑↑↑↑↑↑↑↑
1日前,1週間前,1年前,それに加えて1週間前もこのコードで取得できます。
上記コードだと、本日から○日後の日付が取得できますが、
次のコードだと、指定日付から○日後の日付が取得できます。
↓↓↓↓↓↓↓以下PHPコード↓↓↓↓↓↓↓↓↓
echo "1日前" . date("Y/m/d",strtotime("-1 day" ,strtotime("2005/12/10")));
echo "1ヶ月前" . date("Y/m/d",strtotime("-1 month" ,strtotime("2005/12/10")));
echo "1年前" . date("Y/m/d",strtotime("-1 year",strtotime("2005/12/10")));
echo "1週間前" . date("Y/m/d",strtotime("-1 week" ,strtotime("2005/12/10")));
注意:"2005/12/10"は適当な日付です。ここに指定したい日付を記述して下さい。
↑↑↑↑↑↑↑以上PHPコード↑↑↑↑↑↑↑↑↑
また、PHPで何か発見したら報告します。
↓↓↓↓↓↓↓以下PHPコード↓↓↓↓↓↓↓↓↓
//今日の日付を取得(タイムスタンプ)
$date_today = mktime (0, 0, 0, date("m"), date("d"), date("y"));
//一週間前を取得
$date_oneweek = $date_today - 86400 * 7;
↑↑↑↑↑↑↑以上PHPコード↑↑↑↑↑↑↑↑↑
86400というのが一日を表しているらしいです。
その数値×7日で一週間分の数値を求め、それを本日のタイムスタンプから引くと、
一週間前の日付が取得できるといった原理です。
確かにちゃんと動くのですが、本当にこの方法しかないのか??
と思い調べたところ違う書き方もありました。
しかも、上記の記述よりも簡単に書くことができました。
↓↓↓↓↓↓↓以下PHPコード↓↓↓↓↓↓↓↓↓
echo "1日前" . date("Y/m/d",strtotime("-1 day"));
echo "1ヶ月前" . date("Y/m/d",strtotime("-1 month"));
echo "1年前" . date("Y/m/d",strtotime("-1 year"));
echo "1週間前" . date("Y/m/d",strtotime("-1 week"));
↑↑↑↑↑↑↑以上PHPコード↑↑↑↑↑↑↑↑↑
1日前,1週間前,1年前,それに加えて1週間前もこのコードで取得できます。
上記コードだと、本日から○日後の日付が取得できますが、
次のコードだと、指定日付から○日後の日付が取得できます。
↓↓↓↓↓↓↓以下PHPコード↓↓↓↓↓↓↓↓↓
echo "1日前" . date("Y/m/d",strtotime("-1 day" ,strtotime("2005/12/10")));
echo "1ヶ月前" . date("Y/m/d",strtotime("-1 month" ,strtotime("2005/12/10")));
echo "1年前" . date("Y/m/d",strtotime("-1 year",strtotime("2005/12/10")));
echo "1週間前" . date("Y/m/d",strtotime("-1 week" ,strtotime("2005/12/10")));
注意:"2005/12/10"は適当な日付です。ここに指定したい日付を記述して下さい。
↑↑↑↑↑↑↑以上PHPコード↑↑↑↑↑↑↑↑↑
また、PHPで何か発見したら報告します。
2011/09/03
DELL VOSTRO230 WOL
会社で使っているDELL VOSTRO 230 のWOLを仕込んだ。
支店に行く用事があったので、BIOSをF2で立ち上げ、
Low Power Mode [Disable]
Remote On LAN [Enable]
と変更し、セーブして終了。
XPだったので、S5で起せる様に、LANの電源管理等を変更
コントロールパネル
システム
ハードウェア
デバイスマネージャ
ネットワークアダプタ
Broadcom NetLink
詳細設定
Wake Up capabilities を magic packet
電源の管理
このデバイスで、コンピュータのスタンバイ状態を解除できるようにする にチェック
あとは、YAMAHA RTX1200 から マジックパケット投げて起動。
administrator になって
# wol send lan1 [MACアドレス XX:XX:XX:XX:XX:XX]
で立ち上がる。
ちなみにWindows系なので、Real VNCも仕込んでおいた。
益々、新築時に固定IPアドレスが欲しくなってきた。
といっても、固定費が掛かってしまうので、検討中。
支店に行く用事があったので、BIOSをF2で立ち上げ、
Low Power Mode [Disable]
Remote On LAN [Enable]
と変更し、セーブして終了。
XPだったので、S5で起せる様に、LANの電源管理等を変更
コントロールパネル
システム
ハードウェア
デバイスマネージャ
ネットワークアダプタ
Broadcom NetLink
詳細設定
Wake Up capabilities を magic packet
電源の管理
このデバイスで、コンピュータのスタンバイ状態を解除できるようにする にチェック
あとは、YAMAHA RTX1200 から マジックパケット投げて起動。
administrator になって
# wol send lan1 [MACアドレス XX:XX:XX:XX:XX:XX]
で立ち上がる。
ちなみにWindows系なので、Real VNCも仕込んでおいた。
益々、新築時に固定IPアドレスが欲しくなってきた。
といっても、固定費が掛かってしまうので、検討中。
2011/08/16
Yamaha RTX1200 で WOL
別のネットワークからでは、アクセスできなかったので、
いろいろ方法を探してみる。
固定IPを振っていれば問題なんだが、
支店はIPをそんなにもっていないので、
トンネルで対応できる方法を考えた。
ルータ越しにマジックパケット
を送信できないので、(恐らくリジェクトされる)
ルータからwolが出来ないか調べたところ、
コマンドがあったので、忘れないうちに残しておく。
RTX1200にログインして、
administratorになる
#wol send lan1 xx:xx:xx:xx:xx:xx
xxはマックアドレス
細かくパケットの送信回数や、ポート等の指定が可能のようだ。
wol send [-i INTERVAL] [-c COUNT] INTERFACE MAC-ADDRESS [IP-ADDRESS [udp PORT]]
INTERVAL ...パケットの送信間隔 (秒), 1~21474836
COUNT ...パケットの送信回数, 1~21474836
INTERFACE ...LANインタフェース名
MAC-ADDRESS ...MACアドレス
IP-ADDRESS ...IPv4アドレス
PORT ...UDPポート番号(10進数)
TYPE ...イーサネットタイプフィールドの値(10進数)
いろいろ方法を探してみる。
固定IPを振っていれば問題なんだが、
支店はIPをそんなにもっていないので、
トンネルで対応できる方法を考えた。
ルータ越しにマジックパケット
を送信できないので、(恐らくリジェクトされる)
ルータからwolが出来ないか調べたところ、
コマンドがあったので、忘れないうちに残しておく。
RTX1200にログインして、
administratorになる
#wol send lan1 xx:xx:xx:xx:xx:xx
xxはマックアドレス
細かくパケットの送信回数や、ポート等の指定が可能のようだ。
wol send [-i INTERVAL] [-c COUNT] INTERFACE MAC-ADDRESS [IP-ADDRESS [udp PORT]]
INTERVAL ...パケットの送信間隔 (秒), 1~21474836
COUNT ...パケットの送信回数, 1~21474836
INTERFACE ...LANインタフェース名
MAC-ADDRESS ...MACアドレス
IP-ADDRESS ...IPv4アドレス
PORT ...UDPポート番号(10進数)
TYPE ...イーサネットタイプフィールドの値(10進数)
2011/08/11
WakeUp On LAN
会社の支店用サーバの管理のため、
WOLを実装。
DELL PoweredgeT110ii CentOS6.0
バイオス画面でCtrl+Eで立ち上げて
ネットワーク起動をenableにしてセーブして起動
起動後ターミナルからrootになって
#yum install ethtool
既に実装されていた。
# ethtool -s eth0 wol g
でOK。
起動後毎回実行しないといけないらしいので
rc.localに書き込んでおく。
/sbin/ethtool -s eth0 wol g
以上 サーバ側の設定終わり。
クライアント側はWindows7で
wol ver1.93をダウンロード
凄く使いやすいです。
ありがとうございます。
これなら、自宅にサーバ置いて必要なときだけ
割と楽に起動できるから、良いと思った。
iphoneとかandroidでいいのがありそうだ。
探してみよう。
WOLを実装。
DELL PoweredgeT110ii CentOS6.0
バイオス画面でCtrl+Eで立ち上げて
ネットワーク起動をenableにしてセーブして起動
起動後ターミナルからrootになって
#yum install ethtool
既に実装されていた。
# ethtool -s eth0 wol g
でOK。
起動後毎回実行しないといけないらしいので
rc.localに書き込んでおく。
/sbin/ethtool -s eth0 wol g
以上 サーバ側の設定終わり。
クライアント側はWindows7で
wol ver1.93をダウンロード
凄く使いやすいです。
ありがとうございます。
これなら、自宅にサーバ置いて必要なときだけ
割と楽に起動できるから、良いと思った。
iphoneとかandroidでいいのがありそうだ。
探してみよう。
2011/08/08
ネットワーク設定
ネットワークの設定
/etc/sysconfig/network-scripts/ifcfg-Auto_eth1
を編集する
ネットワークマネージャとネットワーク
両方のサービスが走っている状態。
ifcfg-Auto_eth1は2枚目のイーサネットカードで
クライアントが外に出るルーター2台へのルーティング
を行っているのだが、
ネットワークマネージャで表示されなくなった・・・。
原因不明だが、起動時にrc.localにネットワークのサービスを
強制割り込みさせることでとりあえず解消。
本チャンサーバに切り替える時には、
管理プログラムのconf内の 管理ソフト名.propertiesと
tomcat/conf/server.xml
のアドレスをそれぞれ任意のアドレスに変更する事とする。
2011/08/11追記
どうも、BMCという外部からの監視が出来る
バイオスレベルで動くものがあるのだが、
どうもNICの競合が起こるのか、具合が悪かったので、
停止してみたところ、問題解消したようだったので、
自動起動は止めた。
/etc/sysconfig/network-scripts/ifcfg-Auto_eth1
を編集する
ネットワークマネージャとネットワーク
両方のサービスが走っている状態。
ifcfg-Auto_eth1は2枚目のイーサネットカードで
クライアントが外に出るルーター2台へのルーティング
を行っているのだが、
2011/08/11追記
どうも、BMCという外部からの監視が出来る
バイオスレベルで動くものがあるのだが、
どうもNICの競合が起こるのか、具合が悪かったので、
停止してみたところ、問題解消したようだったので、
自動起動は止めた。
2011/06/13
ビジネスホン αGXの設定モード等
Webデータ設定を有効化
957内線の順に押す
設定禁止は
956内線の順に押す
TEN=電話機
KEY=局線ボタンというらしい
TEN番号01の端末で操作
「設定モードの入り方」
[内線ボタン]
→[(決定)or設定ボタン]
→#
→*
→#
→*
→[スピーカボタン]
で
データ書込みモード。
「 設定モードから抜け方」
[機能]ボタン(エラーがなければ)
→[決定or設定]ボタン
→[*]ボタンで終了
どうも、NTTの極秘らしく、調べてもあまりよくわからなかった。
一つだけ、掲載を発見。
【設定例】 外線の着信を TEN 5 の KEY 1・2・3で 昼・鳴動するように設定します。
*
→局線ボタンの 2
→ダイヤルで 10
→005
→123
→スピーカボタン
(サービスNo)(項目No)(TEN 5)(KEY 1・2・3)(確定)
[内線]ボタンで呼出中に[0]を押下すると
強制呼び出しモードになります。
2010/08/18
Windows7にSqlServer2000
タイトルの通りの作業を行う。
SqlServer EPで動いているであろうサーバのデータを
取得しなくてはならず、sqlのdumpコマンドで上手くいかなかったら
ショックなので、windows7にSqlServer2000をいれて
バックアップを取って、PostgreSqlに加工することにする。
まずは、SqlServer2000のインストールだが、
これが出てしまう。
管理者権限で実行して、無理やりインストール。
Serverとしては動かないようだが、
ローカルとしてのインストールは出来た。
あとは、稼働中のサーバにアクセスして、
バックアップとって完了。
登録:
投稿 (Atom)