Получите пошаговое руководство, как автоматизировать инкрементное резервное копирование файлов с помощью rsync (remote synchronization). Научитесь использовать облачное хранилище данных Hetzner Storage Box. Узнайте, как повысить свою квалификацию в качестве ИТ-специалиста и зарабатывать в разы больше.
В статье вы узнаете:
- почему важно выполнять резервное копирование;
- об утилите rsync (remote synchronization);
- о примерах использования rsync;
- про облачное хранилище данных Hetzner Storage Box;
- как использовать rsync на backup-сервере Hetzner Storage Box;
- как повысить свою квалификацию в качестве ИТ-специалиста и зарабатывать в разы больше в условиях экономического кризиса.
Настраиваем авторизацию по ключам в Hetzner StorageBox
Генерируем ключи для без парольного доступа:
[email protected]:~# ssh-keygen
Пример вывода:
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:0SyX0Vapq9OE7lLAq8yG4RNqp3Fjs5y19gwfyxsOGIY [email protected] The key's randomart image is: +---[RSA 2048]----+ | .. ... | | o oo . | | .o =. . | | . o+ . | | E o So . . | | .oo . o o | | .o**+.oo + | | o==**O.++ . | | ..o++..O+.. | +----[SHA256]-----+
Преобразовываем с генерированный ключ в формат RFC4716:
ssh-keygen -e -f .ssh/id_rsa.pub | grep -v "Comment:" > .ssh/id_rsa_rfc.pub
Создадим authorized_keys файл:
cat .ssh/id_rsa.pub >> storagebox_authorized_keys cat .ssh/id_rsa_rfc.pub >> storagebox_authorized_keys
Включаем доступ к хранилищу по ssh:
Сбрасываем пароль доступа к хранилищу:
Закачиваем файл с ключами на удаленное хранилище Hetzner StorageBox:
echo -e "mkdir .ssh \n chmod 700 .ssh \n put storagebox_authorized_keys .ssh/authorized_keys \n chmod 600 .ssh/authorized_keys" | sftp <username>@<username>.your-storagebox.de
Пример для моего хранилища:
echo -e "mkdir .ssh \n chmod 700 .ssh \n put storagebox_authorized_keys .ssh/authorized_keys \n chmod 600 .ssh/authorized_keys" | sftp [email protected]
Пример вывода:
The authenticity of host 'u252748.your-storagebox.de (188.40.2.177)' can't be established. RSA key fingerprint is SHA256:EMlfI8GsRIfpVkoW1H2u0zYVpFGKkIMKHFZIRkf2ioI. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'u252748.your-storagebox.de,188.40.2.177' (RSA) to the list of known hosts. [email protected]'s password: Connected to u252748.your-storagebox.de. sftp> mkdir .ssh sftp> chmod 700 .ssh Changing mode on /.ssh sftp> put storagebox_authorized_keys .ssh/authorized_keys Uploading storagebox_authorized_keys to /.ssh/authorized_keys storagebox_authorized_keys 100% 440 0.4KB/s 00:00 sftp> chmod 600 .ssh/authorized_keys Changing mode on /.ssh/authorized_keys
Далее проверяем работу, вы должны заходить в хранилище уже без пароля, по ключу:
sftp <username>@<username>.your-storagebox.de
Пример вывода:
sftp [email protected] Connected to u252748.your-storagebox.de. sftp>
Написание скрипта для резервного копирования файлов
Создадим скрипт резервного копирования:
vim backup-rsync.sh
Cо следующим содержимым:
#!/bin/bash # # rsync -arRLvt --delete --progress /dir1/dir2/ /home/samba/docs/backup # # -a, --archive archive mode; equals -rlptgoD (no -H,-A,-X) # -r, --recursive recurse into directories # -R, --relative use relative path names # -l, --links copy symlinks as symlinks # -L, --copy-links transform symlink into referent file/dir # -v, --verbose increase verbosity # -t, --times preserve modification times # -P same as --partial --progress # --delete delete extraneous files from dest dirs # /usr/bin/rsync -arRLt --delete -e 'ssh -p23' /root/ [email protected]:srv1/ /usr/bin/rsync -arRLt --delete -e 'ssh -p23' /etc/ [email protected]:srv1/ /usr/bin/rsync -arRLt --delete -e 'ssh -p23' /var/www/ [email protected]:srv1/
Делаем файл исполняемым:
chmod +x backup-rsync.sh
Запускаем планировщик, для выполнения резервной копии автоматически
crontab -e
пример содержимого:
# For more information see the manual pages of crontab(5) and cron(8) # # m h dom mon dow command 5 */2 * * * /root/backup-rsync.sh
Детальные статьи по теме:
Rsync (Remote Sync): 10 практических примеров использования команды Rsync в Linux.
11 примеров настройки выполнения регулярных задач с помощью Cron в Linux.
Таким образом, мы справились с поставленной задачей: автоматическое резервное копирование пользовательских данных rsync в Hetzner Storage Box.
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco и Linux с трудоустройством!
- Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
- Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
- Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
- Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
- Если хотите индивидуальный график — обсудим и осуществим.
- Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- отредактировать резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.