FrontPage
このページは自作したスクリプトやツールを研究室内で共有するために,
ソースコードの公開およびマニュアルの作成を行います.
svnsyncを1時間ごとに実行するためのツール†
- このツールはsvnsyncをapache software foundationに対して行うとアクセスを止められてしまうので、1時間ごとにsvnsyncを行います。時間やディレクトリ名は適宜変えてください。
- svnリポジトリを作成するディレクトリに移動し、svnリポジトリを初期化
- svnadmin create [ディレクトリ名:test]
- リポジトリの hooks/pre-revprop-change.bat を作成し編集する。
- svnsync init でリポジトリを初期化する。
- scriptフォルダをダウンロードし、batファイルを編集を行う。
- ダウンロード先:
script.zip
- loop.barの編集
- 2行目:繰り返しの回数を決める(例:70→70*2時間=140時間)
- 4行目:scriptフォルダを配置しているディレクトリに変更する
- 6行目:待ち時間を指定する(例:3600秒)
- exe_svnsync.batの編集
- 2行目:svnリポジトリが配置されているドライブに移動する
- 3行目(svnを途中でやめるとロックがかかるので、ロックをはずすための処理):file:///以下を適宜編集する
- 4行目:svnsyncを実行する時間を決め、file:///以下を編集する。
- ※runfor 2500 以上は動きませんので処理を分けてください。
runfor.exe
BTSを用いたデータの取得†
- 準備
- 任意のプロジェクトのBTSサービス(Bugzilla等)にアクセスする.
- 一度Internet Explorerのcookieの削除を行う.
- そして,ログインをするとcookieには純粋なログイン情報が記録されるため,それを用いて接続を行う.
- IEのcookieを抽出する.
- 今回扱うプロジェクトのBTSMainPageの「Search」のボックスにてきとうな値を入力してみると,入力した番号のバグが表示される.これを大きくしながらおおよそ何件目までバグが存在するのか確認しておく.
- フォルダの構成
GetBugData_1.zip
- 新規に作成する場合は,上記を活用するとよいが,設定を一からする必要があるため,既存のフォルダを再利用することを推奨する.
- フォルダ名は,「GetBugData_(プロジェクト名)」とする.
- 「GetBugData_(プロジェクト名)」フォルダの中にある,「GetHTML」フォルダに準備段階で抽出したcookieを移動する.
- (補足)フォルダを再利用した場合は,MoveScriptフォルダのMoveScript.pl内の$Project='プロジェクト名';を書き換えてからMoveScript.plを実行し,生成されたMoveScript.batを
CreateTeratermMacroフォルダ******************************
- ファイルの編集
- 「GetHTML」フォルダの中にある,「GetBugHTML.pl」をテキストエディタで開く.これは,Linuxで扱うシェルファイルを生成する.
- コメントアウトされた「入力」の下にある行を「my $Project = 'プロジェクト名';」とする.
- 同様に「my $URL = '(プロジェクトのBTSのURL)'」とする.これが今回アクセスするURLとなる.
- また,その下部の「my $Min = X;」,「my $Max = Y;」は取得するバグの個数を表し,X=0, Y=2としたときは,1件目から20000件までのバグを取得すると言った意味になる.新規プロジェクトを扱う場合は,準備段階で確認したバグ件数が収まる値を設定しておくとよい.
- main部のfor文の二重ループ内部にある,「print OUTFILE join('',"wget --no-check-certificate --load-cookies=cookies.txt ".$URL."show_bug.cgi?ctype=xml&id=".($j+1)."\n");」の行では,「$URL."show_bug.cgi?ctype=xml&id=".($j+1).」の部分で指定したURLのページの情報をwgetコマンドを用いて取得することを意味している.
途中です!!!!
以下は簡略化した手順
- 対象プロジェクトのBugzillaやJillaのサイトのクッキーを取ってくる
(外部資料参照=> IE8 Cookieの保存方法等
- GetBugData_???ファイルを用意する
フォルダ名末尾は取得するプロジェクト名にする
ファイル内容)
Account
ChangeFileNameCreateTeratermMacro
GetHTML
MoveScript
SearchLostHTML
- GetHTML内のファイルを書き換え
- GetActHTML.plと
GetBugHTML.plの,$Project,$URL,$Min,$Maxを書き換えて,実行
- wgetするための.shファイルが沢山作られる
- MoveScript内のファイルを書き換え
- MoveScript.plの,$Project,$Min,$Maxを書き換えて,実行
- MoveScript.batファイルが一つ作られる
- クッキーと4.で生成したファイルをGetHTMLフォルダに移動
- MoveScript.batを実行する
結果.shファイルとクッキーが纏められたフォルダが沢山作られる
- VMを起動する
- VM端末上にフォルダを新規作成する
フォルダ名は対象プロジェクトと同じ名前にしておく
- 上で作ったVM端末上のフォルダに6.で作った.shとクッキーを纏めた沢山のフォルダを移動
移動方法は何でもでも良い
※移動時に文字コード等の変換が起こることがあるので注意する
Winscpの場合はちゃんと設定を変えておく
〜ここからはTera Termの話〜
- CreateTeraTermMacro内のファイルを書き換える
- ServerList.txtに
バグを取得する端末名
ヒストリーを取得する端末名だけを書く
例)oss1とoss2で取得する場合
oss1
oss2
- CreateTeratermMacro,plを書き換える
$WinDirectoryPath=’???’ にTera Termのマクロがあるディレクトリを書く(多分S棟のWindows上)
$MacDirectoryPath=’???’ に8.でVM端末上に作ったフォルダがあるディレクトリを書く
$Project='???' に対象プロジェクト名を書く
$UserNameと,$Passwordにデータを取得するVM端末のログイン情報を書く
- CreateTeratermMacro,plを書き換える(必要がある場合)
スクリプト中に二箇所
”connect '$Server[$k].?????.wakayama-u.ac.jp:22 ”
みたいなことが書かれている部分があるが
ここはVM端末のアドレスを指定するので必要があれば書き換えるようにする
(多分,?????の部分をcreaかflossに書き換える)
- CreateTeratermMacro,plを実行する
ExecMacro.batと,「端末名」.ttlファイル(複数のTeraTermマクロ)が作られる
- 生成した,「端末名」.ttlファイルをダブルクリックして実行する
データ収集が開始される
- TeraTermの動作を確認する
取得できたデータに問題が無いかも確認する
- 問題がなければ放置する おつかれさまでした