You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
921 B

#!/bin/bash
#this script makes a copy of each container and backups afterwards the copies
set -x
backuppath='/srv/backUP/lxc/'
backupuser='rick-monitoring'
lxccmd='/snap/bin/lxc'
#some validations
if [ ! -d ${backuppath} ]
then
echo "Please set a backup directory which is accessible by this script"
exit 2
fi
id $backupuser > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "Please set a valid user within this script"
exit 2
fi
#only backup container which doesn't contain a 0 at the endps
for container in $(${lxccmd} list --format csv -c n | grep -v "0$");
do
${lxccmd} stop ${container}
${lxccmd} export ${container} ${backuppath}$(date +%Y_%m_%d)-lxc-${container}.tar.gz --instance-only
${lxccmd} start ${container}
done
#housekeeping - keep last 14 days
find ${backuppath} -mtime +14 -exec rm -f {} \;
#own data for backupuser
chown -R ${backupuser}:${backupuser} ${backuppath}
chmod 440 -R ${backuppath}/*