Rsync является мощным инструментом для эффективной передачи файлов между компьютерами через сеть. Эта статья объясняет, как резервировать файлы из удаленной системы Linux (VPS) в локальную систему, используя простой сценарий rsync. Вы также узнаете, как использовать сценарий с помощью SSH-аутентификации на основе паролей и аутентификации на основе SSH.
Rsync Backup Script для SSH аутентификация на основе пароля
Создайте сценарий или в каталоге домашних пользователей.
| |
Вставьте следующие строки кода:
| |
Основные функции сценария
- Определение каталогов источников и назначения:
| |
Эти переменные хранят исходные и целевые каталоги для операции rsync. Вы должны заменить их реальными путями, которые вы хотите использовать.
- Определение пароля SSH:
| |
Эта переменная держит SSH пароль для аутентификации при подключении к удаленному серверу. Замените "YourRootPassword" на свой фактический root пароль.
- Успешно завершает:
| |
Это запускает бесконечную петлю, которая будет работать до успешного завершения операции rsync. Это позволяет сценарию повторно провести операцию, если она провалится.
- Выполняйте операцию rsync:
| |
Эта линия выполняет операцию rsync со следующими параметрами и конфигурациями:
| |
- Проверяет состояние выхода rsync:
| |
После операции rsync этот раздел проверяет состояние выхода rsync. Если статус выхода 0 (показывает успех), он печатает сообщение успеха и выходит из цикла. Если rsync потерпит неудачу (ненулевой статус выхода), он распечатывает сообщение об ошибке, ждет 5 секунд, а затем перезаписывает операцию rsync.
- Удалить ключ SSH от агента:
| |
Если вы использовали SSH-ключи для аутентификации и добавили SSH-ключ к агенту в начале каждой итерации цикла, эта линия удаляет SSH-ключ от агента, чтобы убедиться, что он не остался позади.
Этот сценарий, по сути, обертывает операцию rsync в петле ретри, обрабатывая аутентификацию SSH на основе паролей и отображая информацию о ходе работы. Он продолжает перезаряжать операцию до тех пор, пока она не завершится или пока вы не закончите сценарий вручную.
1.2. Сделайте сценарий исполняемым
Запустите следующую команду, чтобы сделать сценарий исполняемым:
| |
1.3. Чтобы инициировать резервное копирование:
| |
Это займет некоторое время в зависимости от размера данных и скорости сети.
После завершения работы скрипта перейдите в каталог с резервными копиями и убедитесь, что файлы скопированы правильно.
Помните, что использование паролей в скриптах может представлять риск безопасности, поэтому важно принять меры предосторожности, чтобы защитить ваши скрипты и учетные данные. Кроме того, рассмотрите возможность использования аутентификации на основе SSH для повышения безопасности при работе с удаленными серверами.
Rsync Backup Script для SSH-Key аутентификация
Для повышения безопасности и удобства без паролей, наш второй сценарий использует SSH-Key аутентификацию.
2.1 Настройка SSH-Key аутентификация
Прежде всего, необходимо настроить SSH-Key аутентификацию (такую как SSH-без пароля аутентификация).
2.2 Создание сценария Rsync
Если вы хотите изменить сценарий для аутентификации на основе SSH вместо аутентификации на основе паролей, вы можете сделать это, убрав код, связанный с паролем SSH. В частности, вы можете удалить sshpass часть команды rsync и соответствующую переменную ssh_password.
Создайте сценарий или в каталоге домашних пользователей.
| |
Ниже приведен измененный сценарий для аутентификации на основе SSH.
| |
В этом измененном сценарии:
Команда sshpass и переменная ssh_password были удалены.
Команда rsync использует опцию -i для указания пути к вашему частному ключу для аутентификации на основе SSH.
Убедитесь, что заменить /path/to/your/private/key фактическим путем к вашему частному ключу. Этот сценарий будет использовать SSH-ключевую аутентификацию для подключения к VPS, что сделает его более безопасным и удобным по сравнению с аутентификацией на основе паролей.
2.3. Сделайте сценарий исполняемым
Запустите следующую команду, чтобы сделать сценарий исполняемым:
| |
2.4 Запустить сценарий
Запустить сценарий с помощью команды:
| |
В зависимости от скорости сети и размера данных, передача файла может занять некоторое время.
Автоматизация с помощью Cron
Расписания cron хранятся в файле с именем crontab. Типичная запись crontab начинается с пяти значений (или звездочек), за которыми следует команда. Значения сообщают cron, когда выполнять команду, а звездочка означает «все».
| |
Чтобы отредактировать crontab, выполните:
| |
И добавьте строку:
| |
Это запланирует cron для запуска команды в 3:00 утра, каждый день любого месяца.
Убедитесь, что сценарий имеет исполняемые разрешения.
Завершение
Эти скрипты могут показаться простыми на первый взгляд, но они выполняют критически важные задачи, которые поддерживают стабильность, безопасность и бесперебойную работу серверов.
Вы также можете поделиться статьей со своими друзьями в социальных сетях, которым может быть интересна эта статья, или просто оставить комментарий ниже. Спасибо.