ラベル TOOL の投稿を表示しています。 すべての投稿を表示
ラベル TOOL の投稿を表示しています。 すべての投稿を表示

2014年10月1日水曜日

[他]複数のWebサーバからログをコピーする

負荷分散などでWebサーバが複数台あるシステムがあります。で、トラブル発生→ログ収集だ。となった時、いちいちファイルログファイルをコピーするのは非常に面倒です。ということで、Windowsマシンなら大体動作するVBScriptで、複数のサーバからログをコピーするスクリプトを作ってみました。 ログのコピーと言っても、大量になっちゃうので、当日を含む過去4日に更新されたタイムスタンプのもの。という縛りをつけてみました。

'-------------------------------------------------
' c:\temp\>cscript logcopy.vbs
'-------------------------------------------------
Option Explicit

'-------------------------------------------------
'ログ保存場所
Const COPY_DIR = ".\logs\"

'過去何日分か(過去3日分)
Dim TARGET_DATE: TARGET_DATE = DateAdd("d", -3, Date)

'-------------------------------------------------
'対象
'-------------------------------------------------
Dim WEB_SERVERS: WEB_SERVERS = Array( _
"192.168.1.1", _
"192.168.1.2", _
"192.168.1.3", _
"192.168.1.4", _
"192.168.1.5", _
"192.168.1.6")
Dim LOG_PATH: LOG_PATH = "\d$\mysystem\WebLog"


'-------------------------------------------------
'処理
'-------------------------------------------------
Call InitDir(COPY_DIR)

Dim server

' V5サーバのログコピー
For Each server In WEB_SERVERS
    Call CopyFiles(server, COPY_DIR & server, LOG_PATH)
Next


'-----------------
'ファイルコピー
'指定ディレクトリのファイルをコピーする
'-----------------
Sub CopyFiles(server, dest, targetPath)
    Dim path: path = "\\" & server & targetPath
    WScript.Echo "CopyFiles  path= " & path
    Call InitDir(dest)

    Dim objFso:Set objFso = CreateObject("Scripting.FileSystemObject")

    Dim objShell: Set objShell = CreateObject("Shell.Application")
    Dim objFolder : Set objFolder = objShell.Namespace(path)
    Dim objFolderItems: Set objFolderItems = objFolder.Items()
    Dim objItem
    Dim idx


    For idx = 0 To objFolderItems.Count - 1
        Set objItem = objFolderItems.Item(idx)

        If objItem.IsFolder = True Then
            Call CopyFiles(server, objFso.BuildPath(dest, objItem.Name), objFso.BuildPath(targetPath, objItem.Name))
        Else
           If IsCopyFile(objItem) = True Then
             Call objFso.CopyFile(objItem.path, objFso.BuildPath(dest, objItem.Name))
           End If
        End If

    Next

End Sub

'-----------------
'ファイルコピー判定
'過去N日分のファイルをコピーする
'-----------------
Function IsCopyFile(fileObj)

    If fileObj.ModifyDate >= TARGET_DATE Then
        IsCopyFile = True
    Else
        IsCopyFile = False
    End If

End Function


'-----------------
'ディレクトリがなければ作成
'-----------------
Sub InitDir(target)
    Dim objFso:Set objFso = CreateObject("Scripting.FileSystemObject")

    If objFso.FolderExists(target) = False Then
        objFso.Createfolder (target)
    End If

End Sub

2014年5月24日土曜日

[他]WebAPIを疎通する

今どきのWebAPIは、Rest形式でかつGETで動作するため、ブラウザで簡単に疎通確認できます。
 しかし、SOAPなどPOST形式のI/Fもあります。これを、疎通するためにアプリケーションが必要になる場合があります。 また、テスト用のHTMLを置けないケースもあるでしょう。
 Windows環境において、インタフェースまでの通信経路に問題がないかを確認するためには、 VBスクリプトを使うのが気軽でよいです。でコードはこんな感じ。
Dim objXML
Dim intRet
Dim strURL
Dim strKey

strURL = "http://jlp.yahooapis.jp"
strKey = "sentence=%e7%a9%ba%e5%89%8d%e7%b5%b6%e5%be%8c"

MsgBox ("url=" & strURL)

MsgBox (strKey)

Set objXML = CreateObject("MSXML2.ServerXMLHTTP")
objXML.Open "POST", strURL, False
objXML.setRequestHeader "Content-Type", " application/x-www-form-urlencoded"
objXML.setRequestHeader "Content-Length", "length"
objXML.send strKey

intRet = objXML.Status
MsgBox ("stat=" & intRet)
MsgBox (objXML.responseText)
まぁ今どきはPS(パワーシェル)を使うんでしょうけど。。。

2012年3月23日金曜日

[Android]ADT&SDK 17

今日、SDK17&ADT17がリリースされたようです。
エミュレータの高速が話題になっているみたいです。

・・・ということで早速使ってみたんですが、高速になったかといわれると?です。

2010年8月10日火曜日

[他]VS2010Expressでは、.NET Frameworkへのステップインが可能?

先日何気なく、C#2010の設定画面を見ていると、デバッグの設定で「シンボル」というのがあることに気づきました。これって、2008のときにexpressより上位のエディションに搭載された.NET Frameworkにステップインする機能では?

ということで、早速設定してみました。でデバッグしてみたんですが、ステップインしませんでした(textBox1.Refresh())。キャッシュのフォルダも空。何か条件があるのだろうか?

2010年7月6日火曜日

[他]Vista PremiumでもIISが動く?

先日修理に出していたマシンが、昨日かえって来ました。ということで、本日早速Visual Studio(Expressだけど...)をインストールしました。C#とSQLServerをインストールし、VWDをインストールしようとしてところ、「Web PI のダウンロード ページへ」なる見慣れないリンクが。。。

先に進んでいくと、「Microsoft Web Platform Installer」という機能で、さまざまなあアプリケーションを選択し、インストールすることができます。
その中に、IIS関連の項目があり、Vista Premiumのこのマシンでも選択することができたので、そのままチェックしてインストールすると、「インターネット インフォメーション サービス (IIS) マネージャ」がインストールされていました。

まだ試していませんが、IISが動作する感じがします。
もしかしらたレガシーASPも動作するかも。。。

2010年5月24日月曜日

[他]VWD2010のエディットコンティニュ

先日、Webアプリを調査する機会があったので、VWD2010でそのプロジェクトを読み込み、形式を変換。で、早速デバッグ。快適に動作しました。

デバッグ実行しながら動作確認をしていたのですが、一部環境がそろわず、仕方なくコメントアウトしようとしたのですが、「デバッガが既に実行されているプロセスにアタッチされているとき・・・」のようなメッセージが出て、エディットコンティニュできず。

で、いろいろ調べてみました。
  • web.configの設定→debug=trueになっている
  • コンパイル→デバッグモードになっている
  • コンパイルオプション→デバッグ情報を生成はFULLになっている
  • デバッガー→ASP.NETにチェックあり

よくわからずあきらめかけていると、[プロパティ]→[Web]で、「VisualStudio開発サーバを使用する」のほうには、「エディットコンティニュを有効にする」というチェックボックスがあり、開発サーバで動作するように設定してみると、エディットコンティニュが機能しました。

VWDの場合だけかもしれませんが、IISで実行するばあい、エディットコンティニュを使いたければ開発サーバを使う必要があるのだろうか。。。

2010年5月7日金曜日

[他]VS2010Expressは評価目的?

ちょっと前の話ですが、4/28にVS2010のExpressがダウンロード(Webインストール)可能になりました。
昨日気がついたのですが、今日早速ダウンロード。

とりあえずVB.NET2010のみインストールしてみました。
.NET Framework4をインストールしていなかったせいか、2回も再起動を要求されました。

インストールも終わり、起動してみると、スプラッシュウインドウに「評価目的に限ります」の表示が。。。
2008までは商用利用も可能だったのに。と愕然としました。
が、調べてみるとライセンス登録すると、該当の表示は消えるようです。いやーコレで、2008から2010に乗り換えようかなぁという気になりました。

2010年2月1日月曜日

[TOOL]Home Edition(IISの動作しないOSで)ASP.NETの動作確認をする方法

2年ほど前、とくに何も考えず、VistaのPremiumを買ったこともあり、うちのマシンではIISが動きません。
まぁ家でWeb系の開発したければVWD使えば良いし。と思っていたのですが、単に動作だけを見たいときに、VWDを起動するのが億劫になるんですよねぇ。
で、調べてみると、VWD搭載されている開発サーバを単独で動作させる方法が紹介されていました。
VS 2005やIISを使用せずにWebアプリケーションを実行するには
これは2005の例ですが、2008で同様のことができます(2008ではWebDev.WebServer.exeの格納されているフォルダが異なります)。
 

2010年1月27日水曜日

[TOOL]C#のデバッグ終了が遅い

いつからかわかりませんが、Visual C#のデバッグが終了するのが異常におそく、デバッグするのが億劫になっていました。
会社ではこんなこと無いので、ちょっと調べてみると、
[ツール]→[オプション]→[環境]→コンテンツをダウンロードする間隔(D)をオフにするとOK。的な情報を見つけました。で設定変更してみるとすいーっと終わるようになります。チョー快適。

ファイル更新後の保存時 (Ctrl+Sなど) にCPU使用率が最大となり、しばらく操作不能となる 」とか「Visual Studio 2008でデバッグ終了後、編集可能になるまでに時間がかかる場合は?」に詳細が記載されています。

2010年1月26日火曜日

[TOOL]Spy++っぽいツール

先日、Visual Studioに付属のSpy++が使いたい用件がありました。しかし、ライセンスの都合上ExpressEditionを使っていたため、Spy++が付属していません。
途方にくれていると、UISpyなるツールがWindowsSDKに付いているとの情報をキャッチ。SDKはインストール済みなので、早速インストールフォルダを確認してみると、それらしいツールはありませんでした。

で、情報を探してみると、SDKでも↓のバージョンじゃないと入っていないらしいとのこと。

Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1

現在、確認中。

2009年12月30日水曜日

[他]イミディエイトウインドの強力な使い方

VisualStudioのデバッグ時に各変数の値を見る場合、

  1. マウスポインタを当てて、内容を見る
  2. ウォッチウィンドウで内容を見る
  3. ローカルウィンドウで内容を見る
  4. イミディエイトウィンドウで、?を入力した後、変数名を入力する
  5. クイックウォッチを使う

のいづれかを使用すると思います。これらはプライベート変数を見ることもできます。

しかし、メソッドを実行したい場合は、おそらくイミディエイトウィンドウを使うことになります。
で、今日気づいたのですが、このイミディエイトウィンドウはなんとプライベートメソッドを呼び出すことができるのです!!。知りませんでした。

イミディエイトウィンドウでは、インテリセンスの機能があるので、普段は入力しないのですが、たまたまインテリセンスがうまく動かなくなって、偶然コピペしたら動作したので、びっくりしちゃいました。

2009年9月8日火曜日

[他]VB.NETとC#のプロジェクトを混在させる(Express Edition)

#なぜ混在かアレですが。。。
いまかかわっている仕事では、C#/VB.NETと言語が混在するプロジェクトになっています。

それを解析・再構成する。ということでまだ調査段階のため、ツール類(製品版のVisual Studio)を導入することができない状態です。
で、ソース解析といってもエディタだけではしんどいので、とりあえず、C#/VB.NETのExpress Edhitionで開けるように調整しメソッドの呼び出し関係を簡単に開く(F12)することができるようになりました。
しかし、VB⇔C#の相互関係をF12で行き来することができないのでメンドクサイですが、そこは別々に調査していました。

ある日、VWDは両方の言語が使える環境であるため、もしかしたらソリューションに全部を統合できるかも。
と思ってやってみたらできちゃいました。
ほとんどが画面を持たないライブラリアプリケーションであったこともありますが、フリーでここまでの環境が作れるとは。。。いい時代になりました。

2009年9月4日金曜日

[他]Visual C#とVisual Web Developerのキーバインド

Visual C#では[F6]キーがビルドです、そのつもりでVWD(Visual Web Developer)で[F6]キーを押下すると無反応。VWDのビルドは[CTRL+B]なんです。
Visual C#でも[CTRL+B]でビルドできますが、指が[F6]になれちゃっているんです。

キーバインドは変更できるのですが、同じ系列のツールなのになんで違うんだろう?
ふしぎですねぇ。

2009年5月18日月曜日

[他]Windows Updateでの.NET Frameworkのインストール

先日、w2kマシンの再セットアップ後、Windows Update中にマシンが再起動してしまいました。
どうも、.NET Framework系のセットアップ中だったらしく、その後、何度Windows Updateを実施しても、エラーが発生し、正常終了しなくなってしまいました。

で、Windows Updateの結果画面に表示された「エラー コード: 0x66A」というメッセージを頼りに検索してみると、「Automated cleanup tool to remove the .NET Framework 1.0, 1.1, 2.0, 3.0 and 3.5」というツールが存在することがわかりました。

.NET Frameworkのバージョンを指定して削除することができるようなのですが、この際なので、全削除してインストール。うまくいきました。

2009年5月2日土曜日

[他]MSProjectのViewerが。。。

最近かかわっているプロジェクトではMSProjectを使用してプロジェクトを管理しています。
しかし、管理者のみソフトをインストールしており、他のメンバーまでライセンスが行き届きません。そのため開発メンバーは見ることができません。

で、VisioやExcelのようにViewerがあるだろうと思って探していましたが、コレが見つかりません。おそらく無いと思われます(2009.4時点)。
PDFにしておいてありますが、1週間前の情報をおかれても。。。というのがあります。でいろいろ調べて変わりに見つけたのがOpenProjです。

見た目はほとんどMSProjectで、印刷もできます。しかし、印刷は思うようなページレイアウトにすることができませんでした。
やる方法はあると思いますので、発見したらその辺まとめたいと思います。

2009年4月28日火曜日

[SQL]SQL Server パフォーマンスの向上

最近SQLServerのパフォーマンスについて調査しました。
パフォーマンスの悪い処理があって、改善をするためにパフォーマンス計測をしました、計測のの結果、ほとんどの処理がSQLということがわかりました。
調べてみると、検索対象のテーブルはデータ件数が200万件あることがわかりました。そして、インデックスを使わない検索処理があり、これが処理時間の大半を占めていました。
コレが原因となり、とある処理が3時間くらいかかっていました。

で、特定の項目にインデックスを設定すると、パフォーマンスが10強にまでアップしました。
そのときに参考にしたのが、SQL Server パフォーマンスの向上です。

結構読み応えがあります。

また「チェックリスト: SQL Server パフォーマンス」というのもあります。時々コレを見て見直しをするのもいいかもしれませんね。

2009年3月12日木曜日

[他]SQLServer2008 Express用 SMS (その2)

GDD Blog: [他]SQLServer2008 Express用 SMSでは「Microsoft® SQL Server® 2008 Express with Tools」からインストールする方法を紹介しましたが、今日偶然Microsoft SQL Server 2008 Management Studio Expressが単品でダウンロードできることを知りましたので、備忘録としてメモ。

2009年3月9日月曜日

[.NET]CLR プロファイラ

.NETアプリケーションはJavaVMと同じように、メモリ管理を自動的に行います。
しかし、メモリリークやメモリの利用効率が悪い場合など調査するを知りませんでした。先日某掲示板を見ていると、CLR プロファイラなるツールが紹介されていました。備忘録としてメモ。

2009年2月10日火曜日

[他]オブジェクトブラウザ

先日、WSHでとあるActiveXの動作を確認しようと思ったのですが、資料も何も無く途方にくれていました。
で、とりあえずActiveXのクラス?からインタフェースを見ることのできる、オブジェクトブラウザを思い出しました。

しかし、エディタとOfficeくらいしか入っていないマシンのため、開発ツールは何もありません。
VBやVisual Studioなどの開発環境をインストールしていないとオブジェクトブラウザは。。。と思っていたら、ExcelなどのVBAの動作する環境についている。という情報があり、ExcelのVBA環境を見てみると、オブジェクトブラウザの起動ボタンがありました。

起動すると、該当のActiveXのメソッドやプロパティを見ることができました。
そのおかげで、どのようなインタフェースがあるのかということがわかり、ソレらしくプロパティを設定してやると動作しました。

いやー思い込みのせいで、わかりませんと回答するところでしたが、結果が出せてほっとしました。

2009年1月7日水曜日

[.NET]コマンドラインから一気にビルドする

.NET Frameworkに存在するコマンドで、VS.NETのソリューションを指定してビルドすることができます。
複数のプロジェクトやバッチでビルドしたい場合、VS.NETを起動しなくてもビルドすることができちゃいます。.NET Framework2.0系での書き方はこんなかんじ。

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild abc.sln

・・・もしかするとVS.NETが無くてもビルドできる?のかも(未検証)