第 10 章: 自动化快照¶
在本章中,您需要以 root 身份或能够 sudo
成为 root 身份。
自动化快照过程使事情变得更加容易。
自动化快照复制过程¶
在 lxd-primary 上执行此过程。首先,您需要创建一个将在 /usr/local/sbin 中由 cron 运行的脚本,名为“refresh-containers”。
sudo vi /usr/local/sbin/refreshcontainers.sh
该脚本非常简单
#!/bin/bash
# This script is for doing an lxc copy --refresh against each container, copying
# and updating them to the snapshot server.
for x in $(/var/lib/snapd/snap/bin/lxc ls -c n --format csv)
do echo "Refreshing $x"
/var/lib/snapd/snap/bin/lxc copy --refresh $x lxd-snapshot:$x
done
使其可执行
sudo chmod +x /usr/local/sbin/refreshcontainers.sh
将此脚本的所有权更改为您的 lxdadmin 用户和组
sudo chown lxdadmin.lxdadmin /usr/local/sbin/refreshcontainers.sh
设置 lxdadmin 用户的 crontab 以运行此脚本,在本例中为晚上 10 点
crontab -e
您的条目将如下所示
00 22 * * * /usr/local/sbin/refreshcontainers.sh > /home/lxdadmin/refreshlog 2>&1
保存更改并退出。
这将在 lxdadmin 的主目录中创建一个名为“refreshlog”的日志,它会让您知道您的过程是否成功。非常重要!
自动化过程有时会失败。这通常发生在特定容器无法刷新时。您可以使用以下命令手动重新运行刷新(假设这里的 rockylinux-test-9 是我们的容器)
lxc copy --refresh rockylinux-test-9 lxd-snapshot:rockylinux-test-9
作者: Steven Spencer
贡献者: Ezequiel Bruni, Ganna Zhyrnova