イーガレージ横浜通信

神奈川県横浜市から個人事業主向けにパソコン・WEBに関することをご提案。軽貨物やFXインジゲータ作成などを楽しくやってるフリーランスです。

*

AmazonDriveをバックアップ先とする ~フォルダを分割圧縮する~

   

AmazonDriveのデスクトップアプリのCPU使用率、なんとかして下さい(笑)

AmazonDriveデスクトップアプリを使わないほうがいい件については、以下に書きました。

AmazonDriveのデスクトップアプリは極力使わないほうがいい件(その1)
AmazonDriveのデスクトップアプリは極力使わないほうがいい件(その2)

1.バックアップエラーとなったファイルがわからない

さて、ファイルのバックアップ先としてAmazonDriveを採用していますが、バックアップに失敗したファイルがどのフォルダのファイルなのか、見分けがつかない時があります。
失敗したときはAmazonDriveにWEBブラウザ経由でバックアップしたときもデスクトップアプリ経由でバックアップした時も、エラーとなったファイル名は表示されるのですが、「ファイル名」しか表示されないのです。
つまり、同じファイル名が複数フォルダに存在していた場合、どのファイルがエラーとなったか、わかるすべはありません。

そのエラーもごくたまに、なら、良いのですが、これまたエラーが頻発します。
はい、バックアップ先として選定を間違えましたね、まじで。この対策にどれだけの工数を費やしていることか・・・

2.バックアップするフォルダを分割圧縮する

バックアップが目的なのに、バックアップエラーとなったファイルを見つけられないからバックアップできなかった、とかいうのはシャレにならないので、結局は、フォルダごとバックアップするように仕様を変更しました。

ただし、圧縮したファイルのサイズが巨大だと、これまたバックアップエラーとなってしまうので、分割圧縮して1つのファイルサイズを小さくして、極力エラーが発生しないようにします。
また、これならバックアップエラーが発生しても、どのファイルがエラーになったかわかるので、再試行が容易になるというわけです。

バックアップが目的なので、AmazonDriveに保存したファイルをファイル単位で閲覧することもないですし(出来たらそれはそれで便利ですけどね)。

万が一の流出を考慮して、以下の仕様を追加しました。
・パスワード付き圧縮とする
・AES-256 暗号化形式とする
・分割したファイルについて、ファイル名は独自ルールに基づき順番を変更する。これにより、単純に結合しただけではzipファイルとならないようにする。
 独自ルールの順番に戻してから結合しなければ、zipファイルとはならないわけです。

ファイルの圧縮は、7zipを使用します。

ヘルプを参照に、コマンドライン文字列を作成しました。

"C:\Program Files\7-Zip\7z.exe " a -v100m -mem=AES256 -ssw -p12345678 "D:\Amazon Drive\testarc\testarc.zip" "D:\Private"

【パラメータの説明】

パラメータ 説明
-v100m 分割するファイルのサイズは100メガバイト
-mem=AES256 AES256形式で圧縮
-ssw 圧縮対象のファイルが他のアプリで使用中でも圧縮対象とする
-p12345678 パスワードは12345678
"D:\Amazon Drive\testarc\testarc.zip"

圧縮するファイル名
分割圧縮なので実際には
testarc.zip.001
testarc.zip.002
testarc.zip.003
・・・
となる

"D:\Private" 圧縮元フォルダ名称

 

 

 

 

 

 

 

 

 

 

 

3.実行結果と注意点

実際に圧縮すると、「だいたい100MB」のファイル群が出来上がります。

ここで1つ問題がありました。
zipファイルの作成先を"D:\Amazon Drive\testarc\testarc.zip" というように、AmazonDriveとリンクしているフォルダの直下にしたのですが、これだとファイルを作成している最中にもそのファイルをバックアップしてしまうようで、同じファイルを後からまたバックアップし直していました。
これでは時間がかかるので、
・zipファイルの作成先はAmazonDriveとリンクしていないフォルダに一時的に保存する
・圧縮が終わったら、AmazonDriveとリンクしているフォルダに移動する
と変更しました。

最終的にコマンドラインは以下の通りとなりました。

まず一時保存先のフォルダの中をクリアします。
del /s /q "D:\temparc\*"

分割圧縮します。パラメータは上記とほぼ同様です。保存先のフォルダ名が違うだけです。
"C:\Program Files\7-Zip\7z.exe " a -v100m -mem=AES256 -ssw -p12345678 "D:\temparc\testarc.zip" "D:\Private"

次に、移動先のフォルダの中をクリアします。
del /s /q "D:\Amazon Drive\testarc\*"

最後に、分割圧縮してできたファイルを移動します。
move "D:\temparc\*"  "D:\Amazon Drive\testarc"

これを1つのバッチファイルにまとめ、スケジュール実行にて毎朝3時に実行するようにします。
上記処理が終了した後は、AmazonDriveデスクトップアプリが更新を検知して同期してくれます。
→無人のときにCPU使用率が上がりますので、PCの冷却には十分に気を使います。
 外付け冷却ファンは、きほん、回しっぱなしです。

バックアップエラーは相変わらず発生しますが、エラーになったファイルが分かるので、バックアップ漏れはなくなりました。
これでAmazonDriveを使ったバックアップ運用は、ひとまず安定稼働?となりました。思っていたのとは違う景色になりましたが(笑)

 

 - インフラサポート , , ,