mirror of
https://github.com/kneutron/ansitest.git
synced 2025-01-16 04:42:55 +08:00
39 lines
1.2 KiB
Bash
39 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
vmid="$1"
|
|
phase="$2"
|
|
vmconf="/etc/pve/qemu-server/$vmid.conf"
|
|
|
|
if [[ "$phase" == "post-start" ]]; then
|
|
# waiting for vm guest service to start
|
|
started="false"
|
|
loopstart=$EPOCHSECONDS
|
|
while [[ "$started" == "false" ]]; do
|
|
qm guest cmd $vmid ping && started="true"
|
|
if [[ "$started" == "false" ]]; then
|
|
sleep 2
|
|
fi
|
|
if (( EPOCHSECONDS-loopstart > 60 )); then
|
|
echo "timeout for vm guest service start"
|
|
break
|
|
fi
|
|
done
|
|
|
|
# sync VM time after resume or start
|
|
if [[ "$started" == "true" ]]; then
|
|
if grep -q "ostype: win" $vmconf; then
|
|
newdate=$(date +"%d-%m-%y")
|
|
newtime=$(date +"%H:%M")
|
|
echo "resync windows time"
|
|
qm guest exec $vmid "cmd" "/c net stop W32Time & date $newdate & time $newtime & net start W32Time & w32tm /resync /nowait"
|
|
else
|
|
echo "resync linux time"
|
|
echo '{"execute":"guest-set-time"}' | socat stdin unix-connect:"/var/run/qemu-server/$vmid".qga
|
|
fi
|
|
else
|
|
echo "vm guest service not running"
|
|
exit 1
|
|
fi
|
|
fi
|
|
# REF: https://forum.proxmox.com/threads/windows-vm-time-not-updated-after-hibernate-resume.110517/page-2#post-624212
|