✅ Summary of Changes from the Initial Version
🧩 1. Tag-Based Filtering (Core Feature)
New feature: Only restart instances (VMs or containers) that have the mon-restart tag.
This makes monitoring and auto-restart controllable directly from the Proxmox Web UI, without editing scripts or services.
Set via GUI: VM → Options → Tags → mon-restart
Set via CLI: qm set <vmid> -tags mon-restart or pct set <ctid> -tags mon-restart
This is the primary new control mechanism, making the script safer, more flexible, and user-friendly.
🧰 2. Backward-Compatible Exclusion Mechanism
The original feature that lets you exclude instances via CLI arguments is preserved:
bash
Copy
Edit
./ping-instances.sh 101 300
These IDs will always be skipped regardless of tag.
🧠 3. Intelligent Responsiveness Checks
For VMs:
Uses qm guest cmd <id> ping to check responsiveness via the QEMU guest agent.
No longer relies on network-level ping, which can be misleading or blocked.
For containers (CTs):
Uses traditional ping to IP addresses obtained from pct exec, since CTs don’t support QEMU agent.
⛔ 4. Instance Skipping Improvements
Instances are now skipped if:
They are explicitly excluded via CLI.
They are templates.
They are configured with onboot: 0 or missing.
They lack the mon-restart tag, regardless of other status.
🪵 5. Same Logging Behavior
All output continues to go to /var/log/ping-instances.log for persistent tracking.
Verbose messages were added for traceability (e.g., why a VM or CT was skipped).
🎯 Why This Matters
With tag-based control, admins can now manage restart behavior dynamically from the Proxmox Web UI, making the script:
More secure (no accidental restarts).
More maintainable (no script edits needed).
More user-friendly (integrated with the UI workflow).