手順のオボエガキ
PostgreSQLのODBCドライバをインストール
OS(32bit) Excel(32bit)
32bitのPostgreSQLのODBCドライバをダウンロードしインストール
OS(64bit) Excel(64bit)
64bitのPostgreSQLのODBCドライバをダウンロードしインストール
OS(64bit) Excel(32bit)
32bitのPostgreSQLのODBCドライバをダウンロードしインストール
管理者権限でコマンドプロンプトを起動
C:\Windows\SysWOW64\odbcad32.exe を叩き起動。
32bitのODBCドライバを追加する。
Excelでの設定
データTAB→その他のデータソース→データ接続ウイザード
→ODBC DSN→PostgreSQLのデータソースを選択
適宜SQLを編集し、指定のセルにクエリ結果を表示させる。
以上
ODBC DSNで接続環境を作らないと不安定な接続となったので、
この方法を取る事。
2013/12/11
2013/08/02
windows7 シンボリックリンク
Linuxで運用中のプログラムをwindows7で走らせることになった。
内部構成でシンボリックリンクを使っていたので、
同じものを配置するか~、メンテナンス性悪いな~と思っていたら、
windowsVista以降は何とシンボリックリンクが使えるらしい。
これは助かるので、忘れ無いように残す。
コマンドラインでのみ作成可能なため、コマンドプロンプトを管理者権限で起動
◆ファイルのシンボリックリンクを作成
mklink <シンボリックリンクの名前> <リンク先パス>
◆ディレクトリのシンボリックリンクを作成
mklink /d <シンボリックリンクの名前> <リンク先パス>
2013/07/23
grep 指定ディレクトリ内のファイルの中に入っている単語の検索
追記あり
grep -i -r -n -e "検索したい単語" /検索したいディレクトリ
option
-i 大文字・小文字の区別をなくす。
-r サブディレクトリ以下も再帰的に検索する。
-n パターンに一致した行のファイル内での行番号を表示する。
-e 検索条件を指定 -e "内容" のセットで使う。
その他option
-w 指定したパターンを単語として含む行を抜き出す。
-c マッチした総行数を表示
--include='*.拡張子' 指定した拡張子を含む
--exclude='*.拡張子' 指定した拡張子を除く
応用編
ほぼ同じ。
grep -i -r -n -e "検索したい単語" /検索したいディレクトリ
option
-i 大文字・小文字の区別をなくす。
-r サブディレクトリ以下も再帰的に検索する。
-n パターンに一致した行のファイル内での行番号を表示する。
-e 検索条件を指定 -e "内容" のセットで使う。
その他option
-w 指定したパターンを単語として含む行を抜き出す。
-c マッチした総行数を表示
--include='*.拡張子' 指定した拡張子を含む
--exclude='*.拡張子' 指定した拡張子を除く
応用編
find | xargs grep -n [pattern]
入力したパターンをカレントディレクトリ以下で検索してくれる。
最初の
grep -i -r -n -e "検索したい単語" /検索したいディレクトリほぼ同じ。
今更だけど、option -e "" を忘れて
余計な時間が掛かったので、残す。
2013/07/05
findコマンド 3日前のファイルを舐めて消して、バックアップを取る
シェルスクリプトを作成
#!/bin/sh
#バックアップ シェルスクリプト
#バックアップフォルダ名は、YYYY-MM-DD-HHMMとする。
#例) 2012-01-01-0100
#crontabと連携し、日数を指定する
#2日分持つ
#ほんとはコピーとデリートのシェルスクリプトを分けた方がいい。
echo "File backup start at `date`"
days=2
# ○日前以前にアクセスされたファイルを消す。
echo "Old backup ($days days passed) delete"
find [targetFile] -atime +$days -print -exec rm -fR {} \;
# find [検索するディレクトリ] (option)
# -atime (+/-)n 最後にアクセスされたのが
# n日前のファイル・ディレクトリを検索(+n:n日以上、-n:n日以下)
# 今回は -mtime +$days としているので 設定日数変更可能。
# -print 検索結果の標準出力
# -fprint [file name] 検索結果を指定したファイルに書き出す
# -exec [command] {} \; 検索結果をコマンドに引き渡して実行
#ディレクトリレベルで個別設定し新規作成が必要な場合使用
#fdir="作成するディレクトリのフルパス"
#if [ ! -e $fdir ]
#then
# echo "create backup directory $fdir"
# mkdir $fdir
#fi
#任意のディレクトリに 2012-01-01-0100 のディレクトリを作成する。
dName=[バックアップ先のディレクトリフルパス]`date '+%Y-%m-%d-%H%M'`
echo "Copying to the BackupFile"
#バックアップ元のディレクトリを指定
#個別で指定する場合は、複数行記述する。
cp -R [バックアップ元ディレクトリフルパス] $dName
echo "DB backup end at `date`"
#!/bin/sh
#バックアップ シェルスクリプト
#バックアップフォルダ名は、YYYY-MM-DD-HHMMとする。
#例) 2012-01-01-0100
#crontabと連携し、日数を指定する
#2日分持つ
#ほんとはコピーとデリートのシェルスクリプトを分けた方がいい。
echo "File backup start at `date`"
days=2
# ○日前以前にアクセスされたファイルを消す。
echo "Old backup ($days days passed) delete"
find [targetFile] -atime +$days -print -exec rm -fR {} \;
# find [検索するディレクトリ] (option)
# -atime (+/-)n 最後にアクセスされたのが
# n日前のファイル・ディレクトリを検索(+n:n日以上、-n:n日以下)
# 今回は -mtime +$days としているので 設定日数変更可能。
# -print 検索結果の標準出力
# -fprint [file name] 検索結果を指定したファイルに書き出す
# -exec [command] {} \; 検索結果をコマンドに引き渡して実行
#ディレクトリレベルで個別設定し新規作成が必要な場合使用
#fdir="作成するディレクトリのフルパス"
#if [ ! -e $fdir ]
#then
# echo "create backup directory $fdir"
# mkdir $fdir
#fi
#任意のディレクトリに 2012-01-01-0100 のディレクトリを作成する。
dName=[バックアップ先のディレクトリフルパス]`date '+%Y-%m-%d-%H%M'`
echo "Copying to the BackupFile"
#バックアップ元のディレクトリを指定
#個別で指定する場合は、複数行記述する。
cp -R [バックアップ元ディレクトリフルパス] $dName
echo "DB backup end at `date`"
2013/06/26
php WEBシステム クエリの結果に行数を反映させたい
クエリを投げて、複数行の結果がかえってくるような検索プログラムに、
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/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も同様。
登録:
投稿 (Atom)