2016-04-28 12 views
0

У меня есть файлы csv, которые постоянно обновляются с новыми записями.Копирование непрерывно растущего файла с одного сервера на другой в ubuntu bash

Я хочу написать сценарий для копирования этих файлов на другой сервер, который будет копироваться непрерывно, без повторения.

Как я могу это сделать с помощью bash или скрипта python?

Спасибо,

+1

Как часто вам нужно обновить файл csv? Какова приемлемая временная шкала? Будет ли решение на полке, такое как dropbox, обслуживать ваши потребности? Кажется, мы намеренно избегаем базы данных? Могут ли таблицы google docs решить эту проблему? –

+0

Это не имеет значения. Это может быть 1 день или 12 часов. Я хочу скопировать с одной машины ubuntu на другую машину ubuntu. – yusuf

+2

Если это единственное требование, я рекомендую проверить Dropbox. Он автоматически синхронизирует любые/все файлы в конкретной папке между системами. Он очень удобен для пользователя, и программирование/кодирование не требуется. –

ответ

2

Если у вас есть настройка подключения SSH, то следующая строка в Баш скрипт копирует имя файла или каталога (аргумент) на удаленном компьютере имя файла или каталога (второй аргумент):

#!/bin/bash 
rsync -av -e "ssh " $1 [email protected]:$2 
2

Команда rsync является правильная вне коробки решения этой проблемы. Из справочной системы:

Он известен своим алгоритмом дельта-передачи, который уменьшает объем данных, отправляемых по сети, путем отправки только различий между исходными файлами и существующими файлами в пункте назначения. Rsync широко используется для резервного копирования и зеркалирования и как улучшенная команда копирования для повседневного использования.

Простая петля rsync и sleep сделают для вас.

+0

Не могли бы вы дать мне пример bash? благодаря – yusuf