====== rclone - rsync для облаков ======
Утилита для работы с различными облачными хранилищами. Не понимаю, как я раньше её не заметил.
Доки: https://rclone.org/docs/
===== Заметки для FTP =====
Перенести (!) файлы из локального каталога на FTP сервер (не скопировать и не синхронизировать).
rclone move /var/www/bak ftp-srv-name:/remote-path
''rclone copy|move|sync откуда имя-настроеного-стораджа:/путь-на-сторадже''
Посмотреть файлы на удаленном сервере с помощью [[https://rclone.org/commands/rclone_tree/|tree]]
rclone tree ftp-srv-name:/remote-path
Через ncdu можно посмотреть размер файлов
rclone ncdu ftp-srv-name:/remote-path
Ошибка при move на FTP
2018/11/04 21:28:26 ERROR : ftp://192.168.1.77:21/files: Error while Logging in into 192.168.1.77:21: 530 Sorry, the maximum number of allowed clients (5) are already connected.
[[https://github.com/ncw/rclone/issues/2166|решается ключом transfers]]
rclone --transfers 1 move /var/www/bak ftp-srv-name:/remote-path
через какое-то время пришлось [[https://github.com/ncw/rclone/issues/2166|еще добавить ключ]] ''--checkers 1''
rclone --transfers 1 --checkers 1 move /var/www/bak ftp-srv-name:/remote-path
Если что-то непонятно всегда используем ключ ''--dry-run''.
Удалить файлы старше N дней на FTP FIXME
rclone delete with the --min-age
https://forum.rclone.org/t/delete-old-files-remotely/4471
==== Failed to find remote: didn't find filing system for "ftp" =====
В Debian старая версия. Ставим вручную
curl https://rclone.org/install.sh | sudo bash
===== Разное =====
==== Проверка свободного места ====
Команда [[https://rclone.org/commands/rclone_about/|about]], [[https://github.com/rclone/rclone/issues/1138#issuecomment-382209370|rclone size: report total space available and free as well as used]]
Например для sftp в hetzner storage box
# rclone about sftp-hetzner:/
Total: 100 GiB
Used: 76.412 GiB
Free: 23.588 GiB
==== Не копировать существующие файлы ====
Пропустить файлы если они уже существуют можно с помощью [[https://rclone.org/docs/#ignore-existing|--ignore-existing]]
rclone copy --ignore-existing remote-path:folder destination:my_bak
==== Копировать только определенные файлы ====
Используем [[https://rclone.org/filtering/|--include, --exclude, --filter]]
Копируем файлы и именем ''RTFM_log_*'' с **max-age** 2 часа
Параметры времени, [[https://rclone.org/docs/#time-option|#time-option]] - [[https://rclone.org/filtering/#max-age-don-t-transfer-any-file-older-than-this|max-age]] и [[https://rclone.org/filtering/#min-age-don-t-transfer-any-file-younger-than-this|min-age]]
rclone copy remote-path:foobar/files/ destination:my_bak --include RTFM_log_* --max-age 2h --no-traverse
Копируем только .json
rclone copy remote-path:foobar/files/ destination:my_bak --include "*.json" --no-traverse
Копируем только .json и .txt
rclone copy remote-path:foobar/files/ destination:my_bak --include "*.{json,txt}" --no-traverse
{{tag>rclone ftp бэкап}}