Резервные копии по расписанию: каждый день или раз в неделю, все машины или отмеченные, хранятся последние N автокопий; копии делает служба virtuality-backup, а не панель
Этот коммит содержится в:
@@ -235,6 +235,38 @@ RandomizedDelaySec=1h
|
||||
Persistent=true
|
||||
Unit=virtuality-maintenance.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
EOF
|
||||
|
||||
# Scheduled VM backups run in their own unit: a panel restart (nightly update) must not cut a copy short.
|
||||
cat > "${UNIT_DIR}/virtuality-backup.service" <<EOF
|
||||
[Unit]
|
||||
Description=Virtuality scheduled VM backups
|
||||
After=libvirtd.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
TimeoutStartSec=infinity
|
||||
User=root
|
||||
WorkingDirectory=${APP_DIR}
|
||||
ExecStart=${VENV_DIR}/bin/python ${APP_DIR}/features/backup_schedule.py
|
||||
Environment=PYTHONUNBUFFERED=1
|
||||
Environment=LC_ALL=C.UTF-8
|
||||
Environment=VIRTUALITY_AUTH_USER=${auth_user}
|
||||
Environment=VIRTUALITY_SOURCE_DIR=${SOURCE_DIR}
|
||||
Environment=VIRTUALITY_NODE_ENV=${NODE_ENV}
|
||||
Environment=TMPDIR=${DATA_DIR}/tmp
|
||||
EOF
|
||||
cat > "${UNIT_DIR}/virtuality-backup.timer" <<EOF
|
||||
[Unit]
|
||||
Description=Virtuality scheduled VM backups (checks the schedule every 15 minutes)
|
||||
|
||||
[Timer]
|
||||
OnCalendar=*:0/15
|
||||
AccuracySec=1min
|
||||
Unit=virtuality-backup.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
EOF
|
||||
@@ -265,7 +297,7 @@ EOF
|
||||
fi
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable virtuality-web.service virtuality-network.service virtuality-maintenance.timer >/dev/null 2>&1 || true
|
||||
systemctl enable virtuality-web.service virtuality-network.service virtuality-maintenance.timer virtuality-backup.timer >/dev/null 2>&1 || true
|
||||
systemctl enable libvirt-guests.service >/dev/null 2>&1 || true
|
||||
if [[ "$tls" == "1" ]]; then
|
||||
systemctl enable virtuality-redirect.service >/dev/null 2>&1 || true
|
||||
@@ -305,7 +337,7 @@ restart_panel() {
|
||||
if [[ "$(env_get VIRTUALITY_TLS 0)" == "1" ]]; then
|
||||
systemctl restart virtuality-redirect.service || true
|
||||
fi
|
||||
systemctl enable --now virtuality-maintenance.timer >/dev/null 2>&1 || true
|
||||
systemctl enable --now virtuality-maintenance.timer virtuality-backup.timer >/dev/null 2>&1 || true
|
||||
if [[ "$(env_get VIRTUALITY_AUTO_UPDATE 1)" == "1" ]]; then
|
||||
systemctl enable --now virtuality-auto-update.timer >/dev/null 2>&1 || true
|
||||
fi
|
||||
@@ -689,7 +721,7 @@ cmd_uninstall() {
|
||||
[[ "$answer" == "YES" ]] || { echo "Отменено."; exit 0; }
|
||||
fi
|
||||
local unit
|
||||
for unit in virtuality-web.service virtuality-redirect.service virtuality-network.service virtuality-auto-update.timer virtuality-auto-update.service virtuality-maintenance.timer virtuality-maintenance.service virtuality-console-dashboard.service virtuality-firstboot.service; do
|
||||
for unit in virtuality-web.service virtuality-redirect.service virtuality-network.service virtuality-auto-update.timer virtuality-auto-update.service virtuality-maintenance.timer virtuality-maintenance.service virtuality-backup.timer virtuality-backup.service virtuality-console-dashboard.service virtuality-firstboot.service; do
|
||||
systemctl disable --now "$unit" >/dev/null 2>&1 || true
|
||||
rm -f "${UNIT_DIR}/${unit}"
|
||||
done
|
||||
|
||||
Ссылка в новой задаче
Block a user