48 lines
1.2 KiB
Bash
48 lines
1.2 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
|
||
|
|
set -u
|
||
|
|
|
||
|
|
echo
|
||
|
|
echo "========================================"
|
||
|
|
echo " APT Backup Cleanup Script"
|
||
|
|
echo "========================================"
|
||
|
|
echo
|
||
|
|
|
||
|
|
for CTID in $(pct list | awk 'NR>1 {print $1}'); do
|
||
|
|
|
||
|
|
STATUS=$(pct status "$CTID" 2>/dev/null | awk '{print $2}')
|
||
|
|
NAME=$(pct config "$CTID" 2>/dev/null | awk -F': ' '/^hostname:/ {print $2}')
|
||
|
|
|
||
|
|
echo "----------------------------------------"
|
||
|
|
echo "Container: $CTID${NAME:+ ($NAME)}"
|
||
|
|
echo "Status: $STATUS"
|
||
|
|
|
||
|
|
if [[ "$STATUS" != "running" ]]; then
|
||
|
|
echo "SKIP: Container is not running."
|
||
|
|
continue
|
||
|
|
fi
|
||
|
|
|
||
|
|
OS_ID=$(pct exec "$CTID" -- sh -c \
|
||
|
|
'. /etc/os-release 2>/dev/null && echo "$ID"' \
|
||
|
|
2>/dev/null || true)
|
||
|
|
|
||
|
|
if [[ "$OS_ID" != "debian" ]]; then
|
||
|
|
echo "SKIP: Not Debian."
|
||
|
|
continue
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "Cleaning APT backup files..."
|
||
|
|
|
||
|
|
pct exec "$CTID" -- sh -c '
|
||
|
|
rm -f "/etc/apt/apt.conf.d/01proxy.backup-\$(date +%Y%m%d-%H%M%S)"
|
||
|
|
rm -f /etc/apt/sources.list.d/docker.sources.bak-*
|
||
|
|
rm -f /etc/apt/sources.list.d/docker.list.bak-*
|
||
|
|
'
|
||
|
|
|
||
|
|
echo "OK: Cleanup complete."
|
||
|
|
echo
|
||
|
|
done
|
||
|
|
|
||
|
|
echo "========================================"
|
||
|
|
echo " Finished"
|
||
|
|
echo "========================================"
|