人に聞けない痔の悩み、これでスッキリ >>

ファイルサーバー(マスター)のデータを、ファイルサーバ(バックアップ)に
ネットワーク経由でコピーしようとしています。

コピーのコマンドを実行するのは、同じネットワーク内に設置している
クライアントPC(Windows8.1)からです。

この場合、処理の命令はクライアントPCから行いますが、データの流れとしては
以下のような認識で正しいでしょうか?

■想定しているデータの流れ
ファイルサーバー(マスター) → ファイルサーバー(バックアップ)

■想定していないデータの流れ
ファイルサーバー(マスター) → クライアントPC →ファイルサーバー(バックアップ)

前者の動きをすると考えているのですが、気になっている点としては、
クライアントPCをシャットダウンしたり、コピーのコマンドを停止すると
処理が止まるため、もしかすると後者の動きが正しいのでは、と考えた次第です。

また、ファイルサーバはバッファロー社のNASを使用しております。


クライアントPCのHDDがSSDのため、極力負荷をかけたくないという考えがあり
上記の質問をいたしました。
お手数ですが、お教え頂けますと幸いです。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

コピーするプログラムの内部動作としてクライアントPCのメモリー上に読み込んだデータを展開してバックアップに書き込みますので、後者の動きです。

実メモリー内に展開できない場合は仮想記憶としてHDD(この場合はSSD)も利用します。

前者の動きをするためには、マスターのサーバーに対して「バックアップに書き込め」という動作をさせないとだめです。


ところで、SSDの寿命をきにされているのでしたら、現行製品でしたら気にしなくても良いレベルですよ。
    • good
    • 0
この回答へのお礼

早速のご返信ありがとうございます。

クライアント上からデータコピーの命令を行った場合、
サーバ→サーバへのコピーでもクライアントを経由するんですね。

クライアントのメモリで読み込み、不足分は仮想メモリ(HDD)を
使用することと理解しました。

データの流れ的に前者の方が無駄がないと思うのですが、
クライアントから処理を行う上での仕様なのでしょうね。

やはり目的を達成するにはサーバーから命令を発する必要がありそうですが、
そもそもSSDの寿命は心配する程でないということに安心しました。
(データがTB単位の大容量のため、データ書き換えによる消耗を気にしていました)

お礼日時:2014/08/17 16:55

>FTPサービスを使ってアップロードすれば、クライアントPCを経由して


>データが流れることはないんですね。大変勉強になりました。

微妙に違います。
ftpクライアントがサーバー間転送をサポートしている必要がありますし(ffftpなどはサポートしてなかったはず)
ftpサーバー側でも、それを許可している必要があります。

またサーバー間転送ですのでアップロード・ダウンロードというのも用語としては不適当な気がします。
    • good
    • 0
この回答へのお礼

補足頂きありがとうございます。

まさにFFFTPをイメージしていましたが、サポートしていないんですね。
また、サーバー間のデータコピーなのでアップロードという表現は適切でないですね。
失礼しました。

皆様からの回答を見ていると、いずれのサービスを利用するにしても、
クライアントから操作する場合、リモートでサーバーに接続して処理を流す
必要がありそうだと考えております。

お礼日時:2014/08/17 19:10

>想定していないデータの流れ


データ自体はそんな流れにはならないと思います。

>クライアントPCをシャットダウンしたり、コピーのコマンドを停止すると処理が止まるため
データ自体は「想定してないデータの流れ」にはならないと思いますがコピーが途中で止まってしまう懸念はあるかも。
ファイルサーバー(マスター) にTelnetなどでログインしてそこからファイルサーバー(バックアップ) に対してコピーコマンドを打つとかだったらその懸念はないかも知れません。
    • good
    • 1
この回答へのお礼

早速のご回答ありがとうございます。

ご指摘のとおり、ファイルサーバーから直接コピーを実行すれば
懸念はないと思うのですが、前述のとおり該当のファイルサーバーは
バッファロー社のNASのため、直接コマンドでコピーできずにおります。

しかしながら、Telnet等ではログインできなくても、NAS自体にWEBログイン
はできますので、別の方法が用意されているかもしれませんね。
一度調べてみます。

お礼日時:2014/08/17 16:49

コピーのコマンドというのが具体的に何の事かはわかりませんがエクスプローラーを使用したコピーやコマンドプロンプトのcopy, xcopyなどは後者です。


ですか、それらは

>ファイルサーバー(マスター) → クライアントPC →ファイルサーバー(バックアップ)

の流れでのクライアントPCのストレージを使う様な実装にはなっていませんので心配されているようなSSDに負荷がかかるという事はないです。
前者のような流れは ftp がサポートしていますが対応しているftpクライアントでないとできません(ftpサーバーもかも)

この回答への補足

すみません、細かいですが訂正です。

×誤認識
○ご認識

です。

補足日時:2014/08/17 16:45
    • good
    • 0
この回答へのお礼

早速のご返信ありがとうございます。

実際のコマンドも書くべきでしたね。
誤認識のとおり、xcopy、またはrobocopyの使用を考えています。

FTPサービスを使ってアップロードすれば、クライアントPCを経由して
データが流れることはないんですね。大変勉強になりました。
ひとまず、SSDへの負荷はないということで安心しました。

お礼日時:2014/08/17 16:44

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qバッチファイルでサーバーのファイルをクライアントへコピーしたい

サーバーに保存されているファイルを、
クライアントのCドライブへコピーしたい。

各クライアントにバッチファイルを配布して、
それを実行するだけでコピーされるようにしたいのです。

初心者で申し訳ないのですが、何卒よろしくお願いします。
------------------------

下記の記述ですと、普通にサーバーのCドライブへファイルがコピーされます。
しかし、コピー先はバッチファイルを実行したクライアントのローカルディレクトリにしたいのです。

copy \\サーバー名\フォルダ名\ファイル名 C:\

Aベストアンサー

>下記の記述ですと、普通にサーバーのCドライブへファイルがコピーされます。

そんなはずはありません。何かの勘違いでしょう。

>copy \\サーバー名\フォルダ名\ファイル名 C:\

だと、バッチファイルを実行したPCのC:\にコピーされます。

copy \\サーバー名\フォルダ名\ファイル名 C:
と、最後の \ を削れば、バッチファイルがあるのと同じディレクトリにコピーされます。

Qバッチファイルのコピーで

コマンドバッチで、ネットワーク上にある共有フォルダ内にあるファイルのコピーを行おうと思っているのですが、
「Logon failure : unknown user name or bad password」と出てしまい上手く出来ません。
コマンドでコピーの時にパスワードを記述とか出来るのでしょうか?出来るなら方法などを教えてきただきたく思います。

ものすごい簡単な質問なのかもしれませんがよろしくお願いします。

Aベストアンサー

そのコピーコマンドは、UNCパスのネットワークドライブ[から/に]行っているのかな?

例:
copy c:\autoexec.bat \\server\share\

そのマシン(server)の共有に、自動でアクセスできないのなら、先に共有に繋げておこう。


net use \\server\share password /user:username ←ユーザ名とパスワードを指定して接続
copy c:\autoexec.bat \\server\share\ ←ファイルコピー
net use \\server\share /delete ←切断

QXCOPYでネットワーク越しにコピーすると、「無効なドライブ指定です」と表示される

下記のようなコマンドラインをバッチにし、タスクスケジューラで定期的に起動させています。
---------------------------------------------------------------
xcopy "C:\Documents and Settings\ユーザ名\デスクトップ\バックアップ" "\\同じWORKGROUPにある共有PC\ユーザ名\バックアップ" /s /e /y /k /g /d
---------------------------------------------------------------
目的は、サーバを立てたり、アークサーブなどの高度(高価)なソフトを使わずに、簡単に必要ファイルをバックアップしておこう、ということです。

ユーザは自分のPCのデスクトップの「バックアップ」フォルダに、バックアップしておきたいファイルを保存しておき、タスク(バッチ)は共有PCの同じツリー構造のディレクトリに差分コピーするだけの単純な作りです。

どのPCからも、共有PCは同じWORKGROUP内に見えておりますし、保存先フォルダにフルアクセス可能です。

しかし、一部のユーザのPCでは、「無効なドライブ指定です」と表示され、0個のファイルがコピーされました。と表示されます。つまり失敗しています。

ただ、タスクを手動実行させたり、バッチそのものを手動実行させるとなぜか成功するのです。

そこで質問です。

1.同じバッチ、タスクを登録しているのに、なぜユーザによって成功/失敗と分かれてしまうのでしょうか?

2.タスクで自動起動するのと、手動で起動するのとでは、OS上で何か違いがあるのでしょうか?

お時間のある方、よろしくお願いいたします。

下記のようなコマンドラインをバッチにし、タスクスケジューラで定期的に起動させています。
---------------------------------------------------------------
xcopy "C:\Documents and Settings\ユーザ名\デスクトップ\バックアップ" "\\同じWORKGROUPにある共有PC\ユーザ名\バックアップ" /s /e /y /k /g /d
---------------------------------------------------------------
目的は、サーバを立てたり、アークサーブなどの高度(高価)なソフトを使わずに、簡単に必要ファイルをバックアップしておこう...続きを読む

Aベストアンサー

>1.同じバッチ、タスクを登録しているのに、なぜユーザによって成功/失敗と分かれてしまうのでしょうか?

フォルダのアクセス権がユーザによって与えられているはずなので、権限のあるユーザだと成功して、権限がないと失敗するんでしょうね。

>2.タスクで自動起動するのと、手動で起動するのとでは、OS上で何か違いがあるのでしょうか?

タスク登録の時に、どのユーザで実行するか指定できます。それを指定していないのでは?指定しないとシステムユーザで実行されます。

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

Qファイルコピーする場合のサーバ負荷

Aサーバ(コピー先)にて、Bサーバ(コピー元)のファイルを
Aサーバのディスクにコピーする場合、Bサーバ(コピー元)の
リソース(メモリ、CPU)は利用するのでしょうか?

Aベストアンサー

コンピュータ間でファイルをやりとりする時は、お互いに連携を取りながら処理が行われます。(Aサーバからの要求に、Bサーバが答えるようなイメージ)
そのためBサーバのリソースも利用されます。ただし、それだけでリソースが占有されるほどの負荷はかからないので、たいした問題にはなりません。

QDOSコマンドで共有ファイルへアクセスを行う際のパスの書き方

初めまして。

本題になります・・・

DOSコマンドで共有ファイルのアクセスを行う際のパスの書き方は、
「\\サーバー名\共有フォルダ名\ファイル名」ですが、DIRなどを行うと、認証が走って、ファイルへのアクセスが出来ません・・・全てDOSコマンド(バッチ)で完結したいのですが・・・
例えば、「dir \\サーバー名\共有フォルダ名\ファイル名」とした場合に、「ログオン失敗: ユーザー名を認識できないか、またはパスワードが間違っています。」と表示されてしまいます。
現在行いたい処理は、他サーバーの「共有ファイルのコピー&削除」、「共有フォルダの作成」です。

【環境】
コマンド実行させるサーバー:[WIN2KSEVER(admini権限/パスワード共通)]
他サーバー:[WIN2KSERVER(admini権限/パスワード共通)]

解決する方法がありましたら、お教え下さい。
お願いします。

Aベストアンサー

実際に試してみました。

net use \\サーバー名 パスワード /user:ユーザー名
dir \\サーバー名\共有フォルダ名\ファイル名

でいけました。

Qバッチファイルで昨日の日付を取得

すみません、どなたか教えて下さい。

バッチファイルの記述で、昨日の日付を取得する方法を教えて下さい。
今日の日付は下記のように取得しています。

rem 日時変数の取得
for /f "tokens=1-3 delims=/" %%a in ('echo %date:~-10%') do (set YYYYMMDD=%%a%%b%%c
)

Aベストアンサー

:: ----- prevdate.bat はじめ -----
@echo off
::今日の日付を取得
set yy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
echo 今日は、%yy%年%mm%月%dd%日です。

::1日前の日付を計算する
set /a dd=%dd%-1
set dd=00%dd%
set dd=%dd:~-2%
set /a ymod=%yy% %% 4
if %dd%==00 (
if %mm%==01 (set mm=12&& set dd=31&& set /a yy=%yy%-1)
if %mm%==02 (set mm=01&& set dd=31)
if %mm%==03 (set mm=02&& set dd=28&& if %ymod%==0 (set dd=29))
if %mm%==04 (set mm=03&& set dd=31)
if %mm%==05 (set mm=04&& set dd=30)
if %mm%==06 (set mm=05&& set dd=31)
if %mm%==07 (set mm=06&& set dd=30)
if %mm%==08 (set mm=07&& set dd=31)
if %mm%==09 (set mm=08&& set dd=31)
if %mm%==10 (set mm=09&& set dd=30)
if %mm%==11 (set mm=10&& set dd=31)
if %mm%==12 (set mm=11&& set dd=30)
)
echo 昨日は、%yy%年%mm%月%dd%日です。

echo.
pause
:: ----- prevdate.bat おわり -----

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

:: ----- prevdate.bat はじめ -----
@echo off
::今日の日付を取得
set yy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
echo 今日は、%yy%年%mm%月%dd%日です。

::1日前の日付を計算する
set /a dd=%dd%-1
set dd=00%dd%
set dd=%dd:~-2%
set /a ymod=%yy% %% 4
if %dd%==00 (
if %mm%==01 (set mm=12&& set dd=31&& set /a yy=%yy%-1)
if %mm%==02 (set mm=01&& set dd=31)
if %mm%==03 (set mm=02&& set dd=28&& if %ymod%==0 (set dd=29))
if %mm%==04 (set mm=03&& set dd=31)
if...続きを読む

Qbatである文字列内に特定の文字列が含まれているか確認したい

batファイルの中である変数「abc」の中に「test」という文字が含まれていたら○○を行なうという分岐を作成したいのですが、どのように行なえばよいのでしょうか?

そのまま、ずばりのお答えお待ちしております。

よろしくお願い致します。

Aベストアンサー

大文字小文字を区別しなくていいなら、

if not "%abc:test=%" == "%abc%" echo 含まれていた

区別するなら、

echo %abc% | find "test" >NUL
if not ERRORLEVEL 1 echo 含まれていた

QDirコマンドでフォルダ内ファイルの合計サイズをだすには?(コマンドプロンプトにて)

いろいろ調べましたが不明な点があり、質問します。

WindowsのDOSプロンプトでdirコマンドを打つとフォルダ・ファイルの一覧が表示されますが、その中にファイルサイズが表示されています。
このサイズを合計できるコマンドはありませんか?
DIRコマンドのオプションを調べましたがそれらしいものが見当たりません。
具体的には
C:\xxx\配下に50個程度のファイルがあります。
その50個の合計サイズを知りたいです。
xxxフォルダの親フォルダにはアクセス不可です。

ずーっと悩んでいます。よろしくお願いします。

なお、OSはWindowsNTか2000で使用予定です。

Aベストアンサー

カレントドライブ、カレントフォルダを
C:\xxx\
にした状態で、

dir /s /a-d

/sパラメータででサブディレクトリすべてを検索
/a-dパラメータでディレクトリ以外のファイル(つまり属性に関係なくすべてのファイル

これを実行すると最後にファイルの個数とファイルサイズの合計を表示します。

もし、隠し属性のファイルは合計しないのであれば、

dir /s

だけで良いと思われます。

Qバッチ処理でファイルの中身を変数に入れるやり方

あるファイルの中には1行の文字列があります。
このファイルをバッチで読み取り、変数に設定したいです。

例:
test.txt
abcacbacbacbacbacbacbacbacb

test,bat
set DATA=[test.txtを読み込んだ値]

よろしくお願い致します。

Aベストアンサー

これですね。

参考URL:http://www.upken.jp/kb/dqvgHNRUxwFDkmtoqEwfXHUjDrevNv.html


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング