経験ゼロからプロのSEを目指しているさまを書きなぐり★
Perlでデータベース参照
★サンプル
view_database.pl
#!/usr/bin/perl
use strict;
use BerkeleyDB;
my $database = "test.db";
my (%db_hash, $key, $value);
tie %db_hash, 'BerkeleyDB::Btree',
-Filename => $database,
-Flags => DB_RDONLY
or die "Cannot open $database: $!\n";
while (($key, $value) = each %db_hash) {
print "$key,$value\n";
}
untie %db_hash;
ほぼ
http://takusato.net/article/bdb_oboegaki.html
こちらからいただきました。
実行はふつーに。
$ perl view_database.pl
★サンプル
view_database.pl
#!/usr/bin/perl
use strict;
use BerkeleyDB;
my $database = "test.db";
my (%db_hash, $key, $value);
tie %db_hash, 'BerkeleyDB::Btree',
-Filename => $database,
-Flags => DB_RDONLY
or die "Cannot open $database: $!\n";
while (($key, $value) = each %db_hash) {
print "$key,$value\n";
}
untie %db_hash;
ほぼ
http://takusato.net/article/bdb_oboegaki.html
こちらからいただきました。
実行はふつーに。
$ perl view_database.pl
PR
Perlによるデータベース作成。
★サンプル
create_database.pl
#!/usr/bin/perl
use strict;
use BerkeleyDB;
my $database = "test.db";
my %db_hash;
tie %db_hash, 'BerkeleyDB::Btree',
-Filename => $database,
-Flags => DB_CREATE | DB_TRUNCATE,
-Mode => 0664
or die "Cannot open $database: $!\n";
while (<>) {
chomp;
my ($key, $value) = split(/\,/);
$db_hash{$key} = $value;
}
untie %db_hash;
ほぼ
http://takusato.net/article/bdb_oboegaki.html
こちらからいただきました。
実行するにはまずデータファイルを作成します。
ファイル名は任意
#Sample#
test.data
1,aaaaa
2,bbbbb
3,ccccc
4,ddddd
こんな感じのを作る。
キーとデータの間は「,」カンマで区切る。
実行↓
$ perl create_database.pl < test.data
★サンプル
create_database.pl
#!/usr/bin/perl
use strict;
use BerkeleyDB;
my $database = "test.db";
my %db_hash;
tie %db_hash, 'BerkeleyDB::Btree',
-Filename => $database,
-Flags => DB_CREATE | DB_TRUNCATE,
-Mode => 0664
or die "Cannot open $database: $!\n";
while (<>) {
chomp;
my ($key, $value) = split(/\,/);
$db_hash{$key} = $value;
}
untie %db_hash;
ほぼ
http://takusato.net/article/bdb_oboegaki.html
こちらからいただきました。
実行するにはまずデータファイルを作成します。
ファイル名は任意
#Sample#
test.data
1,aaaaa
2,bbbbb
3,ccccc
4,ddddd
こんな感じのを作る。
キーとデータの間は「,」カンマで区切る。
実行↓
$ perl create_database.pl < test.data
送信したい時間が書かれたファイルを読み込み、
現在よりも過去の時間であればファイル内のデータをメールで送信するというスクリプトを作成しました。
同期がw
それをcronで10分毎に起動させてくれと言われ、
crontabをいじる。
結局LDAPに1万人ユーザ登録し、
そのユーザにメールを送信するようにした。
各ユーザ宛のメールはすべてひとつのディレクトリ下に届くようになっているので、
そのファイル数見れば届いたかどうかが確認できるのだが、
昨日、
ログ見ながら送信状況見てたので、
おかしな点は確認しようと思えばできました。
今日、
コード修正もしたし、
もう一回テストしようか。ということに。
「今からコマンドラインでスクリプト実行して良いですか?」
と聞いたら
「いや、念のためcronでやろう。21時ぐらいに起動させて。」
えーーーーーーーー。
昨日までは起動開始を見守ることができたが、
自分の帰宅後起動なんて怖すぎる。。。
crontabに21時起動を設定するも
自信なさすぎて周りにも確認してもらう。
たぶんこれ書いてる時にはもう送信終わってると思うけど、
明日ちゃんと届いているか確認するのが怖いわー。。。
現在よりも過去の時間であればファイル内のデータをメールで送信するというスクリプトを作成しました。
同期がw
それをcronで10分毎に起動させてくれと言われ、
crontabをいじる。
結局LDAPに1万人ユーザ登録し、
そのユーザにメールを送信するようにした。
各ユーザ宛のメールはすべてひとつのディレクトリ下に届くようになっているので、
そのファイル数見れば届いたかどうかが確認できるのだが、
昨日、
ログ見ながら送信状況見てたので、
おかしな点は確認しようと思えばできました。
今日、
コード修正もしたし、
もう一回テストしようか。ということに。
「今からコマンドラインでスクリプト実行して良いですか?」
と聞いたら
「いや、念のためcronでやろう。21時ぐらいに起動させて。」
えーーーーーーーー。
昨日までは起動開始を見守ることができたが、
自分の帰宅後起動なんて怖すぎる。。。
crontabに21時起動を設定するも
自信なさすぎて周りにも確認してもらう。
たぶんこれ書いてる時にはもう送信終わってると思うけど、
明日ちゃんと届いているか確認するのが怖いわー。。。
今PHPで開発中。。。
連想配列って難しい。
簡単なのを書くと、
↓こんな感じなんだけど。
<?php
$array = array('id' => '1',
'phone' => 'docomo',
'address' => 'aaa@docomo.ne.jp');
var_dump($array);
?>
$arrayのidは1とかそんなもんなんですが、
一応出力結果↓
array(3) {
["id"]=>
string(1) "1"
["phone"]=>
string(6) "docomo"
["address"]=>
string(16) "aaa@docomo.ne.jp"
}
この配列がまたほかの配列に格納とかなるとさらにややこしい。
多次元配列って言うんでしょうか??
<?php
$array[] = array('id' => '1',
'phone' => 'docomo',
'address' => 'aaa@docomo.ne.jp');
$array[] = array('id' => '3',
'phone' => 'au',
'address' => 'bbb@ezweb.ne.jp');
$array[] = array('id' => '8',
'phone' => 'softbank',
'address' => 'ccc@softbank.ne.jp');
var_dump($array);
?>
arrayって配列の0~2番目の要素にさらに配列が入ってるんですが。。。
出力結果↓
array(3) {
[0]=>
array(3) {
["id"]=>
string(1) "1"
["phone"]=>
string(6) "docomo"
["address"]=>
string(16) "aaa@docomo.ne.jp"
}
[1]=>
array(3) {
["id"]=>
string(1) "3"
["phone"]=>
string(2) "au"
["address"]=>
string(15) "bbb@ezweb.ne.jp"
}
[2]=>
array(3) {
["id"]=>
string(1) "8"
["phone"]=>
string(8) "softbank"
["address"]=>
string(18) "ccc@softbank.ne.jp"
}
}
今回これをidで降順に出力したくて、
rsort使ってもうまくいかなかったんです。
rsort($array);
一応追加。
んで出力↓
array(3) {
[0]=>
array(3) {
["id"]=>
string(1) "8"
["phone"]=>
string(8) "softbank"
["address"]=>
string(18) "ccc@softbank.ne.jp"
}
[1]=>
array(3) {
["id"]=>
string(1) "3"
["phone"]=>
string(2) "au"
["address"]=>
string(15) "bbb@ezweb.ne.jp"
}
[2]=>
array(3) {
["id"]=>
string(1) "1"
["phone"]=>
string(6) "docomo"
["address"]=>
string(16) "aaa@docomo.ne.jp"
}
}
あれー!?
できてるよ!!
なんで?
これはここに書くように作ったテストプログラムなんだけど、
実際に作ったやつは要素に何個も数値が含まれていたからかな~??
要素を指定してsortって出来るんでしょうか??
実際のプログラムは
1からの数字(欠番あり)をまずいったん配列に格納しているので、
その配列にrsortをかけ、
連想配列(多次元配列?)に格納することにしました。
あー疲れるね。
ずっとperlで開発やってたからPHPにいきなり変わると戸惑うことばっかだょ。。。
しかしPHP!
var_dump(ARRAY)
なんてすばらしい関数なんでしょう。
配列の要素すべて出力してくれる
デバックに最適な関数ですね!!!
連想配列って難しい。
簡単なのを書くと、
↓こんな感じなんだけど。
<?php
$array = array('id' => '1',
'phone' => 'docomo',
'address' => 'aaa@docomo.ne.jp');
var_dump($array);
?>
$arrayのidは1とかそんなもんなんですが、
一応出力結果↓
array(3) {
["id"]=>
string(1) "1"
["phone"]=>
string(6) "docomo"
["address"]=>
string(16) "aaa@docomo.ne.jp"
}
この配列がまたほかの配列に格納とかなるとさらにややこしい。
多次元配列って言うんでしょうか??
<?php
$array[] = array('id' => '1',
'phone' => 'docomo',
'address' => 'aaa@docomo.ne.jp');
$array[] = array('id' => '3',
'phone' => 'au',
'address' => 'bbb@ezweb.ne.jp');
$array[] = array('id' => '8',
'phone' => 'softbank',
'address' => 'ccc@softbank.ne.jp');
var_dump($array);
?>
arrayって配列の0~2番目の要素にさらに配列が入ってるんですが。。。
出力結果↓
array(3) {
[0]=>
array(3) {
["id"]=>
string(1) "1"
["phone"]=>
string(6) "docomo"
["address"]=>
string(16) "aaa@docomo.ne.jp"
}
[1]=>
array(3) {
["id"]=>
string(1) "3"
["phone"]=>
string(2) "au"
["address"]=>
string(15) "bbb@ezweb.ne.jp"
}
[2]=>
array(3) {
["id"]=>
string(1) "8"
["phone"]=>
string(8) "softbank"
["address"]=>
string(18) "ccc@softbank.ne.jp"
}
}
今回これをidで降順に出力したくて、
rsort使ってもうまくいかなかったんです。
rsort($array);
一応追加。
んで出力↓
array(3) {
[0]=>
array(3) {
["id"]=>
string(1) "8"
["phone"]=>
string(8) "softbank"
["address"]=>
string(18) "ccc@softbank.ne.jp"
}
[1]=>
array(3) {
["id"]=>
string(1) "3"
["phone"]=>
string(2) "au"
["address"]=>
string(15) "bbb@ezweb.ne.jp"
}
[2]=>
array(3) {
["id"]=>
string(1) "1"
["phone"]=>
string(6) "docomo"
["address"]=>
string(16) "aaa@docomo.ne.jp"
}
}
あれー!?
できてるよ!!
なんで?
これはここに書くように作ったテストプログラムなんだけど、
実際に作ったやつは要素に何個も数値が含まれていたからかな~??
要素を指定してsortって出来るんでしょうか??
実際のプログラムは
1からの数字(欠番あり)をまずいったん配列に格納しているので、
その配列にrsortをかけ、
連想配列(多次元配列?)に格納することにしました。
あー疲れるね。
ずっとperlで開発やってたからPHPにいきなり変わると戸惑うことばっかだょ。。。
しかしPHP!
var_dump(ARRAY)
なんてすばらしい関数なんでしょう。
配列の要素すべて出力してくれる
デバックに最適な関数ですね!!!
読込権がないときファイルの参照ができなくて、
書込権がないときファイルの削除ができないんですよね?
今作っているプログラムのテストをするために
「こうやったらエラー文ログ出力」
って項目作ってたんだけど、
削除失敗させる方法がわかんなかったから
『読書込権をなくす。
以下のコマンド実行
#chmod a-rw XXXXXXX』
みたいな項目作っておいた。
超アバウト(笑)
室長も
「あーうん。
そのエラー出力が出ればいいよ。
もう000にしちゃってもいいから。」
とのことw
全権限なくせばそりゃ削除も失敗するわな~。
最近開発ばっかで楽しかったけど、
来月から配属が変わります。
怖い~。
もうサーバ弄りは極力避けたいよー!!!
書込権がないときファイルの削除ができないんですよね?
今作っているプログラムのテストをするために
「こうやったらエラー文ログ出力」
って項目作ってたんだけど、
削除失敗させる方法がわかんなかったから
『読書込権をなくす。
以下のコマンド実行
#chmod a-rw XXXXXXX』
みたいな項目作っておいた。
超アバウト(笑)
室長も
「あーうん。
そのエラー出力が出ればいいよ。
もう000にしちゃってもいいから。」
とのことw
全権限なくせばそりゃ削除も失敗するわな~。
最近開発ばっかで楽しかったけど、
来月から配属が変わります。
怖い~。
もうサーバ弄りは極力避けたいよー!!!