diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index 9a2ea31016..2a4a790d5d 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -5549,6 +5549,13 @@ func (manager *SGuestManager) CleanPendingDeleteServers(ctx context.Context, use DeleteEip: options.Options.DeleteEipExpiredRelease, DeleteDisks: options.Options.DeleteDisksExpiredRelease, } + // 跳过单独在云上开机过的虚拟机,避免误清理 + if len(guests[i].GetExternalId()) > 0 { + iVm, err := guests[i].GetIVM(ctx) + if err == nil && iVm.GetStatus() == api.VM_RUNNING { + continue + } + } guests[i].StartDeleteGuestTask(ctx, userCred, "", opts) } }