Office365を試用中です。

エディションはbusiness premium。

主な目的は

  • オンラインにバックアップを持っときたい。
  • いくつか所有してるPCとMacにMS-Officeを導入したい。

の2点。

あとはSharepointのお勉強に使えれば良いかなと。

Office 365 Soloも検討しましたが、インストールできる台数、独自ドメインの扱いとか微妙に制限がある割に、お値段の差がそんなに無いのでbusiness premiumを選択。

てことで、オンラインバックアップにOneDrive for Businessが使えるか検討中です。

OneDrive for Businessについてはこちらがよくまとまってて良いんじゃないでしょうか。

バックアップ方法

windows7でwebclientサービスを使って、net useでwebdavに接続、robocopyでコピーという原始的な方法です。

テストでいろいろやっていましたがいくつか問題が…

windows7でwebdavするとCドライブがいっぱいになる

大量のファイルをアップロードしてたらなぜかC:ドライブがいっぱいになってしまう現象が…

リソースモニタでオープン中のファイルを見てみると、

C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp\TfsStore\Tfs_DAV

にアップロード対象のファイルがコピーされておるようです。

しかもアップロード済みのファイルも残っている様子。

C:はSSDで容量少ないんで勘弁してほしいっす。

C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp\TfsStoreからD:\Temp\Tfs_DAVにシンボリックリンクを作成してみました。

追記:

ファイル消えないのはバグらしいです。Hotfix当てたらなおったっぽいです。

ファイルサイズMax 2G制限に引っかかるとハングしたようになる

OneDrive for Businessとかいっても実態はSharePointなんでいろいろ制限があります。

中でも痛いのが1ファイル2Gまでの制限。

でかい動画とかDVDのイメージとかコピーできませんが、このあたりは追々対策するとして、

2G超えのファイルをコピーしようとすると、robocopyがハングしたようになります。

robocopyのオプションに /MAX:2000000000 をつけてみました。

たぶん/MAX:2147483648 でもいいような気がするけど、多少余裕を持たせます。

拡張子jarはアップロード出来ないっぽい

いくつかNGな拡張子(aspx, master, xap, swf, jar, asmx, ascx, xsf, and htc)があるようです。

まぁ、今回の目的では、どれも失っても痛くない拡張子っぽいのでほっときます。

一番心配していたファイル数20,000制限は同期の制限で、アップロードするには特に問題ないみたいです。

速度は遅いんで普段使いには向かないですが、最悪の事態が起きたときの備えのバックアップとしてはまぁいいんじゃないでしょうか。

べったり環境依存なバッチファイルを書いて、定期的に実行するようにします。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
set USERID=userid@office365
set PASS=password_for_user

set LOGFILE="D:\var\backup_to_onedrive.log"

set DIST_BASE=O:\
rem 除外フォルダ
set XD=/XD "D:\Users\xxxx\AppData" "c:\usr\local\adt" "C:\usr\local\eclipse" ".gem"
rem 除外ファイル
set XF=/XF "desktop*.ini" "desktop.ini" "ntuser.*"
rem robocopy Option
set OPT=/MIR /IPG:100 /R:0 /W:0 /XJ /FFT /XO /MAX:2000000000 /NP /LOG+:"%LOGFILE%" /TEE
rem                                          /MAX:2147483648


rem Tfs_DAV 無限増殖対応(パッチ当てたので不要)
rem net stop WebClient
rem set NEW_DAV_TEMP=D:\temp\Tfs_DAV
rem set ORIGIN_DAV_TEMP=C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp\TfsStore\Tfs_DAV
rem if not exist "%NEW_DAV_TEMP%" mkdir "%NEW_DAV_TEMP%"
rem del "%ORIGIN_DAV_TEMP%" /f /q
rem mklink /D "%ORIGIN_DAV_TEMP%" "%NEW_DAV_TEMP%"

rem コピー本体 net start WebClient => net stop WebClient で1セッション
rem ADDRSSはドキュメントライブラリへのアドレス。(ライブラリの設定の「Web アドレス」の"/Forms/AllItems.aspx"より前の部分

net start WebClient
set ADDRESS=https://onedriveのアドレス-my.sharepoint.com/personal/xxxxxxxxx/DocBackup
net use /delete O:
net use O: "%ADDRESS%" %PASS% /USER:%USERID%
robocopy D:\Users\xxxx %DIST_BASE%\Doc %OPT% %XF% %XD% "D:\Users\xxx\Archive"
net stop WebClient

net start WebClient
set ADDRESS=https://onedriveのアドレス-my.sharepoint.com/personal/xxxxxxxxx/Archive
net use /delete O:
net use O: "%ADDRESS%" %PASS% /USER:%USERID%
robocopy D:\Users\xxxx\Archive %DIST_BASE%\Archive %OPT% %XF% %XD%
net stop WebClient

:END

ちょっと心配なのは、初回アップロードで大量の通信した事。1週間ぐらいで180Gぐらい。

プロバイダから速度制限とかされなきゃいいんですが…やばいかなー。

追記:

net useが繋がったり繋がらなかったりする。

Troubleshooting the WebDAV Redirectorを参考に色々試すもどうも安定しない。

IEでoffice365にログイン(ログイン時に「サインインしたままにする」をON)しとくと良いみたいだけど、これだと自動化できないなー。