Rsync настройка бэкапа на centos/debian/ubuntu
Содержание:
- Примеры синхронизации Rsync
- 1. Копирование и синхронизация файлов на локальном компьютере
- 2. Синхронизация папок на локальной машине
- 3. Синхронизация с удаленным сервером
- 4. Синхронизация файлов по SSH
- 6. Синхронизация не всех файлов в rsync
- 7. Удаление при синхронизации
- 8. Максимальный размер файлов
- 9. Удаление исходных файлов
- 10. Режим симуляции rsync
- 11. Ограничить скорость передачи
- 12. Автоматическая синхронизация папок rsync
- Настройка сервера Rsync
- Rsync на Windows
- Популярные теги
- Examples
- Работа с Rsync: Примеры
- Using Rsync In The Terminal
- Como alternativa de cp/mv
- Basic Syntax
- Синхронизируй это
- Упрощенный доступ к ключам с помощью скрипта keychain
- Características y aplicaciones
- Как Проверить Версию Rsync
- Основной Синтаксис
- Connection
- Ubuntu
- Другие приемы и советы
Примеры синхронизации Rsync
Дальше давайте рассмотрим использование rsync, примеры синхронизации.
1. Копирование и синхронизация файлов на локальном компьютере
Rsync позволяет синхронизировать файлы и папки в пределах одной машины. Давайте сначала рассмотрим использование rsync для синхронизации файла на локальном компьютере:
Указав опцию —progress вы можете видеть сколько процентов уже скопировано, а сколько еще осталось:
2. Синхронизация папок на локальной машине
Синхронизация папок rsync выполняется так же просто, как и файлов:
Если вы хотите, чтобы все атрибуты файлов, такие, как дата изменения и создания сохранялись, необходимо использовать опцию -a:
3. Синхронизация с удаленным сервером
Ненамного сложнее синхронизировать файлы с удаленным сервером. Скопируем локальную папку documents, на удаленный сервер:
По умолчанию rsync попытается использовать транспорт ssh. Если вы хотите использовать ранее созданный сервер rsync, нужно указать это явно:
Точно также можно синхронизировать файлы с rsync из удаленного сервера:
Адрес удаленного сервера записывается в таком формате:
имя_пользователя@адрес_машины/папка/на/удаленной_машине
Синхронизация папок rsync будет выполняться на стандартном порту.
4. Синхронизация файлов по SSH
Чтобы задать протокол подключения используется опция -e. При использовании SSH все передаваемые данные шифруются и передаются по защищенному каналу, таким образом, чтобы никто не мог их перехватить. Для использования SSH вам нужно знать пароль пользователя в системе.
Синхронизация файлов rsync с удаленного сервера по ssh будет выглядеть вот так:
Если вы используете другой порт для ssh, то здесь его можно указать:
А теперь передадим данные на тот же сервер:
6. Синхронизация не всех файлов в rsync
Опции include и exclude позволяют указать какие файлы нужно синхронизировать, а какие исключить. Опции работают не только с файлами но и с директориями.
Например, скопируем все файлы, начинающиеся на букву R:
7. Удаление при синхронизации
Во время синхронизации можно удалять файлы, которых нет на машине откуда идет rsync синхронизация, для этого используется опция —delete.
Например:
Если перед выполнением этой команды создать в папке файл которого нет на удаленном сервере, то он будет удален.
8. Максимальный размер файлов
Вы можете указать максимальный размер файлов, которые нужно синхронизировать. Для этого используется опция —max-size. Например, будем синхронизировать только файлы меньше 200 килобайт:
9. Удаление исходных файлов
Есть возможность удалять исходные файлы после завершения синхронизации с удаленным сервером:
Таким образом, файл backup.tar будет удален после завершения копирования в папку /tmp/backups.
10. Режим симуляции rsync
Если вы новичок, и еще не использовали rsync, то возможно захотите посмотреть как отработает команда без применения реальных действий в файловой системе. Для этого есть опция dry-run. Команда только выведет все выполняемые действия в терминал, без выполнения реальных изменений:
11. Ограничить скорость передачи
Вы можете ограничить использование пропускной способности сети с помощью опции —bwlimit:
Как я уже писал выше, rsync синхронизирует только части файла, если вы хотите синхронизировать файл целиком используйте опцию -W:
12. Автоматическая синхронизация папок rsync
Можно расписать автоматическую синхронизацию с помощью cron. Но в случае доступа к серверу по SSH необходимо будет создать ключ и загрузить его на сервер, чтобы аутентификация проходила без запроса пароля.
Создаем ключ:
Загружаем ключ на сервер к с которым собираемся синхронизироваться:
Теперь можем переходить к настройке расписания cron. Будем запускать синхронизацию каждый день:
rsync синхронизация каталогов будет выполняться каждый день в пять утра. Подробнее о настройке расписаний Cron можно почитать в отдельной статье.
Настройка сервера Rsync
Как вы понимаете, нельзя просто так взять и закинуть на первую попавшуюся машину файлы без установки на нее специального программного обеспечения. На удаленной машине должен быть установлен и настроен RSYNC, SSH, Samba или FTP сервер, с помощью которого Rsync сможет авторизоваться на машине и передавать туда файлы.
Рассмотрим минимальную настройку сервера rsync, для того чтобы могло быть выполнено копирование файлов rsync. Он позволит нам не только синхронизировать файлы на машину, но и получать их от туда.
Сначала создайте конфигурационный файл со следующим содержимым:
Здесь мы задаем путь к нашей папке для синхронизации, разрешаем доступ к серверу только с ip адреса (192.168.56.1) и запрещаем все остальные подключения. Параметры uid и gid указывают пользователя и группу, от которых будет запущен демон. Лучше не использовать root, а указать пользователя nobody и выдать ему права на ту папку, в которую будет выполняться синхронизация каталогов rsync.
Настройка rsync завершена, остается сохранить файл, запустить сервер rsync и добавить его в автозагрузку:
Сервер будет предоставлять доступ к файлам без запроса пароля.
Rsync на Windows
Реализация rsync для Windows носит название cwRsync (не является аналогом программы — по сути, это утилита Rsync + библиотека Cygwin). Скачать ее можно на официальном сайте. Для загрузки доступны платная и бесплатная версии. Последняя не позволит поднять Rsync-сервер, получать поддержку, обновления безопасности и возможность работать в графическом интерфейсе.
Процедура использования клиента cwRsync аналогична описанному выше. Скачиваем архив программы и распаковываем его. Запускаем командную строку и переходим в каталог bin (находится в папке, куда была распакована программа).
Запускаем синхронизацию:
rsync.exe -avv —progress admin@192.168.0.15::data1 /cygdrive/c/temp
* обратите внимание на путь назначения — чтобы обратиться к диску C мы написали /cygdrive/c. Итоговое назначение — C:\temp
Копирование с помощью SSH:
rsync.exe -avv -e «./ssh -p 22» —progress admin@192.168.0.15:/data/ /cygdrive/c/temp
* обратите внимание, что мы пишем не ssh, а ./ssh, иначе, если мы используем 64-х битную систему и бесплатный пакет cwRsync, система не найдет путь до ssh и выдаст ошибку Failed to exec ssh: No such file or directory
Популярные теги
ubuntu
linux
ubuntu_18_04
settings
debian
setup
ubuntu_16_04
error
macos
redhat
windows
install
problems
mint
server
ubuntu_18_10
desktop
update
android
wifi
hardware
bash
убунту
files
rhel
network
docker
kali
nvidia
ustanovka
web
apt
security
windows_10
python
software
stretch
issues
kde
filesystem
apache2
mysql
program
video_card
for
password
shell
apt-get
drivers
partition
performance
gnome
manjaro
keyboard
terminal
kubuntu
disk
usb
vpn
driver
wi_fi
wine
nginx
package-management
best
installation
video
sound
delete
games
user
macbook
disk_space
freebsd
dual_boot
virtualbox
ubuntu_17_10
fedora
lubuntu
oshibka
boot
ssh
mail
os
centos
ubuntu_20_04
zorin_os
command-line
firewall
git
zorin
hotkeys
kvm
kernel
display
cron
mount
backup
grub
xubuntu
Examples
A command line to mirror FreeBSD might look like:
$ rsync -avz --delete ftp4.de.FreeBSD.org::FreeBSD/ /pub/FreeBSD/
The Apache HTTP Server supports only rsync for updating mirrors.
$ rsync -avz --delete --safe-links rsync.apache.org::apache-dist /path/to/mirror
The preferred (and simplest) way to mirror the PuTTY website to the current directory is to use rsync.
$ rsync -auH rsync://rsync.chiark.greenend.org.uk/ftp/users/sgtatham/putty-website-mirror/ .
$ date=$(date "+%FT%H-%M-%S") # rsync interprets ":" as separator between host and port (i. e. host:port), so we cannot use %T or %H:%M:%S here, so we use %H-%M-%S $ rsync -aP --link-dest=$HOME/Backups/current /path/to/important_files $HOME/Backups/back-$date $ ln -nfs $HOME/Backups/back-$date $HOME/Backups/current
Make a full backup of system root directory:
$ rsync -avAXHS --progress --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /path/to/backup/folder
Работа с Rsync: Примеры
Для этого руководства мы создали два каталога на нашем рабочем столе Linux и назвали их Original и Duplicate. Исходный каталог содержит три изображения, а дубликат пуст. Теперь давайте рассмотрим некоторые примеры rsync, увидим эту утилиту в действии.
Следующая команда, введённая в командной строке, скопирует или синхронизирует все файлы из исходного каталога в его копию.
rsync original/* duplicate/
* поручает команде rsync синхронизировать всё в исходном каталоге с дубликатом.
Если мы поместим новое изображение или файл в исходную папку и повторно запустим ту же команду, только новое изображение будет скопировано в место назначения.
Очень удобно использовать эту функцию, когда вы копируете файлы по сети с ограниченной пропускной способностью.
Помните, что эта команда будет копировать файлы только из основного каталога папки Original, но не из подкаталогов.
Если вы хотите скопировать и подкаталоги, используйте эту команду:
rsync -r original/ duplicate/
Опция -r (—recursive) указывает rsync копировать всё, включая подкаталоги и файлы из нашей исходной папки.
Модификатор , используемый после original, указывает rsync скопировать содержимое оригинального каталога в дубликат папки.
Если вы хотите синхронизировать файлы, скопируйте файлы, которые могут находиться в папке назначения, но не в оригинале, в исходную папку, используйте следующую команду:
rsync -r original duplicate/
С помощью этой команды мы можем убедиться, что как исходные папки, так и дубликаты будут содержать одинаковые файлы.
Ещё одна полезная опция — это -a (—archive), и её можно объединить со многими другими командами. Команда, в которой указанный этот параметр будет не просто копировать файлы, но и разрешения, время изменений и любые другие данные.
Команда -a будет выглядеть примерно так:
rsync -av --dry-run Original/ Duplicate/
Не волнуйтесь, ведь она только выглядит сложно! Давайте разберёмся.
Эта команда не делает каких-либо изменений, а просто показывает файлы, которые будут скопированы. С помощью этой команды вы можете получить список файлов, которые будут скопированы.
Если вы хотите скопировать все файлы из этого списка, повторите команду без —dry-run.
—dry-run, или -n заставляет rsync выполнить пробный запуск, который не вносит никаких изменений.
-a включает режим “архив”.
-v (—verbose), который добавляется к -a, образуя -av в нашей команде, увеличивает многословность. Проще говоря, с помощью -v вы получите более визуальный вывод, который показывает прогресс процесса.
Если вы хотите синхронизировать две папки, но удалить элементы в папке-дубликате, которых нет в исходной папке, добавьте –delete, например:
rsync -av --delete original/ duplicate/
Последняя переменная команды, которую мы рассмотрим, это -z (–compress). Эта команда объединит файлы, которые передаются по сети. В качестве бонуса давайте посмотрим, как перенести файлы из исходного сервера на другой. Команда будет выглядеть так:
rsync -za ~/Desktop/Original olha@192.168.22.90:~/tmp/
Как упоминалось ранее, -z сжимает файлы, -a или просто a, добавленная к -z, гарантирует, что все разрешения также будут скопированы.
~/Desktop/Original — это исходник. Это локальный каталог — тот, который находится на компьютере, из которого вы вошли, и, наконец, olha@192.168.22.90: ~/tmp/ означает место назначения.
olha@192.168.22.90 — это адрес удалённого сервера назначения, а : ~/tmp/ указывает на конкретную папку на этом компьютере.
Using Rsync In The Terminal
The Rsync terminal tool is very powerful, and thus can be piped into a lot of different apps. That said, most users only really need to know the basics. Here’s how it works. To transfer all of the content of one folder directly to another, use this command:
Remote to local transfer
rsync -r user@host:/path/to/remote/. /home/username/local/file/to/transfer/
These commands allow the user to directly, and recursively transfer all of the files in one folder to another either locally or remotely. Looking for more options? In the terminal, do: and try out the many rsync switches and options available.
Note: The Rsync help notes are quite large. Often times the terminal may cut bits of it off (or at the very least users are forced to endlessly scroll through them). To make things easier, try saving the help instructions directly to a text file for later. It can be done with this command:
rsync -h >> rsync-help.txt
Como alternativa de cp/mv
rsync se puede usar como una alternativa avanzada para la orden cp o mv, especialmente para copiar archivos más grandes:
$ rsync -P source destination
La opción -P es la misma que Ic|—partial —progress, que mantiene los archivos parcialmente transferidos y muestra una barra de progreso de la transferencia.
Es posible que desee utilizar la opción -r/—recursive para recoger recursivamente el contenido de los directorios.
Los archivos se pueden copiar localmente como con cp, pero el propósito motivador de rsync es copiar archivos de forma remota, es decir, entre dos servidores diferentes. Las ubicaciones remotas se pueden especificar con una sintaxis de dos puntos entre servidores:
$ rsync source host:destination
o
$ rsync host:source destination
Las transferencias de archivos en red utilizan el protocolo SSH de forma predeterminada y host puede ser un nombre de equipo real o un perfil/alias predefinido desde .ssh/config.
Para pasar a rsync valores predeterminados rápidamente, se pueden usar algunos alias:
function cpr() { rsync --archive -hh --partial --info=stats1 --info=progress2 --modify-window=1 "$@" }
function mvr() { rsync --archive -hh --partial --info=stats1 --info=progress2 --modify-window=1 --remove-source-files "$@" }
El uso del término checksum («suma de verificación») no es asimilable al comportamiento de la opción —checksum. La opción —checksum afecta a la heurística del archivo utilizada antes de transferir cualquier archivo. Independientemente de la opción ic|—checksum, siempre se usa una «suma de verificación» (checksum) para la construcción de archivos basada en bloques, que es como rynsc transfiere un archivo.
Lidiar con la barra diagonal
Arch por defecto usa «cp» de GNU. Sin embargo, rsync sigue la convención de BSD para «cp», que da un tratamiento especial a los directorios de origen con una bara diagonal «/». A pesar de que:
$ rsync -r source destination
crea un directorio «destination/source» con el contenido de «source»;
y la orden:
$ rsync -r source/ destination
copia todos los archivos presentes en «source/» directamente a «destination», sin subdirectorio intermedio, como si lo hubiera invocado así:
$ rsync -r source/. destination
Este comportamiento es diferente al de GNU para cp, que trata «source» y «source/» de forma idéntica (pero no «source/.»). Además, algunos intérpretes de órdenes añaden automáticamente la barra inclinada final cuando se completan los nombres de directorios con el tabulador. Debido a estos factores, puede haber cierta tendencia entre los usuarios de rsync nuevos u ocasionales a olvidarse del comportamiento diferente de rsync, y sin darse cuenta provoquen un desastre o incluso sobrescribir archivos importantes al dejar la barra diagonal en la línea de órdenes.
Por lo tanto, puede ser prudente usar un script para eliminar automáticamente las barras diagonales finales antes de invocar rsync:
#!/bin/zsh new_args=(); for i in "$@"; do case $i in /) i=/;; */) i=${i%/};; esac new_args+=$i; done exec rsync "${(@)new_args}"
Este script se puede colocar en algún lugar de la ruta y crear un alias a rsync en el archivo de inicio de shell.
Basic Syntax
The basic syntax of rsync is very straightforward, and operates in a way that is similar to ssh, scp, and cp.
We will create two test directories and some test files with the following commands:
We now have a directory called with 100 empty files in it.
We also have an empty directory called .
To sync the contents of to on the same system, type:
The -r option means recursive, which is necessary for directory syncing.
We could also use the -a flag instead:
The -a option is a combination flag. It stands for “archive” and syncs recursively and preserves symbolic links, special and device files, modification times, group, owner, and permissions. It is more commonly used than -r and is usually what you want to use.
An Important Note
You may have noticed that there is a trailing slash (/) at the end of the first argument in the above commands:
This is necessary to mean “the contents of ”. The alternative, without the trailing slash, would place , including the directory, within . This would create a hierarchy that looks like:
Always double-check your arguments before executing an rsync command. Rsync provides a method for doing this by passing the -n or –dry-run options. The -v flag (for verbose) is also necessary to get the appropriate output:
Compare this output to the output we get when we remove the trailing slash:
You can see here that the directory itself is transferred.
Синхронизируй это
Теперь, когда вы знакомы с , у вас не осталось никаких причин не
выполнять регулярное резервное копирование. Что случилось? Ваша собака
разгрызла жесткий диск? (Бывает и такое!) Примите меры заранее, и тогда
ваши данные останутся в полном порядке. Ведь теперь все ваши ценные файлы
хранятся вFIDOnet.
Похожие темы
-
Speaking UNIX:
Advanced applications of rsync
— оригинал статьи. -
Посетите
домашнюю страницу rsync,
чтобы узнать больше о проекте и почитать новости о его разработке -
Руководство по rsync:
здесь можно найти множество рецептов работы с rsync - Прочтите
man-страницу
rsync -
Оболочки UNIX: узнайте больше об
оболочках
UNIX из этой статьи Википедии.
Упрощенный доступ к ключам с помощью скрипта keychain
К данному моменту мы узнали, как работают некоторые программы пакета OpenSSH (ssh, scp, ssh-agent и ssh-add), а также создали и установили секретный и открытый ключи для того, чтобы обеспечить безопасный автоматический процесс входа на сервер. Вы, вероятно, уже поняли, что большую часть работы по настройке требуется выполнить только единожды. Например, процесс создания и установки ключей, а также настройка запуска ssh-agent из .bash_profile выполняются только один раз для каждого сервера. Это хорошо.
Плохо то, что программа ssh-add должна запускаться каждый раз, когда мы входим на сервер внешнего хранилища и, помимо этого, в том, что обеспечение совместимости программы ssh-agent с планировщиком с, который потребуется нам для организации резервного копирования, требует дополнительных усилий. Причина неспособности cron взаимодействовать с ssh-agent заключается в том, что задачи cron выполняются как дочерние процессы планировщика и поэтому не получают копию переменной .
К счастью, данная проблема имеет решение, позволяющее не только снять ограничения, связанные с использованием ssh-agent и ssh-add, но и использовать cron для автоматизации всех видов задач, требующих безопасного беспарольного доступа к удаленным машинам. В своем цикле OpenSSH key management (ссылка приведена в разделе ), состоящем из трех статей, опубликованных developerWorks в 2001 году, Дэниел Роббинс (Daniel Robbins) представил скрипт keychain, представляющий собой интерфейс к программам ssh-agent и ssh-add, облегчающий процесс беспарольного доступа. Со временем был сделан ряд улучшений данного скрипта, который теперь поддерживается Ароном Гриффисом (Aron Griffis). Последний выпуск, датированный 17 июня 2004 г., имеет номер 2.3.2-1.
Текст скрипта keychain слишком велик для того, чтобы его можно было привести в данной статье, поскольку он, как и любой качественно написанный скрипт, включает большое количество проверок возникновения ошибок, подробную документацию и внушительный объем кроссплатформенного кода. Несмотря на обширные возможности, скрипт keychain можно быстро загрузить с web-сайта проекта (ссылка приведена в разделе ).
Работать со скриптом, после того как вы его загрузите и установите, очень просто. Просто зайдите на каждый из серверов и добавьте следующие две строки в конец файлов .bash_profile:
Когда вы зайдете на серверы в следующий раз, keychain запросит парольную фразу. При последующих входах, однако, ввод парольной фразы не будет запрашиваться до момента перезагрузки сервера. И, что самое главное, задачи cron смогут осуществлять безопасный доступ к удаленным машинам без ввода пароля. Теперь наше решение совмещает преимущества повышенной безопасности и простоты использования.
Листинг 9. Инициализация keychain на каждом сервере
KeyChain 2.3.2; http://www.gentoo.org/projects/keychain Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL * Initializing /home/accountname/.keychain/localhost.localdomain-sh file... * Initializing /home/accountname/.keychain/localhost.localdomain-csh file... * Starting ssh-agent * Adding 1 key(s)... Enter passphrase for /home/accountname/.ssh/id_dsa: (enter passphrase)
Características y aplicaciones
Mientras que el algoritmo rsync forma parte del núcleo de la aplicación rsync y esencialmente optimiza las transferencias entre dos computadoras sobre TCP/IP, la aplicación rsync provee otras funciones que asisten en la transferencia. Estas incluyen compresión y descompresión de los datos bloque por bloque, utilizando zlib al enviar y recibir, y soporte para protocolos de cifrado, tal como SSH, lo que permite transmisión cifrada y eficientemente diferenciada de datos comprimidos usando el algoritmo rsync.
Adicionalmente puede utilizarse una aplicación de tunneling también para crear un túnel cifrado que asegure los datos transmitidos.
Además de archivos, el algoritmo permite copiar directorios, aún recursivamente, así como vínculos, dispositivos, grupos y permisos. No requiere por defecto privilegios de root para su uso.
rsync fue escrito como un reemplazo de rcp y SCP. Una de las primeras aplicaciones de rsync fue la creación de un espejo (mirroring) o copia de respaldo de múltiples clientes Unix dentro de un servidor Unix central, usando rsync/ssh y cuentas estándares de Unix. Habitualmente se ejecuta mediante herramientas de scheduling como cron, para automatizar procesos de sincronización entre múltiples computadoras host y servidores centrales.
Как Проверить Версию Rsync
Прежде чем мы проверим версию rsync, нам нужно зайти на сервер VPS, который мы будем использовать. Это полезное руководство поможет вам сделать это на машине с Windows, используя Putty SSH. Если вы работаете на компьютере с MacOS или Linux, используйте вместо этого терминал.
Rsync предустановлен во многих дистрибутивах Linux. Чтобы проверить, установлен ли rsync на вашем компьютере, выполните следующую команду:
rsync -version
В нашем дистрибутиве Ubuntu, вот что мы увидим в выводе:
rsync version 3.1.2 protocol version 31
Это означает, что версия rsync 3.1.2 уже установлена на нашей машине.
Основной Синтаксис
Основной синтаксис rsync работает следующим образом:
rsync
Существует несколько способов использования команды rsync Linux. В этом примере [optional modifiers (необязательные модификаторы) указывают действия, которые необходимо предпринять, [SRC] является исходным каталогом, а [DEST] — это целевой каталог или машина.
Основной Синтаксис для Удалённой Оболочки
Если вы используете удалённую оболочку, такую как SSH или RSH, синтаксис rsync будет немного другим.
Для доступа к удалённой оболочке (PULL) используйте команду rsync:
rsync HOST:SRC
Для доступа к удалённой оболочке (PUSH) используйте команду rsync:
rsync SRC HOST:
Connection
An rsync process operates by communicating with another rsync process, a sender and a receiver. At startup, an rsync client connects to a peer process. If the transfer is local (that is, between file systems mounted on the same host) the peer can be created with fork, after setting up suitable pipes for the connection. If a remote host is involved, rsync starts a process to handle the connection, typically Secure Shell. Upon connection, a command is issued to start an rsync process on the remote host, which uses the connection thus established. As an alternative, if the remote host runs an rsync daemon, rsync clients can connect by opening a socket on TCP port 873, possibly using a proxy.
Rsync has numerous command line options and configuration files to specify alternative shells, options, commands, possibly with full path, and port numbers. Besides using remote shells, tunnelling can be used to have remote ports appear as local on the server where an rsync daemon runs. Those possibilities allow adjusting security levels to the state of the art, while a naive rsync daemon can be enough for a local network.
Ubuntu
sudo apt install rsync grsync
Debian
sudo apt-get install rsync grsync
Arch Linux
sudo pacman -S rsync grsync
Fedora
sudo dnf install rsync grsync
OpenSUSE
sudo dnf install rsync grsync
Другие Linux
Использование Rsync в терминале
Терминальный инструмент Rsync является очень мощным и, следовательно, может использоваться во многих различных приложениях. Тем не менее, большинство пользователей действительно должны знать основы. Вот как это работает. Чтобы передать все содержимое одной папки напрямую в другую, используйте эту команду:
Локальная передача
rsync -r /home/username/local/file/to/transfer/. user@host:/path/to/destination/folder
Удаленный локальный перевод
rsync -r user@host:/path/to/remote/. /home/username/local/file/to/transfer/
Эти команды позволяют пользователю напрямую и рекурсивно передавать все файлы из одной папки в другую как локально, так и удаленно. Ищете больше вариантов? В терминале выполните:
rsync -h
и опробуйте множество доступных ключей и опций rsync.
Примечания к справке по Rsync довольно большие. Часто терминал может отключить его (или, по крайней мере, пользователи вынуждены бесконечно прокручивать их). Чтобы упростить задачу, попробуйте сохранить инструкции помощи непосредственно в текстовом файле для дальнейшего использования. Это можно сделать с помощью этой команды:
rsync -h >> rsync-help.txt
Использование инструмента Grsync GUI
По большей части инструмент Grsync действительно является лучшим способом использования Rsync. Это потому, что, хотя сама команда Rsync является мощной, ее синтаксис довольно запутан для тех, кто просто хочет выполнить простую синхронизацию файлов. Когда дело доходит до команд терминала, это обычно не так, однако правила должны нарушаться.
Запустите Grsync на вашем компьютере и тоже откройте файловый менеджер. Внутри файлового менеджера найдите местоположение локальной папки, которую вы хотите перенести. Если вы получаете перевод вместо отправки, найдите (или создайте) папку назначения.
Найдя информацию о местоположении, перейдите к Grsync и начните с настройки источника. Нажмите «Открыть» и найдите локальную папку, которую вы хотите перенести. Если источник удаленный, напишите: user@host:/path/to/remote/После ввода / просмотра источника перевода перейдите к следующей области выбора. Нажмите кнопку «Открыть», чтобы найти папку назначения (если источник передачи удаленный), или введите: user@host:/path/from/remote/, если вы осуществляете передачу по сети.
У инструмента Grsync есть нормальные значения по умолчанию, и он не требует никаких действий для обычного пользователя. Чтобы начать передачу, нажмите кнопку «Пуск». Когда передача начнется, появится экран загрузки. Если вам интересно, как работает Rsync, нажмите кнопку «rsync output». Это отобразит полный вывод команды, к которому может обратиться пользователь.
Quick Grsync Tip
Не знаете, почему не работает синхронизация файлов? Попробуйте использовать режим симуляции. Это позволяет пользователям настроить Rsync, а затем запустить симуляцию. Фактические файлы не передаются. Вместо этого они моделируются и выводится. Это может помочь новичкам в Rsync настроить свои параметры передачи, обнаружить ошибки и т. д.
Чтобы перейти в режим симуляции в Grsync, нажмите «Файл», затем нажмите «Симуляция». Либо откройте инструмент симулятора Grsync с помощью сочетания клавиш Ctrl + S.
Другие приемы и советы
Начав работать с удаленным в повседневных задачах, вам, вероятно, понадобится,
чтобы демон был всегда в рабочем состоянии. Для Linux- и UNIX-машин имеется
загрузочный сценарий , который обычно находится по адресу .
Воспользовавшись этим сценарием и утилитой вашей операционной системы, управляющей
включением и выключением компонентов, можно организовать запуск при загрузке
системы. Если же вы запускаете демон без привилегий суперпользователя или у
вас нет доступа к загрузочным сценариям, то вы можете запускать с
помощью :
@reboot /usr/bin/rsync --daemon --port=7777 --config=/home/strike/rsyncd/rsyncd.conf
Эта команда запускает демон каждый раз при перезагрузке машины. Поместите эту строку в файл crontab и сохраните его.
Вы уже видели, как можно заранее обнаружить проблему, используя предварительный просмотр
с помощью . Также можно отслеживать состояние задач
с помощью двух параметров:
и . Первый из
этих параметров отображает шкалу хода выполнения задания.
Второй показывает статистику сжатия и передачи данных. С помощью
можно ускорить
передачу данных между машинами. Вместо пересылки данных в изначальном виде отправитель
выполняет сжатие перед отправкой, а получатель их распаковывает, и в результате меньшее
количество байтов передается за меньшее время.
По умолчанию копирует все файлы из источника данных в место назначения.
Это называется дублированием. Если вы хотите организовать зеркалирование данных,
т.е. чтобы локальные и удаленные данные в точности совпадали, следует использовать
параметр . Например, если в источнике имеются файлы A, B и C, то по
умолчанию создаст на удаленной машине копии всех трех файлов. Однако если
удалить из источника, например, файл B и выполнить дублирование еще раз, то на
удаленной машине файл B останется, т.е. удаленная копия перестанет быть точной
копией локальных данных. Команда обеспечивает зеркалирование данных,
убирая из удаленной копии файлы, которые уже не существуют в исходных данных.
Зачастую имеются файлы, которые вы не хотели бы помещать в архив или резервную копию.
Это могут быть вспомогательные файлы, создаваемые редакторами (их имена обычно
заканчиваются тильдой []) и другими утилитами, а также множество не имеющих
для вас ценности файлов в вашей домашней директории, таких как MP3-файлы, которые
при необходимости можно будет восстановить. В таком случае можно указать
шаблоны, по которым он будет исключать файлы из обработки. Можно указать в
командной строке шаблон или же текстовый файл, содержащий список шаблонов.
Также шаблоны можно использовать совместно с командой , чтобы
удалить подобные файлы из удаленной копии.
Чтобы исключить файлы, соответствующие определенному шаблону, используйте команду
. Помните, что если какие-либо символы в шаблоне имеют для оболочки
особое значение, например , то шаблон следует заключить в одиночные кавычки:
$ rsync -a --exclude='*~' /home/strike/data example.com::data
Допустим, что файл /home/strike/excludes содержит следующий список шаблонов:
*~ *.old *.mp3 tmp
Тогда скопировать все файлы за исключением тех, которые соответствуют какомy-либо из этих шаблонов, можно с помощью следующей команды:
$ rsync -a --exclude-from=/home/strike/excludes /home/strike/data example.com::data