我在 LVM 上有一个 KVM 虚拟机,在不同的逻辑卷 (LV) 上有两个驱动器。
当我用 borg 开始备份时,我首先要创建快照。
我如何在 bash 脚本中处理它?
首先创建驱动器的快照。 比用 borg 备份。 删除快照驱动器一。
第二个创建驱动器二的快照。 比用 borg 备份。 删除快照驱动器二。
脚本结束。
在下面的例子中,快照都是在用 borg 备份之前生成的,然后被删除。
处理它的最佳(或唯一)方法是什么?
谢谢你
迈克尔
#!/bin/bash
echo "Backup `hostname`"
REPOSITORY=/media/vmbackup/server1/
LVPATH=/dev/vg_vmimages/
LVNAME=`lvs --noheadings -o lv_name | tr -d ' '`
#remove old snapshots
for VM in $LVNAME;
do
lvremove -f /dev/vg_vmimages/$VM-snapshot
echo "old snapshots deleted"
done
#create snapshots
for VM in $LVNAME;
do
lvcreate --size 5120M --snapshot --name "$VM-snapshot" $LVPATH$VM
echo "Snapshots created"
done
#create lvdisplay.txt
lvdisplay > lvdisplay.txt
echo "lvdisplay created"
#create borg backup
borg create --progress --info --list --stats --compress lz4 --read-special \
$REPOSITORY::`hostname`-`date +%Y-%m-%d` lvdisplay.txt $LVPATH*-snapshot
#remove lvdisplay.txt
rm -f lvdisplay.txt
echo "lvdisplay.txt deleted"
#remove snapshots
for VM in $LVNAME;
do
lvremove -f /dev/vg_vmimages/$VM-snapshot
echo "Snapshots deleted"
done
#delete all files which do not meet "keep-conditions"
borg prune --info --list $REPOSITORY --prefix `hostname`- \
--keep-daily=7 --keep-weekly=4 --keep-monthly=3
好吧,您可以按照(未经测试)的方式做一些事情
echo "Backup `hostname`"
REPOSITORY=/media/vmbackup/server1/
LVPATH=/dev/vg_vmimages/
LVNAME=`lvs --noheadings -o lv_name | tr -d ' '`
backup_LV() {
echo "Backing up LV $1"
echo " => Creating snapshot $1-snapshot"
lvcreate --size 5120M --snapshot --name "$1-snapshot" $LVPATH$1
echo " => Creating archive"
SNAPSHOT=$LVPATH$1-snapshot
borg create -svp --list -C lz4 --read-special \
$REPOSITORY::`hostname`-`date +%Y-%m-%d` lvdisplay.txt $SNAPSHOT
# ^- can also use https://borgbackup.rtfd.io/en/latest/usage.html#borg-help-placeholders
echo " => Deleting snapshot"
lvremove -f $SNAPSHOT
echo "Done with LV $1"
}
for VM in $LVNAME;
do
backup_LV $VM
done
#delete all files which do not meet "keep-conditions"
borg prune --info --list $REPOSITORY --prefix `hostname`- \
--keep-daily=7 --keep-weekly=4 --keep-monthly=3
FWIW 这是我在运行时备份 KVM libvirt
管理的 VM 的方法,不需要快照; 我只是使用 QEMU 的写时复制映像类型来热交换它正在运行的映像:
https://gist.github.com/milkey-mouse/b8cb865910b4d574d9f63ffcd8db09f5
也许每个人都可以检查上面是否在那里已经存在的东西中添加了一些东西:
https://github.com/borgbackup/community/
如果是这样,请在那里添加链接,以便我们可以关闭此问题。
我正在使用 Python 开发该脚本的更强大版本(直接使用 libvirt 和 borg API)。 完成后,我将向社区回购提交 PR。
最有用的评论
好吧,您可以按照(未经测试)的方式做一些事情