как rsync с одного сервера на другой с помощью пути, определенного переменной скажем $ PATH? - PullRequest
0 голосов
/ 11 января 2011

Здравствуйте, я хочу скопировать данные с одного сервера на другой с помощью rsync, но мой путь для копирования данных хранится в переменной, которую я получил из базы данных.

Ответы [ 3 ]

1 голос
/ 11 января 2011

Я думаю, вам нужно прочитать справочную страницу rsync и узнать, что там говорится о конечных слешах:

Конечная косая черта на источнике изменяет это поведение, чтобы избежать создания дополнительного уровня каталога в месте назначения. Вы можете рассматривать конечный / источник как означающее «копировать содержимое этого каталога», а не «копировать каталог по имени», но в обоих случаях атрибуты содержащего каталога передаются в содержащий каталог на месте назначения. , Другими словами, каждая из следующих команд копирует файлы одинаковым образом, включая их установку атрибутов / dest / foo:

   rsync -av /src/foo /dest
   rsync -av /src/foo/ /dest/foo
0 голосов
/ 11 января 2011

Это потому, что вы рассматриваете каталог как файл.

Настройка

mkdir foo
touch foo/a
mkdir /tmp/foo

Проблема

rsync -av foo /tmp/foo

Решение

rsync -av foo/ /tmp/foo  # Notice foo has a trailing '/'
rsync -av foo/. /tmp/foo # Another way to do the same thing
0 голосов
/ 11 января 2011

Не зная фактического вызова rsync, немного сложно понять, что происходит.OTOH, «чтобы он копировал только обновленные файлы», зависит от того, что вы подразумеваете под «обновленными».Со страницы руководства:

-c, --checksum

Это меняет способ, которым rsync проверяет, были ли файлы изменены и нуждаются в передаче.Без этой опции rsync использует «быструю проверку», которая (по умолчанию) проверяет, совпадают ли размер файла и время последней модификации между отправителем и получателем.Эта опция изменяет это, чтобы сравнивать 128-битную контрольную сумму для каждого файла, который имеет соответствующий размер.Генерация контрольных сумм означает, что обе стороны будут тратить много дискового ввода-вывода на чтение всех данных в файлах при передаче (и это до любого чтения, которое будет выполнено для передачи измененных файлов), поэтому это может замедлить процессзначительно.

...