Как скопировать файл с одной машины Windows на другую машину Windows? - PullRequest
0 голосов
/ 15 сентября 2010

Как скопировать файл с одной машины Windows на другую машину Windows?так что я могу написать пакетный скрипт, который можно запустить с машины Хадсона.Мое требование заключается в том, что мне нравится развертывать войну на сервере Tomcat, расположенном удаленно на другой машине Windows через Hudson (война будет генерироваться на этой машине), которая находится на другой машине Windows.К вашему сведению, оба окна находятся в одной сети или в интрасети. Еще одна вещь для развертывания Linux - это использование plink.Есть ли альтернатива развертыванию Windows?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 15 сентября 2010

Зависит от того, что вы действительно хотите сделать и каковы требования безопасности. Есть несколько вариантов. Самый простой - использовать команду копирования с UNC-путем для удаленного компьютера \\hostname\sharename\directory\actual.file. Важно то, что на удаленном компьютере определен общий ресурс и разрешен доступ для записи (на уровне файлов и общих ресурсов) для пользователя, под которым работает hudson. Это также означает, что вы не можете запустить Hudson под учетной записью local_system. (опция по умолчанию, если вы запускаете Hudson как сервис)

На самом деле я бы предпочел robocopy вместо copy. Я думаю, что Microsoft предлагает Robocopy бесплатно. Изучите документацию (помощь) robocopy, это программа для администраторов, которые должны знать, что они делают. Robocopy не только надежен, если используется с неправильными переключателями, он также может «непреднамеренно» удалять файлы.

Другие варианты включают конфигурации SCP и FTP, Master \ Slave, где подчиненное устройство загружает артефакты из Гудзона с использованием протокола http / https protocoll.

EDIT:

комментарий от Вишу

Спасибо за ваш быстрый ответ. Как ваш ответ объясняет, что у вас есть хорошие знания в Гудзоне, я бы хотел бы подробно изложить мое требование. Мое требование, я люблю развертывать Война на сервере Tomcat, расположенном удаленно в другой машине windows через Гудзон (война будет генерироваться в этом машина) которая находится в другом окна машины. К вашему сведению, оба окна в той же сети или интранете. Один больше вещей для развертывания Linux мы используя плинк. Есть ли альтернатива для развертывания Windows?

Я обычно развертываю на Websphere Application Server. Поэтому мне нужно было немного прочитать о , как выполнить развертывание на tomcat . Похоже, вам просто нужно сбросить wat-файлы в правильный каталог, и все готово или изменить файлы конфигурации, которые в данный момент используются tomcat, и он подберет их автоматически (при условии, что все настроено правильно).

Поскольку сценарий развертывания и ваши настройки очень просты, я бы рассмотрел два варианта. Я предпочитаю установить службу ssh на целевой машине Windows и повторно использовать ваши сценарии plink, которые у вас уже есть (для этого или других проектов). Идея здесь в том, чтобы придерживаться одной технологии. Другой вариант заключается в использовании общих ресурсов Windows. В этом случае убедитесь, что Hudson использует «реальную» учетную запись, чтобы Hudson не нужно было явно отображать общий ресурс (можно записать в сценарии, но пароли могут храниться в незашифрованном виде). Создайте общий ресурс в целевой системе с разрешением на запись для Hudson. В остальном ничто иное, как копия. Для копирования вы должны взглянуть на robocopy, так как он намного лучше для такого рода заданий, чем команда copy. Я предполагаю, что задание сборки выполняет развертывание.

Если у вас есть две работы, первая создает артефакты, а другая развертывает артефакты. В настоящее время я предпочитаю использовать wget для извлечения артефактов из job1. Это подразумевает, что job1 архивирует свои артефакты. Второе задание получает артефакты от первого (используя wget и URL-адрес запуска для job1). В этом случае вы можете запустить Hudson Slave на целевом компьютере и развернуть его локально. Вы можете использовать аналогичные скрипты для Windows и Linux. Вы можете получить Wget для Windows с Cygwin (по крайней мере, я так думаю). С cygwin вы даже сможете использовать свой скрипт Linux на Windows. Преимущество заключается в том, что вам не нужны общие ресурсы и отдельный репозиторий артефактов. Если вы запускаете ведомое устройство как службу, вам даже не нужно устанавливать ssh-сервер на целевой машине.

Если вы запускаете развертывание вручную, вы можете использовать плагин пакетной задачи .Это практически одна работа, и вам не нужно беспокоиться о перемещении артефактов между работами.Недостатком является то, что вы можете развернуть только из самого последнего запуска задания, так как это зависит от рабочей области задания.Развертывание более старых версий (если ваш проект поврежден прямо сейчас или вам нужно понизить версию из-за серьезной ошибки в вашем приложении) невозможно.

Если у вас уже есть репозиторий артефактов, используйте установку master-slaveи проверить артефакты из вашего хранилища на целевой машине.

Я мог бы придумать больше опций, которые будут становиться все более и более эзотерическими.В конце концов, вам нужно решить, что вам больше всего нравится и что проще всего внедрить и поддерживать, а также удовлетворяет ваши другие (второстепенные) требования (например, определенные ограничения безопасности).

0 голосов
/ 01 января 2016

Это возможно с помощью следующей командной строки в терминале Linux:

scp -3 user1@ip:path/from/directory/ user2@ip:path/to/directory

Появится приглашение с запросом таких паролей:

user1@ip's password: user2@ip's password:

Если вы зададите оба пароля по порядкунажав ввод после первого пароля, он должен принять, но это не так.Даже если вы снова введете оба пароля по порядку, но не нажмете клавишу ввода после первого пароля, он не примет снова.

Сначала необходимо указать имя пользователя user2, затем нажать клавишу ввода, затем ввести пароль пользователя user1 и нажать клавишу ввода.Это будет работать.

Я знаю, что это звучит неправильно, но только это будет работать.Это ошибка в терминальной оболочке Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...