В настоящее время я использую только RSync, Directories
например:
* * * * * rsync -avz /var/www/public_html/images root@<remote-ip>:/var/www/public_html
Итак, как мне сделать rsync
один файл вроде /var/www/public_html/.htaccess
,?
Вы делаете это так же, как и каталог, но вы указываете полный путь к имени файла в качестве источника. В вашем примере:
rsync -avz --progress /var/www/public_html/.htaccess root@<remote-ip>:/var/www/public_html/
Как упоминалось в комментариях: поскольку -a
включает рекурсию , одна небольшая опечатка может привести к запуску полного переноса дерева каталогов, поэтому более надежный подход может просто использовать -vz
или заменить его на -lptgoD
.
Базовый синтаксис
пример
Прочитайте больше
источник
Ответ Майкла Плейса отлично работает, если по отношению к корневому каталогу как для источника, так и для цели все каталоги в пути к файлу уже существуют.
Но что, если вы хотите синхронизировать файл с этим исходным путем:
/ исходный-корень / а / б / файл
в файл со следующим целевым путем:
/ целевой-корень / а / б / файл
а каталоги a и b не существуют?
Вам нужно запустить команду rsync, как показано ниже:
источник
На сегодняшний день два ответа не совсем правильные, они получат более одного файла, а другой не так прост, как мог бы быть, вот более простой ответ, ИМО.
Следующее получает ровно один файл, но вы должны создать каталог назначения с помощью mkdir. Это, наверное, самый быстрый вариант:
Если в / remote / path есть только один экземпляр файла, rsync может создать для вас каталоги, если вы сделаете следующее. Это, вероятно, займет немного больше времени, поскольку выполняется поиск в большем количестве каталогов. Кроме того, он создаст пустые каталоги для каталогов в / remote / path, которых нет в ./local
Имейте в виду, что порядок --include и --exclude имеет значение.
источник