Вопрос новичка: как автоматизировать копирование файлов на удаленный компьютер?

Во-первых, я очень уважаю программистов и ИТ-специалистов. Я новичок / хочу быть. Я ищу помощь в разработке небольшой программы / скрипта, которая поможет мне с задачей, которую я подробно описал ниже. Я НЕ представляю это как домашнее задание. Это связано с работой, но я НЕ прошу вас делать мою работу. Я использую это как возможность узнать больше о программировании, выполнив задачу, которая мне нужна. Любой код, который вы можете предоставить, будет полезен, но меня очень интересуют основные концепции, этапы и ваши советы о том, как лучше всего решить эту задачу (какие инструменты, язык и т. Д.)

Вот что у меня есть: XP машины (локальные и удаленные)

  • Некоторые базовые знания о пакетных файлах
  • Небольшой опыт работы с Visual Basic 2008 Express
  • Немного опыта C++ (и компилятор Code Blocks)
  • Довольно честное рабочее знание XP

Вот что я хочу сделать:

Каждую пн-пт в полночь мне нужна машина (#1), которую я настрою и могу получить к ней доступ.

  1. Проснись из спящего
  2. Скопируйте (или xcopy) каталог (\Server\remoteBackup) со всем его содержимым с выбранного компьютера (#2) в офисе (который будет включен) через FTP-соединение или Интернет на удаленный компьютер (C:\remoteBackup)
  3. Поместите файл "successCopy.txt" на другой выбранный компьютер (#3) (\machine3\log). Каждый файл "successCopy.txt" должен проверять, существует ли "successCopy.txt" и, если это так, переименовать новое в "successCopy(2).txt" или что-то еще.
  4. Вернитесь в спящий режим (по окончании или по таймеру)

Это в основном система удаленного резервного копирования. о чем ты думаешь? Любые идеи, которые вы предоставите, будут наиболее полезны, если вы назовете их так, чтобы я мог найти в Google ваш ответ, чтобы узнать больше, если у меня возникнут дополнительные вопросы. Я ценю любую помощь, которую вы можете оказать. Я хочу сделать это, потому что Я ХОЧУ сделать это, и ни по какой другой причине.

6 ответов

Не могу помочь со спящим аспектом, но для копирования файлов, посмотрите в scp и ключ на основе входа.

Для сохранения старых версий файла успешной копии вы должны иметь возможность использовать ssh выполнить команды на удаленном конце, чтобы сделать это.

Вы можете захотеть заглянуть и в Cygwin; это даст вам ssh а также bash что может помочь вам сделать то, что вы хотите.

Я написал большой пост, и я клянусь, что опубликовал его, и все же... Хммм.

Вы захотите сделать какое-то архивирование: это сделает вашу жизнь намного проще. Я рекомендую 7zip; Это бесплатная утилита Zip, которая имеет мощный интерфейс командной строки. Очень просто написать 1-строчную 7zip-команду для архивирования и сжатия целого дерева каталогов, а также поддерживает опцию "update" для архивов, поэтому вместо того, чтобы каждый раз оборачивать каждый файл, он может просто обновить измененные файлы.. Должно сэкономить кучу времени.

Получив свой архив, вы захотите отправить его куда-нибудь. Я рекомендую WinSCP; это бесплатный клиент FTP/SFTP, который также имеет хорошую поддержку командной строки / сценариев. Скриптовый интерфейс там довольно мощный.

Соедините их вместе, и вы можете написать простой командный файл DOS для запуска необходимых команд. Быстро, просто и эффективно.

Постарайтесь избежать соблазна заново изобрести колесо. Это отличный урок для изучения. Есть люди, которые уже потратили много времени, собирая кусочки, которые вы можете использовать.

Вы также можете исследовать Rsync для вашей задачи. Он часто используется для удаленного резервного копирования деревьев каталогов.

Это не совсем то, что вы просите, но я бы просто использовал одну из многих доступных программ копирования файлов. Я сам пользуюсь Second Copy.

  1. Разбудить локальную машину - запланируйте задачу (любую задачу) на этой машине, чтобы разбудить ее. Больше на - https://web.archive.org/web/1/http://articles.techrepublic.com.com/5100-10878_11-6073491.html

  2. Сценарий FTP необходимо создать на компьютерах источника (mput)/ назначения (mget) и запускать с помощью запланированной задачи. Вы можете найти образцы FTP-скриптов онлайн. На самом деле вы можете запланировать FTP-клиент с графическим интерфейсом для этого, сохранив работу в нем.

  3. Может быть сделано с помощью вышеуказанного скрипта / FTP-клиента GUI

  4. Вы можете запланировать "shutdown.exe -h" или "psshutdown.exe -h", чтобы сделать это.

Для удобства включите все вышеперечисленное в пакетный файл, который запускается через одну запланированную задачу.

НТН-х

Существуют и другие, более лучшие методы, но вот список простых идей, которые требуют мало знаний или опыта:

  1. Обычно вы можете настроить параметры питания в BIOS, чтобы разбудить машину в заданное время, часто помеченные как "Тревога".
  2. Вместо того, чтобы копировать или копировать, посмотрите в Robocopy. Он гораздо более гибкий и чрезвычайно надежный (отсюда и название "робо") и может возобновлять прерванные переходы
  3. Robocopy может создать файл журнала, но вам придется проверить его на наличие сообщения об ошибке (Perl идеально подходит для этого)
  4. Посмотри в shutdown.exe
Другие вопросы по тегам