102 lines
3.5 KiB
Bash
102 lines
3.5 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
# Load IP configuration
|
||
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||
|
|
source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true
|
||
|
|
|
||
|
|
|
||
|
|
# Clean up systemd journal logs in Blockscout container
|
||
|
|
# Usage: ./cleanup-blockscout-journal.sh [proxmox-host]
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
PROXMOX_HOST="${1:-192.168.11.12}"
|
||
|
|
VMID=5000
|
||
|
|
|
||
|
|
echo "=========================================="
|
||
|
|
echo "Cleanup Blockscout Journal Logs"
|
||
|
|
echo "=========================================="
|
||
|
|
echo "Proxmox Host: $PROXMOX_HOST"
|
||
|
|
echo "VMID: $VMID"
|
||
|
|
echo "=========================================="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Check container status
|
||
|
|
STATUS=$(ssh -o StrictHostKeyChecking=no root@$PROXMOX_HOST "pct status $VMID 2>/dev/null | awk '{print \$2}'" || echo "unknown")
|
||
|
|
if [ "$STATUS" != "running" ]; then
|
||
|
|
echo "❌ Container is not running (status: $STATUS)"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Get current journal size
|
||
|
|
echo "=== Current Journal Size ==="
|
||
|
|
CURRENT_SIZE=$(ssh -o StrictHostKeyChecking=no root@$PROXMOX_HOST "pct exec $VMID -- journalctl --disk-usage 2>/dev/null | awk '{print \$1}'" || echo "unknown")
|
||
|
|
echo "Current journal size: $CURRENT_SIZE"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Get current disk usage
|
||
|
|
echo "=== Current Disk Usage ==="
|
||
|
|
ssh -o StrictHostKeyChecking=no root@$PROXMOX_HOST "pct exec $VMID -- df -h / | tail -1" || echo "Unable to check disk usage"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Ask for cleanup method
|
||
|
|
CLEANUP_METHOD="${2:-size}"
|
||
|
|
JOURNAL_LIMIT="${3:-100M}"
|
||
|
|
|
||
|
|
echo "=== Cleanup Options ==="
|
||
|
|
echo "1. Clean up by size (keep last 100MB)"
|
||
|
|
echo "2. Clean up by time (keep last 3 days)"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
if [ "$CLEANUP_METHOD" = "time" ]; then
|
||
|
|
echo "Cleaning up journal logs (keeping last 3 days)..."
|
||
|
|
ssh -o StrictHostKeyChecking=no root@$PROXMOX_HOST "pct exec $VMID -- journalctl --vacuum-time=3d"
|
||
|
|
elif [ "$CLEANUP_METHOD" = "size" ]; then
|
||
|
|
echo "Cleaning up journal logs (keeping last $JOURNAL_LIMIT)..."
|
||
|
|
ssh -o StrictHostKeyChecking=no root@$PROXMOX_HOST "pct exec $VMID -- journalctl --vacuum-size=$JOURNAL_LIMIT"
|
||
|
|
else
|
||
|
|
echo "❌ Unknown cleanup method: $CLEANUP_METHOD"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== Journal Size After Cleanup ==="
|
||
|
|
NEW_SIZE=$(ssh -o StrictHostKeyChecking=no root@$PROXMOX_HOST "pct exec $VMID -- journalctl --disk-usage 2>/dev/null | awk '{print \$1}'" || echo "unknown")
|
||
|
|
echo "Journal size after cleanup: $NEW_SIZE"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Configure journal limits
|
||
|
|
echo "=== Configuring Journal Limits ==="
|
||
|
|
ssh -o StrictHostKeyChecking=no root@$PROXMOX_HOST "pct exec $VMID -- bash << 'EOF'
|
||
|
|
if ! grep -q '^SystemMaxUse=' /etc/systemd/journald.conf; then
|
||
|
|
echo 'SystemMaxUse=$JOURNAL_LIMIT' >> /etc/systemd/journald.conf
|
||
|
|
echo '✅ Added SystemMaxUse=$JOURNAL_LIMIT to journald.conf'
|
||
|
|
else
|
||
|
|
sed -i 's/^SystemMaxUse=.*/SystemMaxUse=$JOURNAL_LIMIT/' /etc/systemd/journald.conf
|
||
|
|
echo '✅ Updated SystemMaxUse to $JOURNAL_LIMIT in journald.conf'
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Restart journald
|
||
|
|
systemctl restart systemd-journald
|
||
|
|
echo '✅ Restarted systemd-journald'
|
||
|
|
EOF
|
||
|
|
" || echo "⚠️ Unable to configure journal limits"
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== Disk Usage After Cleanup ==="
|
||
|
|
ssh -o StrictHostKeyChecking=no root@$PROXMOX_HOST "pct exec $VMID -- df -h / | tail -1" || echo "Unable to check disk usage"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
echo "=========================================="
|
||
|
|
echo "Cleanup Complete"
|
||
|
|
echo "=========================================="
|
||
|
|
echo ""
|
||
|
|
echo "Summary:"
|
||
|
|
echo " Before: $CURRENT_SIZE"
|
||
|
|
echo " After: $NEW_SIZE"
|
||
|
|
echo ""
|
||
|
|
echo "To verify cleanup:"
|
||
|
|
echo " ssh root@$PROXMOX_HOST 'pct exec $VMID -- journalctl --disk-usage'"
|
||
|
|
echo ""
|