Wiki » Konfiguracja serwerów » Linux LXC »
Dodawanie konta dla backup-ów PokażUkryj
USER=abs
adduser --disabled-password --gecos "JustNet Backup Account" ${USER}; \
for group in justnet remote-console; do
egrep -q -i "^${group}" /etc/group; [ $? -eq 0 ] && adduser ${USER} ${group} || addgroup --system ${group}; adduser ${USER} ${group};
done; \
su - $USER -c "ssh-keygen"; \
su - $USER -c "touch .ssh/authorized_keys"; \
echo "abs ALL=NOPASSWD:/usr/bin/rsync" >> /etc/sudoers.d/abs; \
apt-get update; \
apt-get install -y sudo rsync;
Online backup by rsync PokażUkryj
Kopiowanie plików
NAME=; HOST=; \
sudo /usr/bin/rsync -ai --numeric-ids --delete -e "ssh -i /home/`whoami`/.ssh/id_ed25519" --rsync-path="sudo rsync" --sparse --hard-links /var/lib/lxc/${NAME}/rootfs/ `whoami`@${HOST}:/var/lib/lxc/${NAME}/rootfs/
Przygotowanie struktury katalogów na obu hostach, tylko za pierwszym razem
NAME=; HOST=; \
#mount /dev/${VG}/lxc-${NAME} /var/lib/lxc/${NAME}/rootfs/; \
#for NAME in ${LXC}; do
# lvcreate -L10G -n lxc-${NAME} lxc5.smj; mkfs.xfs /dev/lxc5.smj/lxc-${NAME}; mkdir -p /var/lib/lxc/${NAME}/rootfs; \
# echo -e "/dev/lxc5.smj/lxc-${NAME} /var/lib/lxc/${NAME}/rootfs/\txfs\tdefaults\t0\t0" >> /etc/fstab; \
# systemctl daemon-reload; mount -a;
#done
Wykonanie backupu kontenera LXC PokażUkryj
NAME=; \
[ ! $NAME ] && echo "Brak podanej nazwy kontenera"; exit; \
#mount /dev/${VG}/lxc-${NAME} /var/lib/lxc/${NAME}/rootfs/; \
lxc-attach -n ${NAME} apt-get clean; \
tar -zcf /home/lxc-${NAME}-`date +%Y%m%d-%H%M`.tar.gz \
--exclude=var/log/*. \
--exclude=var/cache/apt/archives/*. \
--exclude=home/storage/local/backup/*. \
--exclude=home/storage/backup/*. \
/var/lib/lxc/${NAME}; \
#umount /mnt/lxc-${NAME};
Utworzenie nowego kontenera LXC z kopii PokażUkryj
NAME=; \
[ ! $NAME ] && echo "Brak podanej nazwy kontenera"; exit; \
mkdir /mnt/lxc-${NAME}; \
lvcreate -L10G -n lxc-${NAME} first; \
mkfs.xfs /dev/first/lxc-${NAME}; \
mount /dev/first/lxc-${NAME} /mnt/lxc-${NAME}; \
tar -zxvf lxc-${NAME}*.tar.gz -C /