Привет, в сегоднешней короткой заметке, я покажу вам как можно автоматизировать процесс создания бэкапов контейнеров lxc.
Не буду тянуть, а сразу покажу скрипт, котоым я пользуюсь:
#!/bin/bash SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DATE=`date +%Y-%m-%d` #имя контейнера, который нужно бэкапить NAME=git.mytechnote.ru lxc-stop -n $NAME tar --numeric-owner -czvf /tmp/$DATE-$NAME.tar.gz /var/lib/lxc/lxc/$NAME lxc-start -n $NAME #папка, куда будет переноситься бэкап должна существовать. mv /tmp/$DATE-$NAME.tar.gz /mnt/backup/lxc/ RETENTION=$((21*24*60)) #количество копий, которые нужно хранить. KEEP=8 find /mnt/wd-backup/lxc -type f -printf '%T@ %p\n' -mmin +$RETENTION | sort -nr | tail -n +$KEEP | xargs -r rm
Что делает этот скриипт:
1) останавливает контейнер.
2) сжимает его файловую систему и конфиг в /tmp
3) переносит архив из /tmp в нужное место, в моем случае это samba шара, примонтированная в /mnt/wd-backup.
Соответсвенно, если вы будете использовать этот скрипт, не забудьте изменить имя контейнера, путь до папки с контейнерами (по умолчанию /var/lib/lxc) и путь до места, где бэкапы должны складываться.
Просьба обратить внимание, что данный скрипт имеет больше демонстративную цель. В продуктивной среде скрипт должен быть доработан, например, на использование теневых копий, чтобы не останавливать контейнер.
Предлагаю обусудить статью на форуме.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Поделитесь статьей с друзьями в соц. сетях, возможно, она будет им полезна.
Если вам помогла статья, вы можете >>отблагодарить автора<<