Назад | Перейти на главную страницу

Копирование файлов между двумя серверами программно

Вот что я пытаюсь сделать:

  1. Мне нужно автоматизировать процесс копирования файлов с сервера A на сервер B. В идеале я хотел бы иметь сценарий, который периодически вызывается заданием cron на сервере B.
  2. Файлы, которые мне нужно скопировать, являются исполняемыми, поэтому мне нужно убедиться, что во время копирования не теряются биты.

Я столкнулся с решениями для командной строки, но мне нужно программное решение. Как я мог это сделать?

rsync, scp. Любой из них будет работать, и любой из них тривиален для использования «программно».

Например, вот сценарий оболочки для копирования некоторых файлов с server-01 на server-02:

(это предполагает, что ключ аутентификации уже настроен между этими серверами)

#!/bin/sh

scp -R /path/to/files user@server-01:/path/to/destination

... и пример rsync:

#!/bin/sh

rsync -az /path/to/files user@server-01:/path/to/destination

Вы захотите использовать rsync для копирования файлов. Есть хорошая запись Вот о том, как настроить ssh, rsync и cron.

Мне нравится scp / rsync поверх ssh, но я также рассматриваю возможность обслуживать файлы через http и использовать wget / curl.