35 lines
883 B
Bash
Executable File
35 lines
883 B
Bash
Executable File
#!/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
|
|
|
|
for container in $(${lxccmd} list --format csv -c n | grep -v backup| grep -v "^oo" | grep -v test);
|
|
do
|
|
${lxccmd} copy ${container} ${container}-backup
|
|
${lxccmd} export ${container}-backup ${backuppath}$(date +%Y_%m_%d)-lxc-${container}.tar.gz
|
|
${lxccmd} delete ${container}-backup
|
|
done
|
|
|
|
#housekeeping - keep last 28 days
|
|
find ${backuppath} -mtime +28 -exec rm -f {} \;
|
|
|
|
#own data for backupuser
|
|
chown -R ${backupuser}:${backupuser} ${backuppath}
|