2011年5月28日土曜日

Win7 x64でRAMDisk + Firefox Portable 3 (完結編)

前回、前々回からの続き。ようやく完結。

Win7 x64でRAMDisk + Firefox Portable

Win7 x64でRAMDisk + Firefox Portable 2 (バッチによる同期編)



最終的には以下のバッチをログオン時とログオフ時にそれぞれ実行することに。
ドライブレターはそれぞれ
・RAMDisk R:
・Backup G:
となっている。

除外ファイル: parent.lock
除外ディレクトリ: Cache

以外は全部同期を取っている。

RAMDisk_Logon.bat:loop
ping localhost -n 30 > nul
if not exist "R:" goto loop

robocopy G:\Ramdisk\FirefoxPortable R:\FirefoxPortable /ZB /MIR /XF "parent.lock" /XD "Cache" /LOG:G:\Ramdisk\Log\LoadRAMDisk.log

ECHO ^G

ping localhost -n 60 > nul

del G:\Ramdisk\Log\SyncBackUp.log

robocopy R:\FirefoxPortable G:\Ramdisk\FirefoxPortable /ZB /MIR /XF "parent.lock" /XD"Cache" /MOT:5 /NP /NDL /R:0 /LOG+:G:\Ramdisk\Log\SyncBackUp.log


30秒待機
RAMDiskの作成チェック
前回の終了状態を復元(結果をLoadRAMDisk.logを出力)
完了したら音を鳴らす(^Gは制御コードなのでコピペできません。詳細は後述)

60秒待機
SyncBackUp.logを削除(ログオフ時にコピーされているので問題ない)
5分おきの定期差分バックアップを開始。(結果をSyncBackUp.logを出力。実行毎に追記)


RAMDisk_Logoff.batrobocopy R:\FirefoxPortable G:\Ramdisk\FirefoxPortable /ZB /MIR /XF "parent.lock" /XD "Cache" /NP /NDL /R:0 /LOG:G:\Ramdisk\Log\SaveRAMDisk.log

set day=%date:~-10,4%%date:~-5,2%%date:~-2,2%

set time2=%time: =0%
set time=%time2:~0,2%%time2:~3,2%%time2:~6,2%

copy G:\Ramdisk\Log\SyncBackUp.log G:\Ramdisk\Log\SyncBackUp_%day%_%time%.log

保存
日付を変数に入力
時間を変数に入力
SyncBackUp.logをSyncBackUp_yyMMdd_hhmmss
(ex. : SyncBackUp_20110527_132032.log)でコピー


ROBOCOPY のヘルプ
http://www.upken.jp/kb/dZGLAzWdYNuFHRHVOWWhttCMiXPmYF.html

バッチファイルで音を鳴らす方法。(^Gについて
http://0xc000013a.blog96.fc2.com/blog-entry-125.html
1.まず「ECHO 」と入力する。※エンターキーはまだです。ECHOの後ろに半角空白があります
2. Alt キーを押しながらテンキーの 7 を一回押して、それから 押しっぱなしにしていた 左 Alt キーをはなす

バッチ・ファイル中で日付をファイル名に使用する

 http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html


ちなみにログはこんな感じ。
SaveRAMDisk.log
-------------------------------------------------------------------------------
   ROBOCOPY     ::     Windows の堅牢性の高いファイル コピー                             
-------------------------------------------------------------------------------

  開始: Sat May 28 20:19:44 2011

   コピー元 : R:\FirefoxPortable\
     コピー先 : G:\Ramdisk\FirefoxPortable\

    ファイル: *.*
       
除外ファイル: parent.lock
       
 除外ディレクトリ: Cache
       
  オプション: *.* /NDL /S /E /COPY:DAT /PURGE /MIR /ZB /NP /R:0 /W:30

------------------------------------------------------------------------------

      *EXTRA File            32768    G:\Ramdisk\FirefoxPortable\Data\profile\cookies.sqlite-shm
      *EXTRA File           590288    G:\Ramdisk\FirefoxPortable\Data\profile\cookies.sqlite-wal
      *EXTRA File            32768    G:\Ramdisk\FirefoxPortable\Data\profile\places.sqlite-shm
      *EXTRA File           885416    G:\Ramdisk\FirefoxPortable\Data\profile\places.sqlite-wal
        より新しい                98304    R:\FirefoxPortable\Data\profile\cert8.db
        より新しい               524288    R:\FirefoxPortable\Data\profile\cookies.sqlite
        より新しい                16384    R:\FirefoxPortable\Data\profile\key3.db
        より新しい                 9757    R:\FirefoxPortable\Data\profile\localstore.rdf
        より新しい               10.0 m    R:\FirefoxPortable\Data\profile\places.sqlite
        より新しい                10876    R:\FirefoxPortable\Data\profile\prefs.js
        より新しい                4.2 m    R:\FirefoxPortable\Data\profile\sessionstore.js
        より新しい               45.0 m    R:\FirefoxPortable\Data\profile\urlclassifier3.sqlite
        より新しい               104199    R:\FirefoxPortable\Data\profile\adblockplus\cache.js
        より新しい               106774    R:\FirefoxPortable\Data\profile\adblockplus\patterns.ini

------------------------------------------------------------------------------

                  合計     コピー済み      スキップ       不一致        失敗    Extras
   ディレクトリ:       187         0       187         0         0         1
     ファイル:       969        10       959         0         0         4
      バイト:  107.58 m   60.06 m   47.51 m         0         0    1.46 m
       時刻:   0:00:00   0:00:00                       0:00:00   0:00:00


       速度:           503889520 バイト/秒


最初のころRobocopyがエラーで止まる現象に遭遇。
調べてみた結果、なぜかRAMDiskのファイルシステムが壊れていた。

R: プロパティ -> ツール -> エラー チェック -> ファイルシステムエラーを自動的に修復する

で、解決。

RAMDiskは壊れないと思い込んでたのでひとつ勉強。

0 件のコメント:

コメントを投稿