DOSでリモートのサーバーにディレクトリごとコピーさせる方法です。
基本的なことなにでしょうが、自分では意外とやらないので調べました。
コピー内容はHudsonのバックアップデータのコピーです。
JAVAのビルドとデプロイに使用しているので、複数のJOBとパッケージ階層の
深いJAVAのソースも含まれているので、いつくかつまずきました。
1.ファイルパスの長さに制限があるようで、メモリ不足エラーという
理解しずらいエラーでコピー処理がとまる。
2.リモートのコピーなので、マウントをはった状態のまま
うっかり再マウントさせるとマウントに失敗してコピーできない。
この2点に遭遇。
以下のページを参考に回避した。
http://www.atmarkit.co.jp/fwin2k/win2ktips/446xcopy/xcopy.html
マウントをはる場合のロジック。
存在チェックをして、アンマウントして再度マウントする。
if exist z:\. net use z: /delete
if not exist z:\. net use z: \\backupserver\backupvol
set logfile=c:\log\copyall.log
xcopy c:\usr z:\usr\ /D /S /E /H /C /Y /R >> %logfile%
ファイルフルパス 255バイト超えるとメモリ不足エラーになる。
ネットワーク越しなら、一時的にマウントって、パスを短縮させよう。
基本的なことなにでしょうが、自分では意外とやらないので調べました。
コピー内容はHudsonのバックアップデータのコピーです。
JAVAのビルドとデプロイに使用しているので、複数のJOBとパッケージ階層の
深いJAVAのソースも含まれているので、いつくかつまずきました。
1.ファイルパスの長さに制限があるようで、メモリ不足エラーという
理解しずらいエラーでコピー処理がとまる。
2.リモートのコピーなので、マウントをはった状態のまま
うっかり再マウントさせるとマウントに失敗してコピーできない。
この2点に遭遇。
以下のページを参考に回避した。
http://www.atmarkit.co.jp/fwin2k/win2ktips/446xcopy/xcopy.html
マウントをはる場合のロジック。
存在チェックをして、アンマウントして再度マウントする。
if exist z:\. net use z: /delete
if not exist z:\. net use z: \\backupserver\backupvol
set logfile=c:\log\copyall.log
xcopy c:\usr z:\usr\ /D /S /E /H /C /Y /R >> %logfile%
ファイルフルパス 255バイト超えるとメモリ不足エラーになる。
ネットワーク越しなら、一時的にマウントって、パスを短縮させよう。
OPとEDは、イメージが違うなぁ。前回がかなり気に入っていたので、
個人的には残念です。
今回は新入生は入らなそうな流れですが、そうなんですかね。
あずにゃんの先輩ぶりを見てみたいのですが。
個人的には残念です。
今回は新入生は入らなそうな流れですが、そうなんですかね。
あずにゃんの先輩ぶりを見てみたいのですが。