sysmig: migration runner + initial 4 migrations (swap, daemon trims)
- up/down/status interface, history in /var/lib/sysmig/applied - 001 swap 2GB + swappiness=10, 002-004 trim unneeded daemons (~56MB) - google-osconfig-agent intentionally kept - all messages/comments in ASCII English (console font safety)
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
# 001-create-swap - Create 2GB swap + fstab entry + vm.swappiness=10
|
||||
# up: enable swap (skipped if swap already active)
|
||||
# down: disable swap and remove file/fstab/sysctl entries
|
||||
set -euo pipefail
|
||||
|
||||
case "${1:-}" in
|
||||
up)
|
||||
if swapon --show --noheadings | grep -q .; then
|
||||
echo " swap already active - skipping"
|
||||
exit 0
|
||||
fi
|
||||
if [[ ! -f /swapfile ]]; then
|
||||
fallocate -l 2G /swapfile || {
|
||||
dd if=/dev/zero of=/swapfile bs=1M count=2048 status=none
|
||||
}
|
||||
chmod 600 /swapfile
|
||||
mkswap /swapfile >/dev/null
|
||||
fi
|
||||
swapon /swapfile
|
||||
grep -q '^/swapfile' /etc/fstab || echo '/swapfile none swap sw 0 0' >> /etc/fstab
|
||||
if ! grep -rqs 'vm.swappiness' /etc/sysctl.d/ /etc/sysctl.conf; then
|
||||
echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
|
||||
sysctl -p /etc/sysctl.d/99-swap.conf >/dev/null
|
||||
fi
|
||||
echo " swap 2GB enabled + fstab entry + vm.swappiness=10"
|
||||
;;
|
||||
down)
|
||||
swapoff /swapfile
|
||||
rm -f /swapfile
|
||||
sed -i '\|^/swapfile|d' /etc/fstab
|
||||
grep -q '^vm.swappiness=10$' /etc/sysctl.d/99-swap.conf 2>/dev/null \
|
||||
&& rm -f /etc/sysctl.d/99-swap.conf || true
|
||||
echo " swap removed"
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
# 002-disable-networkd-dispatcher - Stop network event hook daemon (~27MB)
|
||||
# Unnecessary on a simple server with static network config. Package kept.
|
||||
set -euo pipefail
|
||||
|
||||
case "${1:-}" in
|
||||
up) systemctl disable --now networkd-dispatcher.service
|
||||
echo " networkd-dispatcher stopped and disabled" ;;
|
||||
down) systemctl enable --now networkd-dispatcher.service
|
||||
echo " networkd-dispatcher re-enabled" ;;
|
||||
esac
|
||||
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
# 003-purge-exim4 - Remove default local mail server (~21MB)
|
||||
# Unnecessary if local mail (e.g. cron output) is not used.
|
||||
# Down reinstalls with Debian defaults (local delivery only).
|
||||
set -euo pipefail
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
case "${1:-}" in
|
||||
up) systemctl disable --now exim4.service 2>/dev/null || true
|
||||
apt-get purge -y exim4-daemon-light >/dev/null
|
||||
apt-get autoremove --purge -y >/dev/null
|
||||
echo " exim4 stopped + package purged + deps cleaned" ;;
|
||||
down) apt-get update -qq
|
||||
apt-get install -y exim4-daemon-light >/dev/null
|
||||
systemctl enable --now exim4.service
|
||||
echo " exim4 reinstalled + restarted (default config)" ;;
|
||||
esac
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env bash
|
||||
# 004-purge-haveged - Remove entropy daemon (~8MB)
|
||||
# Kernel 6.12 collects enough entropy on its own; haveged is redundant.
|
||||
set -euo pipefail
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
case "${1:-}" in
|
||||
up) systemctl disable --now haveged.service 2>/dev/null || true
|
||||
apt-get purge -y haveged >/dev/null
|
||||
apt-get autoremove --purge -y >/dev/null
|
||||
echo " haveged stopped + package purged" ;;
|
||||
down) apt-get update -qq
|
||||
apt-get install -y haveged >/dev/null
|
||||
systemctl enable --now haveged.service
|
||||
echo " haveged reinstalled + restarted" ;;
|
||||
esac
|
||||
Reference in New Issue
Block a user