忍者ブログ
経験ゼロからプロのSEを目指しているさまを書きなぐり★
| Admin | Res |
<< 03  2025/04  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30    05 >>
[1]  [2]  [3]  [4
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

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
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
送信したい時間が書かれたファイルを読み込み、
現在よりも過去の時間であればファイル内のデータをメールで送信するというスクリプトを作成しました。

同期が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)
なんてすばらしい関数なんでしょう。

配列の要素すべて出力してくれる
デバックに最適な関数ですね!!!
読込権がないときファイルの参照ができなくて、
書込権がないときファイルの削除ができないんですよね?


今作っているプログラムのテストをするために
「こうやったらエラー文ログ出力」
って項目作ってたんだけど、

削除失敗させる方法がわかんなかったから
『読書込権をなくす。
以下のコマンド実行

#chmod a-rw XXXXXXX』
みたいな項目作っておいた。

超アバウト(笑)

室長も
「あーうん。
そのエラー出力が出ればいいよ。
もう000にしちゃってもいいから。」

とのことw

全権限なくせばそりゃ削除も失敗するわな~。



最近開発ばっかで楽しかったけど、
来月から配属が変わります。

怖い~。
もうサーバ弄りは極力避けたいよー!!!
前のページ     HOME     次のページ
カウンター
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
プロフィール
HN:
HP:
性別:
女性
職業:
SE見習いPG
趣味:
映画鑑賞
自己紹介:

最近デンパになりつつあります。




普段は映画観るか、音楽聴いてます。
ブログ内検索
ランキング

ランキング登録中~。
1日1クリックお願いしますっ!!
オススメ★

Powered by Ninja Blog    Material by mococo    Template by Temp* factory
Copyright (c)お仕事ニッキ。 All Rights Reserved.


忍者ブログ [PR]