====== 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 бэкап}}