期限まであと1日となってしまいましたが、できるところまで勉強します。
March 28, 2009
March 13, 2009
進捗報告 3月12日[外川大輔]
[作業内容]
・既存のデータベースを確認する
#[]中が実際に入力するコマンド.
①mysql> [show databases;]
(端末には,既存のデータベースが表示される.)
・データベースを作成する
#[]中が実際に入力するコマンド.
①mysql> [create database “データベース名”];
(端末には,下記のように表示される.)
Query OK, 1 row affected (0.00 sec)
・作業するデータベースを選択する.
#[]中が実際に入力するコマンド.
①mysql> [use “データベース名”];
(端末には,下記のように表示される.)
Database changed
・テーブルを作成する.
#[]中が実際に入力するコマンド.
①mysql> [create table “作成するテーブル名”(]
->
->“ここに処理を書く.”
->
->);
・作成したテーブルのカラムを表示する.
#[]中が実際に入力するコマンド.
①mysql> desc “作成したテーブル名”;
(端末には,作成したテーブルのカラム情報が表示される.)
次にカラムを表示した画面を示す.

[今後について]
加工したデータを利用して,分析対象を出力するSQL文を
作成したいと思います.
March 12, 2009
進捗報告 3月11日[外川大輔]
[作業内容]
・データベースサーバへのパスワード確認
データベースへの接続を行うには,パスワードが必要.
#[]中が実際に入力するコマンド.
①togawa-d@training:~$ [cd LOCAL]
(パスワードが置かれているLOCALディレクトリに移動する.)
② togawa-d@training:~/LOCAL$ [cat db_pass]
(パスワードが書かれているdb_passファイルをcatコマンドで開く.
端末には,パスワードが表示される.)
・MySQLの設定ファイルを読込む
#[]中が実際に入力するコマンド.
①togawa-d@training:~$ [pwd]
(ホームディレクトリに読込むので,今居るディレクトリを調べる.)
/home/togawa-d
② togawa-d@training:~$ [source /usr/klab/doc/kadai2/mysql_env]
(設定ファイルを読込む.)
・MySQLのバージョンを確認する.
#[]中が実際に入力するコマンド.
①togawa-d@training:~$ [mysql --version]
(端末には,MySQLのバージョンが表示される.)
/usr/klab/app/mysql/bin/mysql Ver 14.14 Distrib 5.1.31, for pc-linux-gnu (i686) using readline 5.1
・MySQLサーバへ接続する.
#[]中が実際に入力するコマンド.
①togawa-d@training:~$ [mysql -p -u togawa-d]
Enter password:
(ここで,上記で確認したパスワードを入力すると,下記のように表示される.)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 266
Server version: 5.1.31-log MySQL Community Server (GPL)
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql>
(“togawa-d@training:~$”から,“mysql>”に変化する.)
・MySQLサーバから切断する.
#[]中が実際に入力するコマンド.
①mysql> [\q]
(端末には,下記のように表示される.)
Bye
・Perlを使って,インポート用データ“ldclip_dataset_200812.csv”を
加工するスクリプトを作成する.
1)ldclip_dataset_200812.csvのバックアップを取る.
ファイルが壊れてもいいように,任意のフォルダにバックアップを作成する.
#[]内が実際に入力するコマンド.
①togawa-d@training:~$ [cp /home/togawa-d/ldclip_dataset_200812.csv /home/togawa-d/backup/]
(/home/togawa-d/backupに作成する.)
2)加工したデータを保存するファイル“ldclip_dataset_200812_out.csv”の作成.
#[]内が実際に入力するコマンド.
①togawa-d@training:~$ [vi ldclip_dataset_200812_out.csv]
(viでldclip_dataset_200812_out.csvを作成し,保存して閉じる.)
3)Perlの実行環境を確認する.
#[]内が実際に入力するコマンド.
①togawa-d@training:~$ [vi hello.pl]
(viでhello.plを作成し,下記の処理を書く.)
print “Hello\n”;
②togawa-d@training:~$ [perl hello.pl]
(実行すると,下記のように端末に表示され,正しく動作していることが分かる.)
Hello
4)加工するスクリプト“csv-change.pl”の作成.
! 【2008年のデータ】を加工する条件とした.
#[]内が実際に入力するコマンド.
①togawa-d@training:~$ [vi csv-change.pl]
(viでcsv-change.plを作成し,下記の処理を書く.)
————ここから
#!/usr/bin/perl5.8.8
#CSVファイルを加工して,条件を満たすものを出力ファイルに入れるスクリプト.
$file = “/home/togawa-d/ldclip_dataset_200812.csv”;
$outfile = “/home/togawa-d/ldclip_dataset_200812_out.csv”;
@jyouken = (’2008′);
open (IN,$file) or die “$!”;
open (OUT,”>$outfile”) or die “$!”;
while(<IN>){
#改行コードを消去する.
chomp ($_);
#各行をカンマ区切りで分割する.
@data = split(/,/, $_);
#全角,半角空白を消去する.
for($i=0; $i<@data; $i++){
$data[$i] =~ s/( | )+//g;
}
foreach $key (@jyouken){
$data[2]に$keyが含まれていれば真として,下記を実行する.
if($data[2] =~ /$key/){
print OUT “$data[0], $data[1], $data[2], $data[3]\n”;
}
}
}
close (IN);
close (OUT);
————ここまで
5)加工スクリプトを実行して,出力ファイル“ldclip_dataset_200812_out.csv”を確認する.
#[]中が実際に入力するコマンド.
①togawa-d@training:~$ [perl csv-change.pl]
(加工スクリプトを実行する.)
②togawa-d@training:~$ [head -10 ldclip_dataset_200812_out.csv]
(出力ファイルを確認する.ここでは,ファイルの先頭から10行分を出力している.
端末には,下記のように表示される.)
“189″, “http://clip.livedoor.com/”, “2008-01-0118:35:29″, “SBM”
”190″, “http://clip.livedoor.com/”, “2008-01-0207:20:15″, “”
”191″, “http://clip.livedoor.com/”, “2008-01-0215:21:39″, “”
”192″, “http://clip.livedoor.com/”, “2008-01-0719:28:34″, “livedoor”
”193″, “http://clip.livedoor.com/”, “2008-01-1123:18:01″, “”
”194″, “http://clip.livedoor.com/”, “2008-01-1818:29:30″, “”
”195″, “http://clip.livedoor.com/”, “2008-01-2317:03:49″, “livedoor”
”196″, “http://clip.livedoor.com/”, “2008-02-0313:42:21″, “?・潟・ゃ蛎KM?泣若?喉
”197″, “http://clip.livedoor.com/”, “2008-02-1220:56:11″, “”
”199″, “http://clip.livedoor.com/”, “2008-03-0817:37:49″, “”
(上記のように,2008年のデータが出力ファイルに出力されていることが分かる.)
[今後について]
ldclip_dataset_200812_out.csvを利用して,
データベースの作成,テーブルの作成を行っていこうと思います.
March 7, 2009
ProFTPDの設定と動作確認
(1)proFTPDの設定ファイルの修正
#[vi /etc/proftpd/proftpd.conf]
前回proftpd.confで[DefaultRoot ~ !wheel ]としていた文を、[DefaultRoot ~ !tomikawa-y]に書き換えました。
[DefaultRoot ~]とした場合と[DefaultRoot ~ !tomikawa-y]とした場合のディレクトリの制限の違いがどのようになるのか確かめます。
(2) ProFTPDを再起動し、設定を反映させる
#[/etc/init.d/proftpd restart]
(3)ftpコマンドで接続の確認
●[DefaultRoot ~ !tomikawa-y ]とした場合(tomikawa-yのみが他のディレクトリに移動できる)
#[ftp localhost]でログインした後、#[pwd]で現在の位置を調べます。
現在のディレクトリが/home/tomikawa-yであることが表示されるのを確認し、ftp>[cd /etc]と入力して、etcフォルダに移動できるかどうかを確かめます。

その後、再びpwdで現在の位置を確認すると、/etcが現在のディレクトリになっていることが確認できました。
![]()
●[DefaultRoot ~]の場合(ホームディレクトリから移動できない)
先ほどと同じように#[ftp localhost]でログインした後、#[pwd]でで現在の位置を調べます。現在のディレクトリは、”/ “(ルート)と表示されます。その後、ftp>[cd /etc]と入力し、etcフォルダに移動できるかどうかを確かめました。

しかしその後#[pwd]でで表示しても現在の場所が変わらなかったので、/etcへのアクセスが制限されているのが確認できました。また、ftp>[cd ../]と入力しても同じ結果になり、ホームディレクトリからの移動が制限されていることがわかりました。

(4)ProFTPDのログファイルの確認
ProFTPDのログは/var/log/proftpd/proftpd.logに保存されていることがわかりました。
#[cat /var/log/proftpd/proftpd.log]で中身を確認し、正常に動作していることを確認しました。
ここまでの作業と同時に、レポートの作成を行いましたので、グループメール宛に送信いたします。
ご確認をよろしくお願いいたします。
March 6, 2009
進捗報告 3月5日[外川大輔]
[作業内容]
・オンラインマニュアルを利用する.
コマンドmanを利用すると,コマンドのマニュアルを見ることが出来る.
#[]中が実際に入力するコマンド.
① togawa-d@training:~$[man “調べたいコマンド”]
(端末上に調べたいコマンドの意味が出る.)
・tailコマンドを利用して,アクセスログを見る.
#[]中が実際に入力するコマンド.
① togawa-d@training:~$[su -]
(rootになる.)
② training:~#[tail /var/log/apache2/access.log]
(端末上にログファイルの最後の数行が表示される.)
③ training:~#[tail -10 /var/log/apache2/access.log]
(tailコマンドの後に,“-数値”と入力すると数値分だけ表示される.)
・tailコマンドの-fオプションを使って,リアルタイムにログを監視する.
#[]中が実際に入力するコマンド.
① togawa-d@training:~$[su -]
(rootになる.)
② training:~#[tail -f /var/log/apache2/access.log]
(端末には,ログが表示されたままになる.
この状態で,Apacheの動作をチェックすると,
端末にはログが刻々と表示され,リアルタイムで監視ができる.)
③ CTRL+c を押す.
(端末には,ログが表示され続けるので,
この状態を抜けるにはCTRLキーとcを押す.)
・指定した条件のログをアクセスログとして出力しない.
デフォルト設定のままでは,アクセスログは膨大に増えていく.
そこで,画像ファイルにアクセスする際に生じる,意味を持たない
アクセスログを出力しないようにする.
! 今回指定した条件は,.gifの拡張子を持つ画像を対象とした.
#[]中が実際に入力するコマンド.
1)/etc/apache2/apache2.confの編集
① togawa-d@training:~$[su -]
(rootになる.)
② training:~#[vi /etc/apache2/apache2.conf]
(viでapache2.confを開き,iキーを押し入力モードに入る.)
LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User- Agent}i
\”" combined
LogFormat “%h %l %u %t \”%r\” %>s %b” common
LogFormat “%{Referer}i -> %U” referer
LogFormat “%{User-agent}i” agent
★SetEnvIf Request_URI “(\.gif)$” log
★CustomLog /var/log/apache2/access.log combined env=!log
ログのフォーマット設定が書かれている部分までカーソルを移動し,
下に★の2行を書き込む.
③ ESCキーを押し,[:wq]と入力してファイルを保存して閉じる.
④ training:~#[/etc/init.d/apache2 reload]
(設定ファイルを再読み込みする.)
2)/etc/apache2/sites-available/defaultの編集
① togawa-d@training:~$[su -]
(rootになる.)
② training:~#[vi /etc/apache2/sites-available/default]
(viで基本的なwebサイトの設定が書かれているdefaultを開き,
iキーを押し入力モードに入る.)
[変更前]CustomLog /var/log/apache2/access.log combined
[変更後]CustomLog /var/log/apache2/access.log combined env=!log
変更前のCustomLogを変更後のように編集する.
CustomLogを1)の設定と同じにするため.
③ ESCキーを押し,[:wq]と入力してファイルを保存して閉じる.
④ training:~#[/etc/init.d/apache2 reload]
(設定ファイルを再読み込みする.)
・.gifの画像ファイルにブラウザからアクセスした際に,
アクセスログが出力されないか確認する.
① togawa-d@training:~$[su -]
(rootになる.)
② training:~#[tail -f /var/log/apache2/access.log]
(端末を見ながら,ブラウザから.gifの画像ファイルにアクセスする.
その際に,アクセスログが出力されないか確認する.)
[今後について]
画像ファイルの拡張子が.gifにしか対応していないので,
.pngや.jpegに対応できるように改良したいと思います.
同時にレポートも書き始めたいと思います.
March 5, 2009
進捗報告 3月4日[外川大輔]
[作業内容]
・前回インストールしたApacheの画像ファイルのチェック
ブラウザから画像ファイルにアクセスした際のアクセスログを取得するために行う.
/var/www/apache2-defaultまで移動して,画像ファイルを確認する.
#[]中が実際に入力するコマンド.
① togawa-d@training:~$[pwd]
(今のディレクトリ位置を調べる.)
/home/togawa-d
② togawa-d@training:~$[cd /../..]
(1番上まで移動する.)
③ togawa-d@training:/$ pwd
(1番上まで来たか,確認する.)
/
④ togawa-d@training:/$[cd /var/www/apache2-default/]
(/var/www/apache2-default/まで移動する.)
⑤ togawa-d@training:/var/www/apache2-default$[ls]
(画像ファイルを確認する.今回,以下のように表示された.)
apache_pb.gif apache_pb22.gif apache_pb22_ani.gif
apache_pb.png apache_pb22.png index.html
・実際にブラウザから,画像ファイルを表示する.
ブラウザーのアドレスバーに,
“http://接続するホスト名/apache2-default/表示する画像名”
と入力する.
ここでは例として,apache_pb.gifにアクセスする.
次にブラウザから画像ファイルを表示した画面を示す.

・画像ファイルにアクセスしたアクセスログを確認する.
#[]中が実際に入力するコマンド.
① togawa-d@training:~$[su -]
(rootになる.)
② training:~#[cat /var/log/apache2/access.log]
(端末上に表示されたアクセスログの中に,
“GET /apache2-default/apache_pb.gif HTTP/1.1″
などのログが表示されていれば,正しくアクセスログが発生している.)
[今後について]
アクセスログの膨大化を防ぐために,上記のような意味のない画像ファイルに
アクセスしたアクセスログを取得しないように設定ファイルを書き換えようと思います.
そのためには,設定ファイルのCustomLogの部分の書換えが必要になる
と分かりました.今後はこの部分の処理を構築したいと思います.
March 4, 2009
進捗報告(memcached)2009/03/04
お疲れさまです。鈴木です。
書き込みが遅れてしまって申し訳ありませんでした。
本日の作業報告です。
- PuTTYを利用してサーバにログイン
- root権限への変更(su root)
- memcachedパッケージをインストール(#apt-get install memcached)
- memcachedの設定ファイルをviで確認(etcのディレクトリに移動後、#vi memcached.conf)
設定ファイルを確認したのですが、設定ファイルがどのような仕組みになっているのかがよくわからず、どのように記述を変更したらよいのかと途方に暮れています。
自分なりに調べてみたのですが、どうしてもうまく探し出すことができませんでした。
参考になりそうなwebページなどご存知でしたら、是非教えていただけないでしょうか。
何卒ご指導よろしくお願いいたします。
進捗報告 3月3日[外川大輔]
[作業内容]
・前回インストールしたApacheの動作確認
ウェブブラウザのアドレスバーに,“http://接続するホスト名/apache2-default/”
を入力すると,ページにIt works!の文字が表示されれば正しく動作している.
次に動作画面を示す.

・アクセスログの確認
アクセスログの確認方法を次に示す.
#[]中が実際に入力するコマンド.
① togawa-d@training:~$[su -]
(rootになる.)
② training:~#[cat /var/log/apache2/access.log]
(端末上にアクセスログが表示される.)
・自分のPCからのみアクセスされたアクセスログを確認
自分のIPアドレスを調べ,grepコマンドを利用して表示する.
#[]中が実際に入力するコマンド.
① togawa-d@training:~$[su -]
(rootになる.)
② training:~#[grep -r
"自分のマシンのIPアドレス" /var/log/apache2/access.log]
(端末上に自分のPCからのみアクセスされたアクセスログが表示される.)
! IPアドレスの調べ方
コマンドプロンプトを開き,windows osの場合は[ipconfig]と入力する.
・apache2.confの設定ファイルを書き換える前に,バックアップを取る.
#[]中が実際に入力するコマンド.
① togawa-d@training:~$[mkdir backup]
(バックアップ用のディレクトリを任意の名前で作成する.)
② togawa-d@training:~$[su -]
(rootになる.)
③ training:~#[cp /etc/apache2/apache2.conf /home/togawa-d/backup]
(バックアップ用に作成した任意のディレクトリにファイルをコピーする.)
・ログファイルにログを記録する際に,IPアドレスからホスト名に事前に変更してログ
を記録するように,apache2.confの設定ファイルを書き換える.
#[]中が実際に入力するコマンド.
① togawa-d@training:~$[su -]
(rootになる.)
② training:~#[vi /etc/apache2/apache2.conf]
(viを使って,apache2.confの中身を編集する.)
1) vi上で,[i]を入力し,テキスト入力モードに入る.
2) 167行目のHostnameLookupsディレクティブの値をOffからOnにする.
3) vi上で,ESCキーを押し,コマンド入力モードに入り, [:wq]と入力し,ファイルを保存して閉じる.
③ training:~#[cat /var/log/apache2/access.log]
(アクセスログを表示する.)
編集が正しく行われていれば,アクセスログの中にIPアドレスだけではなく,
ホスト名で表示しているログが表示される.
[今後について]
上記を通して,apache2.confの設定ファイルの基本的な編集
の流れがつかめたので,具体的なアクセスログの設定を行っていきます.
March 3, 2009
BIND9の設定(1)
(0.Emacsのインストール(直接は関係ありませんが一応書いておきます)
[% apt-get install emacs21]
設定ファイル等は特にいじっていません。)
1.パッケージの追加インストール
bind9-doc、bind9-hostを追加でインストールしました。
[% apt-get install bind9-doc bind9-host]
2.各設定ファイルのバックアップ
今回手を加えたnamed.conf、named.conf.optionsの2つのファイルのバックアップをとりました。
[% cp /etc/bind/named.conf /etc/bind/named.conf.default]
[% cp /etc/bind/named.conf.options /etc/bind/named.conf.options.default]
3.named.confの設定
BINDでメインの設定ファイルとなるのが”named.conf”というファイルです。
しかし、Debianにおいては、ローカルのドメイン解決を設定するには
“named.conf.local”というファイルにて設定を行い、このファイルを
named.confにインクルードして用いるようにしてあるようです。
今回はローカルネットワークのドメイン名解決を目標としているので
named.confの中に記述されている不要な部分
(のちにnamed.conf.localで設定する部分)をコメントアウトしました。
最初の方と最後にある【include文】、【zone “.”{・・・・};】以外の部分をコメントアウト。
include “/etc/bind/named.conf.options”;
// prime the server with knowledge of the root servers
zone “.” {
type hint;
file “/etc/bind/db.root”;
};
// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
//zone “localhost” {
// type master;
// file “/etc/bind/db.local”;
//};
//zone “127.in-addr.arpa” {
// type master;
// file “/etc/bind/db.127″;
//};
//zone “0.in-addr.arpa” {
// type master;
// file “/etc/bind/db.0″;
//};
//zone “255.in-addr.arpa” {
// type master;
// file “/etc/bind/db.255″;
//};
// zone “com” { type delegation-only; };
// zone “net” { type delegation-only; };
include “/etc/bind/named.conf.local”;
4.named.conf.optionsの設定
このファイルは、ドメイン名解決の際のオプションを設定するものです。
今回はローカルなネットワークについてなので、
同じLAN内からの問い合わせのみを受け付けるように設定しました。
options {
directory “/var/cache/bind”;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
// 以下を書き加えました。
recursion yes;
allow-recursion{
localnet;
};
allow-transfer{
none;
};
allow-query{
localnet;
};
version “DNS Server”;
};
今回はここまでを設定しました。
参考にしたページ -> http://www.net-phantom.jp/blog5/2009/01/debian-bind9dns.html
squid(プロキシサーバ) 「まとめ」
インストール(パッケージ)から設定、起動、動作確認までの流れを簡単に箇条書きで説明いたします。
- サーバにログインし、rootになる。(コマンド:su -)
- インストール(コマンド:apt-get install squid)
- 設定ファイルをviを使って開く(コマンド:vi /etc/squid/squid.conf)
- 「visible_hostname」を任意の名前に設定
- squidを立ち上げているマシン以外からもアクセスできるようにする。「acl localhost src 172.0.0.1/255.255.255.255」と記述されている下に「acl (任意の名前) (IPアドレス)/(サブネット マスク)」、「http_access allow localhost」と記述されている下に「http_access allow (任意の名前))」を追記。※IE上での設定も必要になります
- ポート番号の変更(http_port (任意のポート番号))
- squidの起動(コマンド:/etc/init.d/squid start)
- キャッシュ用のディレクトリやログファイルのための準備ができているかの確認(コマンド:cat /var/log/squid/cache.log)。「Ready to serve requests」のメッセージがあればOK。
- アクセスログの確認。適当なサイトにアクセスした後アクセスログを確認(コマンド:cat /var/log/squid/access.log)ログが残っていれば正常に動作しています。※もし他のマシンからのアクセスが受け付けられなかった場合、コマンドライン上で使えるブラウザを使い、行います。(w3mなど)
以上が最低限必要になることです。利用するメリットも記述しておきます。
クライアントからのWWWサーバへのリクエストをプロキシサーバ(squid)が代行し、一度アクセスしたWebページをサーバ上に保存します。これにより同じWebページをリクエストした際WWWサーバを経由する必要がなくなり、実質アクセス速度の向上へと繋がります。また、トラフィックの集中管理も可能となります。
「参考文献」
- squidの設定 http://squid.robata.org/index.html
- Go-net:プロキシサーバの設定 http://pc-unix.goco.ne.jp/squid1.html
- ProxyServerの構築 http://raijin.ddo.jp/pukiwiki/pukiwiki.php?ProxyServer%A4%CE%B9%BD%C3%DB
- Proxyキャッシュサーバ設定術 http://arika.org/doc/sd.200112
- Proxyサーバの設定 http://tech.ckme.co.jp/proxy.shtml
- squidメモ http://homepage1.nifty.com/Que/plamo/squid/