Копирование файлов на удаленный сервер и обратно

Дмитрий Корнев
12 сентября 2019

Лучше всего с этой задачей справляется программа rsync (remote synchronization). Она эффективно синхронизирует любые объёмы файлов и каталогов. Её удобно настроить для автоматизированной работы. Программа никогда меня не подводила.

Установка:

apt install rsync

Для передачи файлов я использую ssh и ключ для авторизации, чтобы обходиться без паролей.

Передача файла и каталога на удалённый сервер:

/usr/bin/rsync -Pav -e "ssh -i /home/kornev/.ssh/файл_ключа" /каталог/файл_для_передачи root@ip_сервера:"/каталог/на/сервере"
/usr/bin/rsync -Pav -e "ssh -i /home/kornev/.ssh/файл_ключа" /каталог/для/передачи root@ip_сервера:"/каталог/на/сервере"

Файл и каталог будут помещены в указанный каталог.

Тоже самое в обратном направлении:

/usr/bin/rsync -Pav -e "ssh -i /home/kornev/.ssh/файл_ключа" root@ip_сервера:"/каталог/файл_на_сервере" /каталог/локальный
/usr/bin/rsync -Pav -e "ssh -i /home/kornev/.ssh/файл_ключа" root@ip_сервера:"/каталог/на/сервере" /каталог/локальный

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

Лимит скорости

Команда --bwlimit=KBPS устанавливает ограничение на скорость передачи. Порог задаётся именно в Кб, а не в Кбит.

Комментарии