#!/usr/bin/env bash set -u # ============================== # Configuration # ============================== ACNG_SERVER="192.168.178.22" ACNG_PORT="3142" PROXY_FILE="/etc/apt/apt.conf.d/01proxy" echo echo "========================================" echo " Apt-Cacher-NG LXC Configuration Script" echo "========================================" echo echo "Proxy: http://${ACNG_SERVER}:${ACNG_PORT}" echo read -rp "Run apt update after configuring each container? [y/N]: " RUN_UPDATE echo for CTID in $(pct list | awk 'NR>1 {print $1}'); do STATUS=$(pct status "$CTID" 2>/dev/null | awk '{print $2}') echo "----------------------------------------" echo "Container: $CTID" 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) OS_NAME=$(pct exec "$CTID" -- sh -c \ '. /etc/os-release 2>/dev/null && echo "$PRETTY_NAME"' \ 2>/dev/null || true) echo "OS: ${OS_NAME:-Unknown}" if [[ "$OS_ID" != "debian" ]]; then echo "SKIP: Not Debian." continue fi echo "Configuring Apt-Cacher-NG..." pct exec "$CTID" -- sh -c " if [ -f '$PROXY_FILE' ]; then cp '$PROXY_FILE' '${PROXY_FILE}.backup-\$(date +%Y%m%d-%H%M%S)' fi " pct exec "$CTID" -- sh -c "cat > '$PROXY_FILE' <<'APTCONFIG' Acquire::http::Proxy \"http://${ACNG_SERVER}:${ACNG_PORT}\"; Acquire::https::Proxy \"DIRECT\"; APTCONFIG " if [[ $? -ne 0 ]]; then echo "ERROR: Failed to configure container $CTID." continue fi echo "OK: Proxy configuration installed." echo echo "Current configuration:" pct exec "$CTID" -- cat "$PROXY_FILE" if [[ "$RUN_UPDATE" =~ ^[Yy]$ ]]; then echo echo "Running apt update..." if pct exec "$CTID" -- apt-get update; then echo "OK: apt update completed." else echo "WARNING: apt update failed in container $CTID." fi fi echo done echo "========================================" echo " Finished" echo "========================================"