'-------------------------------------------------
' 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
GDDとは「Gut's Driven Development」の略です。簡単にいうとガッツ駆動方式のシステム開発です。
えぇまぁ、私の開発スタイルです。このBlogでは、そんなシステム開発の作業で発見したことを記録していきます。
(Google Developer Daysとはなんの関係ありません。)
2014年10月1日水曜日
[他]複数のWebサーバからログをコピーする
負荷分散などでWebサーバが複数台あるシステムがあります。で、トラブル発生→ログ収集だ。となった時、いちいちファイルログファイルをコピーするのは非常に面倒です。ということで、Windowsマシンなら大体動作するVBScriptで、複数のサーバからログをコピーするスクリプトを作ってみました。
ログのコピーと言っても、大量になっちゃうので、当日を含む過去4日に更新されたタイムスタンプのもの。という縛りをつけてみました。
2014年6月22日日曜日
[他]広告費を寄付しました
以前作ったAndroidアプリの広告費がPaypalへ振り込まれました。
ドル払いっていうのも一つの理由ですが、セルビアの話を聞いてそのまま振り込みました。
今回の広告費も微々たるものですが、また収益が上がったら寄付する予定です。
最近忙しくて更新が滞っています。また落ち着いた日々の疑問や発見を記録したいものです。
最近忙しくて更新が滞っています。また落ち着いた日々の疑問や発見を記録したいものです。
2014年5月24日土曜日
[他]WebAPIを疎通する
今どきのWebAPIは、Rest形式でかつGETで動作するため、ブラウザで簡単に疎通確認できます。
しかし、SOAPなどPOST形式のI/Fもあります。これを、疎通するためにアプリケーションが必要になる場合があります。 また、テスト用のHTMLを置けないケースもあるでしょう。
Windows環境において、インタフェースまでの通信経路に問題がないかを確認するためには、 VBスクリプトを使うのが気軽でよいです。でコードはこんな感じ。
しかし、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(パワーシェル)を使うんでしょうけど。。。
2014年4月20日日曜日
[他]windows8.1にADBドライバをインストールする
Windows8.1にadbドライバをインストールしようとすると、
「指定されたカタログファイルにファイルのハッシュがありません。ファイルが壊れているか、改ざんされた可能性があります。」
って出てきてドライバを設定することができません。
で、これを回避するためには、「ドライバー署名の強制を無効化」なる手続きをする必要があります。この手順がたいへんかったるいというか、google先生に聞いてもバージョンによって微妙に手順が異なり、簡単にはたどり着けません。
でも、世の中には面倒なことを2度としたくない人たちがいます。その面倒な処理をワンクリックで行ける用にしてくれるつーるがこちら。
15 seconds ADB Installer
私のマシンでは15秒かかりませんでした。。。
唯一気になるのが、どこに何がインストールされたかよくわからない点。
とはいえ、XDAの人たち。すごいですねぇ。
「指定されたカタログファイルにファイルのハッシュがありません。ファイルが壊れているか、改ざんされた可能性があります。」
って出てきてドライバを設定することができません。
で、これを回避するためには、「ドライバー署名の強制を無効化」なる手続きをする必要があります。この手順がたいへんかったるいというか、google先生に聞いてもバージョンによって微妙に手順が異なり、簡単にはたどり着けません。
でも、世の中には面倒なことを2度としたくない人たちがいます。その面倒な処理をワンクリックで行ける用にしてくれるつーるがこちら。
15 seconds ADB Installer
私のマシンでは15秒かかりませんでした。。。
唯一気になるのが、どこに何がインストールされたかよくわからない点。
とはいえ、XDAの人たち。すごいですねぇ。
2014年1月24日金曜日
[他]広告費を寄付しました
このページにある、広告(Google AdSense)の広告費が今日振り込まれました。
収益が支払可能になるまで約一年かかりました。
もらった広告費は、そのままユニセフに寄付しました。
広告費と言っても微々たるものですが、また収益が上がったら寄付する予定です。
ということで、安心して広告をクリックして下さい。
登録:
投稿 (Atom)