2

Я пытаюсь скопировать папку с удаленного компьютера с помощью ROBOCOPY

Я использую следующее:

NET USE \\192.168.10.90\IPC$ /u:server\[username] [password]

ROBOCOPY \\192.168.10.90\home\lgr\ \\C:\LGR_Back_Up\LGR_A\ /Z

NET USE \\192.168.10.90\IPC$ /D

Если я запускаю эту строку построчно, после первой строки я получаю «Команда выполнена успешно», а затем после ввода команды Robocopy следует «Сетевой путь не найден».

Я думаю, что это потому, что я не в том месте.

Когда я захожу на компьютер 192.168.10.90, используя SSH, я захожу в папку пользователя с указанным именем пользователя. Эта папка содержится в home каталоге, поэтому путь - home/user . Я хочу скопировать файлы из home/lgr/ .

Возможно ли, что, как только я войду из командной строки с моей первой строкой скрипта, я попаду в папку пользователя, чтобы мой скрипт искал папку home/user/lgr/? Если да, то как мне перейти на один уровень вверх?

Я надеюсь это имеет смысл.

4 ответа4

1

\\C:\LGR_Back_Up\LGR_A\ не является допустимым сетевым путем.

Если LGR_Backup находится на локальном диске, используйте C:\LGR_Back_Up\LGR_A\ .

Если LGR_Backup - это папка в корне C: на удаленном компьютере, и вы пытаетесь получить к ней доступ через общий ресурс C $ admin, то вы должны использовать \\Remote_Computer\C$\LGR_Back_Up\LGR_A\

1

В конце концов, это сценарий, который я получил для работы:

rem # Script to connect:

NET USE \\192.168.10.90\IPC$

rem # Script to copy:

ROBOCOPY \192.168.10.90\lgrdata\ \ICOS\Analyser_backups\LGR_Flux\ /NP /TEE /E /dcopy:T /Z 

rem # Script to disconnect:

NET USE \\192.168.10.90\IPC$ /D

Спасибо за вашу помощь. Я думаю, что это была сложная, специфическая проблема из-за структуры папок нашего инструмента. Я просто не мог понять, где были данные, которые я хотел скопировать, а затем у меня возникли проблемы с использованием следующего из исходного скрипта:

\\C:\LGR_Back_Up\LGR_A\ /Z

Как сказал Techie007, это недопустимый сетевой путь.

0

ОК, вы пропустили некоторые команды net use

[пропущена буква диска для подключения к сетевому хранилищу]

Краткое руководство

1> Net use X: \\ сервер DNS или IP \ Network.Отправить \ на \ подключить \ к \ указанному \ диску \ букве / пользователю: serverDNS *(примечание 1)\ имя пользователя пароль *(примечание 2)

2> Robocopy X: [или указанная буква диска]\*.* C:\location\of\backup\directory [не забудьте заранее создать каталог с помощью mkdir

3> net use X: /del /y [отключает общий доступ без вопроса подтверждения]

(примечание 1) используйте ip, если это необходимо, но для этого здесь может понадобиться имя Winbind или DNS, которые ОТЛИЧНЫ от google enable winbind ubuntu (или ваш вид Linux), это очень легко сделать большую часть времени. Я использовал как FQDN, так и имя winbind взаимозаменяемо, но IP в пользовательской части команды почти всегда дает сбой.

(примечание 2): В целях безопасности оставьте пароль выключенным, ваш скрипт остановится и попросит вас ввести пароль после того, как он запустит команду net use и он подключится, а затем, когда вы введете его и нажмете клавишу ввода, он продолжит работу со скриптом. Это не означает, что вы оставляете свой пароль в файле сценария в виде простого текста для большей безопасности, но иногда вам нужно, чтобы сценарий не останавливался [т.е. сценарии входа]

Также я думаю, что вы можете пойти по этому странному пути [это работает, просто требует больше настроек и усилий, чем VPN]. Если бы я был от клиента Windows до хоста * nix, я бы порекомендовал использовать VPN-сервер, такой как OpenVPN, тогда вы могли бы использовать мостовую настройку и стать просто еще одним клиентом в сети [с SSH вы подключаетесь к серверу напрямую и будете необходимо настроить переадресацию портов через SSH, чтобы службы передавались напрямую вашему физическому клиенту], но забудьте, что в течение минуты у вас, похоже, нет правильной работы в сети, поэтому, если это сработает, продолжайте читать и используйте текущие настройки должно сработать

Чистое использование для установки буквы диска попробуйте: NET USE X: [ИЛИ ЛЮБОЕ ПИСЬМО ПРИВОДА НЕ ИСПОЛЬЗОВАНО] \\192.168.10.90 \home \lgr /user: server [username] [password]

вы можете запустить net use на всех уровнях ниже, если хотите, чтобы Windows не заботилась о таких случаях, как Linux или Unix или Mac OS X, кстати.

НО ПРЕДУПРЕЖДАЕТСЯ, ЧТО ВЫ НЕ ХОТИТЕ ПОСЕТИТЬ С IPC $, ЭТО СКРЫТО ДЛЯ ХОРОШЕЙ ПРИЧИНЫ, КОТОРОЕ ОБРАЩАЕТСЯ СО ВСЕМИ КОММУНИКАЦИЯМИ МЕЖДУ ВСЕМИ ПРИЛОЖЕНИЯМИ НА МАШИНЕ WINDOWS [И ВСЕ СЕТЕВЫЕ СДЕЛКИ] НАЗАД В ДНИ NT 4 Я ПОЛУЧИЛСЯ И УДАЛЕН IPC $ Акции людей, которые меня раздражали, почему? ВЫ ПОТЕРЯЕТЕ ВСЕ, И Я ОЗНАЧАЮ ВСЕ ВРЕМЯ СЕТЕВОЙ СВЯЗИ [НЕ НАМЕРЯТЬ НИЧЕГО, КАК ДОСТУП К КЛИПАНКАМ МЕЖДУ ПРОГРАММАМИ. ЧТОБЫ ПОЛУЧИТЬ ИДЕЮ, КАК ЭТО НЕОБХОДИМО, СМОТРЕТЬ: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365574(v=vs.85).aspx ВАМ НИКОГДА НЕ НУЖНО ПОДКЛЮЧИТЬСЯ К IPC $ СМ. НИЖЕ В ЧИСТОМ ИСПОЛЬЗОВАНИИ ВЫ УКАЗЫВАЕТЕ ПИСЬМО ПРИВОДА, И ЭТО АВТОМАТИЧЕСКИ ПРОВЕРЯЕТ IPC $, ЧТОБЫ УБЕДИТЬСЯ, ЧТО ВАШИ ПОЛНОМОЧИЯ ДЕЙСТВУЮТ. Я ПОВТОРЯЮ, Я ПРЕДУПРЕЖДАЛ, ЧТО О IPC $ НЕ МУСКАТЬ С ЭТИМ, ЕСЛИ ВЫ НЕ ЗНАЕТЕ, ЧТО ВЫ ДЕЛАЕТЕ И ДЕЙСТВИТЕЛЬНО ДОЛЖНЫ СДЕЛАТЬ ЭТО.

ОК, так что после предупреждения: Первый запуск: NET USE X: [ИЛИ ЛЮБОЕ ПИСЬМО ПРИВОДА НЕ ИСПОЛЬЗОВАНО] \\192.168.10.90 \home \lgr /user: server [имя пользователя] [пароль] [обратите внимание, что мы используем CIFS [SAMBA, поэтому каталоги упоминается как в Winblows]]

ЗАТЕМ

Robocopy X:\File.ext [или шаблон типа * .txt] C:\some\directory\to\save\to\file.ext

Сокращенное значение Net Use Net - это буквенное обозначение сетевого диска для сетевого местоположения на простом английском языке, поэтому не забудьте указать буквенное обозначение диска [без буквенного диска, это своего рода проверка соединения, но не говорит, что вы на самом деле не используете net использовать правильно].

Затем мы используем robocopy для копирования с уже используемой буквы диска, которая теперь указывает на сетевое местоположение, о котором мы ему сказали, и копирования оттуда на локальный [ИЛИ другое сетевое местоположение, если вы используете net use для сопоставления второго сетевого расположения со вторым диском письмо:-О].

и когда все сделано, чтобы отключить использование сети x: /del /y [использование сети на x: удалить да удалить, не спрашивая меня] ИЛИ использование сети * /del /y уничтожит ВСЕ подключенные сетевые ресурсы

и просто net use в windows будет перечислять соединения, которые вы открываете, и в то время как он будет подключаться только к имени компьютера, которое является просто прямым подтверждением однорангового соединения, но все же сетевым соединением. Смысл использования net в том, чтобы взять \\ действительно \ long \ network \ share путь и назначить его букве диска, чтобы \ my.server \ net \ share \ где-нибудь стал просто X: \ [или любым другим свободным между A: и Z [я бы не использовал A: B: C: D:] они зарезервированы A и B для дискет C: Windows загружается с главного диска, а D: обычно это CD/DVD приводы [это не сложно и быстро это может быть разные, но обычно так оно и есть], поэтому я рекомендую ниже буквы алфавита, такие как L - Z, но полностью на ваше усмотрение.

0

Извините, я не смог ответить напрямую, поэтому пришлось создать новый ответ. Это краткая форма, в которой мой более длинный ответ содержит больше подробностей, если мне интересно, поэтому я оставлю оба ...

Его вопрос касается хоста Windows с хостом nix [не знаю, если Linux или Unix prolly Linux], поэтому /home / по умолчанию используется совместно, в большинстве случаев доля в Windows будет \\IP ИЛИ FQDN или адрес WindBind [обычно FQDN или IP поскольку Linux по умолчанию не обрабатывает Windbind, если вы не включите его вручную]

Так что в Windows для Linux используется больше значений по умолчанию, чем нет

net use X: \\192.168.10.90 \home \lgr /user: IP [или FQDN в случае сбоя IP] сервера \имени пользователя

[В моем опыте Windows недостаточно хорошо обрабатывает IP-адреса в инструкции пользователя, поскольку для указания хоста для аутентификации обычно требуется полное доменное имя [полный DNS, такой как server.local, а не просто сервер; почти все DNS-клиенты по умолчанию устанавливают name.local, если вы знаете только Windows имя хоста добавить .local это может работать для вас или winbind, но IP может работать несколько раз]

Robocopy X:\*.* C:\LGR_Back_UP\LGR_A /s /e /z [копировать все файлы, включая подкаталоги, даже если каталог пуст в режиме перезапуска [если произошла ошибка при переносе файла повторного копирования], если команда не удаляется, удалить /z и повторить попытку]

net use x: /del /y [отключает сетевой ресурс на букве диска X без запроса интерактивного подтверждения [так как вы используете скрипт, вы захотите этого]]

Извините в ответ на пост выше, но также включает в себя команду robocopy, которую я бы использовал в вашем случае [если она не работает с /z [перезапускаемый режим, если что-то происходит во время копирования, иногда не работает в определенных установках, просто оставьте его выключенным] /s = copy all подкаталоги /e = включая любые пустые подкаталоги.

Это должно быть проще, чтобы соответствовать вашему конкретному случаю и обратитесь к моему более длинному посту выше для более подробной информации.

О, И ДЛЯ ВАС ДРУГОЙ ВОПРОС, ЧТОБЫ ПОЙТИ "НАЗАД" или ВЕРНУТЬ УРОВЕНЬ КАТАЛОГА ОТ ГДЕ ВАМ НАСТОЯЩИЙ ВЫПУСК

CD ..

и нажмите Enter .. всегда относится к каталогу выше во всех ОС [вы можете использовать в сценариях, например, если у меня есть C:\some\directory, и я запускаю свой сценарий в каталоге, если я копирую ..\file.ext C:\some\ каталог, который будет копировать файл в каталоге с именем some в каталог с именем directory при запуске команды, когда вы находитесь в каталоге в командной строке :-)

ИЛИ ЖЕ

CD /

в Windows переводит вас в корневой каталог диска, на котором вы находитесь, так что, если я запустил его с

c:\some\long\directory\, который \ берет \ a \long\ time \ в \ cd .. \ from> cd /

я бы получил

C:\>

ОЧЕНЬ ЛЮБЛЮ КОМАНДУ ЛИНИЯ :-D

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .