cp progress ( rsync ) Резервное копирование

Ответить
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

cp progress ( rsync ) Резервное копирование

Сообщение ya »

rsync -vh --progress source-file destination-file

Код: Выделить всё

rsync -avAXEWSlHh /source /destination --no-compress --info=progress2 --dry-run
Последний раз редактировалось ya 10 май 2024, 09:03, всего редактировалось 2 раза.
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

Использование rsync для выполнения регулярного резервного копирования

Сообщение ya »

Использование rsync для выполнения регулярного резервного копирования

Код: Выделить всё

#/bin/bash 
CURDATE=$(date +%m-%d-%Y) 
if [ ! -f /usr/bin/rsync ]; then 
    sudo apt install -y rsync 
fi 
rsync -avb --delete --backup-dir=/backup/incremental/$CURDATE /src /target
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

Различные примеры использования команды rsync

Сообщение ya »

Различные примеры использования команды rsync
Команда rsync не требует привилегий root и может быть запущена любым пользователем системы. Основной синтаксис команды rsync выглядит следующим образом:
bash

Код: Выделить всё

# rsync [option] [source] [destination]
Некоторые важные опции:
--progress отображает процесс копирования
-v: подробный вывод
-z: сжимать данные файла
-h: человекочитаемый вывод
-a: архивировать файлы и каталоги при копировании
Последний раз редактировалось ya 10 май 2024, 09:01, всего редактировалось 1 раз.
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

Копирование/синхронизация каталогов rsync

Сообщение ya »

Копирование/синхронизация каталогов локально с помощью команды rsync

Код: Выделить всё

# rsync -r /source/dirctory/ /destination/directory
Команда rsync для копирования/синхронизации файлов с локального на удаленный сервер Linux

Код: Выделить всё

# rsync -zvh  /local/directory/file user@remote_host:/remote/directory
Команда rsync для копирования/синхронизации файлов с удаленного на локальный сервер Linux

Код: Выделить всё

# rsync -zvh user@remote_host:/source/directory/file /local/directory
Использование SSH для передачи данных с помощью команды rsync

Код: Выделить всё

# rsync -zvhe ssh user@destination_host:/directory/file /source/path/file
Команда rsync для установки максимального размера файла при передаче файлов
Параметр --max-size позволяет указать максимальный размер файла, который будет скопирован или синхронизирован. Файл, превышающий максимальный размер, не будет передан. Вы можете использовать K для KB, M для MB и G для GB.

Код: Выделить всё

# rsync -zavh --max-size=num K filename /destination/directory
Команда rsync для установки ограничения пропускной способности для передачи файлов
С помощью опции --bwlimit можно установить ограничение пропускной способности для передачи данных.

Код: Выделить всё

# rsync -zvh --bwlimit=5 /source/directoy/file user@remote_host:/destination/directory
Отображение подробностей выполнения команды rsync
Вы можете использовать опцию --progress, чтобы просмотреть детали процесса копирования/синхронизации в выходных данных.

Код: Выделить всё

# rsync -zvh --progress /source/directoy/ user@remote_host:/destination/directory
Удалите исходный файл после копирования с помощью команды rsync
Иногда вы можете захотеть удалить исходный файл после того, как он будет скопирован в другое место. Для этого можно использовать опцию --remove-source-files

Код: Выделить всё

# rsync -zavh --remove-source-files /source/directory/ user@remote_host:/destination/directory
Исключение файлов при копировании с помощью команды rsync
Параметр --exclude позволяет исключить определенные файлы из каталога при копировании.

Код: Выделить всё

# rsync -zavh  --exclude 'file to exclude' /source/directory/ user@remote_host:/destination/directory
Команда rsync для отображения изменений после передачи файла
Вы можете использовать опцию -i или --itemize-changes, чтобы просмотреть список изменений, внесенных в файлы или каталоги между исходным и конечным Linux-сервером.

Код: Выделить всё

# rsync -zavhi  /source/directory/ user@remote_host:/destination/directory

Код: Выделить всё

# rsync -zavh --itemize-changes  /source/directory/ user@remote_host:/destination/directory
Список файлов внутри каталога с помощью команды rsync

Код: Выделить всё

# rsync user@remote_host:/destination/directory/
Команда rsync для сохранения владельца после передачи файла
Обычно при копировании файла с помощью rsync владелец копируемого файла может измениться в зависимости от места назначения. Если вы хотите сохранить того же владельца, что и у исходного файла, вы можете использовать опцию -o или --owner

Код: Выделить всё

# rsync -zvho /source/directory/file destination/directory
Команда rsync для сохранения группы после передачи файла
Вы также можете сохранить групповую принадлежность исходного файла для копирования с помощью опции -g или --group.

Код: Выделить всё

# rsync -zvhg /source/directory/file /destination/directory
Удаление файла в каталоге назначения с помощью команды rsync
Во время синхронизации вы можете удалить файл, если он присутствует в каталоге назначения, но не существует в источнике. Параметр --delete удаляет файлы, которых нет в исходном каталоге.

Код: Выделить всё

# rsync -zavh --delete /source/directory/ user@remote_host:/destination/directory
Выполните пробный запуск команды rsync
Опция -n или --dry-run позволяет выполнить пробный запуск команды rsync. Она не вносит никаких изменений, но выдает тот же результат, что и при реальном запуске. Это может быть полезно, если вы хотите узнать, что будет делать команда rsync после ее реального выполнения.

Код: Выделить всё

# rsync -zavh -n user@remote_host:/source/directory/ /destination/directory

Код: Выделить всё

# rsync -zavh --dry-run user@remote_host:/source/directory/ /destination/directory
Команда rsync для пропуска синхронизации несуществующих файлов
Эта команда используется для того, чтобы не создавать файлы или каталоги, которые не существуют в каталоге назначения. Она обновит только те файлы или каталоги, которые уже присутствуют в каталоге назначения.

Код: Выделить всё

# rsync -zavh --existing /source/directory/ user@remote_host:/destination/directory

Код: Выделить всё

# rsync -zavh --ignore-non-existing /source/directory/ user@remote_host:/destination/directory
Команда rsync для пропуска синхронизации существующих файлов
Опция --ignore-existing поможет вам пропустить обновление файлов, которые уже присутствуют в каталоге назначения. Она не влияет на существующие каталоги.

Код: Выделить всё

# rsync -zavh --ignore-existing /source/directory/ user@remote_host:/destination/directory
Копирование файла с символической ссылкой с помощью команды rsync
Обычно rsync копирует файл-референт файла символической ссылки. Чтобы скопировать/синхронизировать символьную ссылку в другое место, следует использовать опцию -l.

Код: Выделить всё

# rsync -zavh -l /source/directory/file user@remote_host:/destination/directory
Команда rsync для рекурсивного копирования каталогов
Опция -r или --recursive указывает rsync на рекурсивное копирование/синхронизацию каталога. Все его файлы и подкаталоги будут скопированы в целевое место.

Код: Выделить всё

# rsync -zavh -r /source/directory/ user@remote_host:/destination/directory

Код: Выделить всё

# rsync -zavh --recursive /source/directory/ user@remote_host:/destination/directory
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

Re: cp progress ( rsync ) Резервное копирование

Сообщение ya »

Для работы rsync, обязательно надо чтобы он был установлен на обоих хостах: источник и получатель

sudo apt-get install sshpass

/usr/bin/rsync -ratlz --rsh="/usr/bin/sshpass -p password ssh -o StrictHostKeyChecking=no -l username" src_path dest_path


Запустите ssh-keygen
Он попросит указать путь к файлу ключа, ввести ключевую фразу и повторить ту же фразу. Ответьте на все три вопроса, просто нажав Enter (принимая значения по умолчанию).

Запустите ssh-copy-id -i ~/.ssh/id_rsa.pub <удаленный хост>.
Путь ~/.ssh/id_rsa.pub к файлу открытого ключа может быть другим, если вы выбрали другой путь в шаге 1. Замените <remote-host> на IP-адрес или имя хоста удаленного узла, на котором вы хотите войти в систему.

Код: Выделить всё

rsync --partial --progress --rsh="ssh -i dsa_private_file" host_name@host:/home/me/d .

Код: Выделить всё

sshpass -p "password" rsync -ae "ssh -p remote_port_ssh" /local_dir  remote_user@remote_host:/remote_dir
Ответить