Hoppa till huvudinnehållet
Version: TOS 7

VMs CLI

Introduktion​

VMs CLI är ett kommandoradsverktyg för TerraMasters VMs-virtualiseringsapplikation och erbjuder samma fråge- och driftfunktioner som webbgränssnittet. CLI kommunicerar med VMs-tjänsten via en lokal unix socket och använder ett standardiserat kommandogränssnitt och JSON-utdataformat, vilket gör det enkelt att integrera i skript, automatiserad drift och vidareutveckling.

Huvudfunktioner​

  • Klar att använda: installeras tillsammans med VMs-applikationen, ingen ytterligare installation krävs
  • Flexibel användning: stöder lokala terminaler, fjärr-SSH, skript, AI-verktyg och andra sätt att anropa den
  • Interaktivt och icke-interaktivt läge: passar både för administratörers dagliga underhåll och för skript och automatiserade uppgifter
  • JSON-utdata: enkelt för program att tolka och integrera i automatisering
  • Lokal kommunikation: kommunicerar endast med VMs-tjänsten via en lokal unix socket och öppnar inga portar externt
  • Bekräftelse av farliga åtgärder: åtgärder som att ta bort virtuella maskiner eller nätverk kräver som standard bekräftelse

Kom igång​

# 在终端中执行(可通过本地终端、SSH、脚本、AI 工具等任意命令行途径)
vms --help

# 查看虚拟机列表
vms vm list

# 查看虚拟机详情
vms vm get <id>

# 以 JSON 格式输出(便于脚本解析)
vms vm list --json

Exempel på utdata från vms vm list:

NAME     GUEST ID                              STATUS    VCPU NUM  VRAM SIZE  IP
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown 4 2097152 -
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown 4 2097152 -
1454486 5a0391f2-c545-45eb-8eed-0a104972229b shutdown 4 2097152 -
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown 4 2097152 -

Globala alternativ​

Följande alternativ gäller för alla kommandon:

AlternativFörkortningBeskrivning
--help-hVisar hjälpinformation för kommandot
--version-vVisar versionsnummer (kan kombineras med --json för strukturerade data)
--json-Utdata i JSON-format
--yes-yHoppar över bekräftelse vid farliga åtgärder (krävs i icke-interaktivt läge)
--debug-Aktiverar felsökningsutdata med detaljerat utförandeförlopp
--socket <path>-Sökväg till VMs unix socket, standard /var/api/VMs.sock
--timeout <duration>-Timeout för begäran, standard 30s

Exempel på versionsinformation​

vms --version
vms CLI v1.0.058
vms --version --json
{
"build": "20260911",
"cli_version": "v1.0.058"
}

Driftmiljö​

VMs CLI installeras tillsammans med VMs-applikationen. När applikationen aktiveras länkas CLI till systemets standardmapp för PATH, och det kan användas direkt efter SSH-inloggning.

ElementBeskrivning
CLI-fil/Volume1/@apps/VMs/bin/vms
Kommandosökväg/usr/local/sbin/vms (redan i systemets PATH)
KommunikationsmetodLokal unix socket, standard /var/api/VMs.sock
MålgruppAdministratörer inloggade på den lokala maskinen

Observera:

  • CLI används för att hantera virtuella maskiner på den lokala maskinen och stöder inte fjärrhantering av andra enheter via CLI.
  • Backend returnerar alltid HTTP 200; huruvida kommandot lyckades avgörs av fältet code i svarskroppen, som CLI omvandlar till en slutkod.
  • Farliga åtgärder (ta bort virtuell maskin, ta bort nätverk, ta bort avbildning, ta bort lagringsutrymme) begär bekräftelse i interaktivt läge och kräver uttryckligen --yes i icke-interaktivt läge.

Kommandoöversikt​

Här följer en snabbreferensöversikt över alla vms-kommandon:

Överordnat kommandoUnderkommandoFunktionsbeskrivningBekräftelseHög risk
vms--versionVisar versionsinformationNejNej
vms vmlistVisar alla virtuella maskinerNejNej
vms vmgetVisar detaljer för en angiven virtuell maskinNejNej
vms vmlist-resourceVisar resurser som är tillgängliga vid skapande av virtuella maskinerNejNej
vms vmlogsVisar den virtuella maskinens åtgärdsloggNejNej
vms vmpoweronStartar den virtuella maskinenNejNej
vms vmpoweroffStänger av den virtuella maskinen (normal avstängning)JaNej
vms vmforce-poweroffTvingar den virtuella maskinen att stängas avJa✅
vms vmrebootStartar om den virtuella maskinenNejNej
vms vmpausePausar den virtuella maskinenNejNej
vms vmresumeÅterupptar en pausad virtuell maskinNejNej
vms vmautorunAnger automatisk start vid uppstartNejNej
vms vmcloneKlonar den virtuella maskinenNejNej
vms vmexportExporterar den virtuella maskinen som en OVA-filNejNej
vms vmdeleteTar bort den virtuella maskinenJa✅
vms vm disklistVisar den virtuella maskinens virtuella hårddiskarNejNej
vms vm snapshotlistVisar den virtuella maskinens ögonblicksbilderNejNej
vms vm snapshotcreateSkapar en ögonblicksbildNejNej
vms vm snapshoteditRedigerar ögonblicksbildens beskrivning och låsstatusNejNej
vms vm snapshotconfigVisar den virtuella maskinkonfiguration som sparats i ögonblicksbildenNejNej
vms vm snapshotconsistencyFörhandsgranskar ögonblicksbildens konsistensNejNej
vms vmlinkHämtar anslutningsinformation för VNC-konsolenNejNej
vms networklistVisar virtuella nätverkNejNej
vms networkgetVisar detaljer för ett virtuellt nätverkNejNej
vms networkcreateSkapar ett virtuellt nätverkNejNej
vms networkupdateUppdaterar ett virtuellt nätverkNejNej
vms networkdeleteTar bort ett virtuellt nätverkJa✅
vms networklist-interfacesVisar nätverksgränssnitt av en angiven typNejNej
vms networklist-vnicsVisar virtuella nätverkskort på nätverketNejNej
vms networkovsinfoVisar om OVS är aktiveratNejNej
vms imagelistVisar avbildningarNejNej
vms imageeditRedigerar avbildningsinformationNejNej
vms imagedeleteTar bort en avbildningJa✅
vms imagelist-vmsVisar virtuella maskiner som använder denna avbildningNejNej
vms repolistVisar lagringsutrymmenNejNej
vms repogetVisar detaljer för ett lagringsutrymmeNejNej
vms repoupdateUppdaterar lagringsutrymmets konfigurationNejNej
vms repodeleteTar bort ett lagringsutrymmeJa✅
vms repolist-volumesVisar tillgängliga volymerNejNej
vms repolist-vmsVisar virtuella maskiner i lagringsutrymmetNejNej
vms repocheck-runningKontrollerar virtuella maskiner som körs på lagringsutrymmetNejNej
vms repowhether-exist-dataKontrollerar om det finns data i lagringsutrymmetNejNej
vms settinggetVisar globala inställningarNejNej
vms collectdhostinfoVisar värdmaskinens övervakningsinformationNejNej
vms collectdvminfoVisar den virtuella maskinens övervakningsinformationNejNej
vms collectdstorageinfoVisar lagringsövervakningsinformationNejNej

Kommandoreferens​

<id> i kommandona är den virtuella maskinens ID och motsvarar GUEST ID i utdata från listan över virtuella maskiner; detsamma gäller <network_id>, <image_id> och <repo_id>, som kan hämtas via vms network list, vms image list respektive vms repo list.

Om utdataexempel: vms tabellutdata trunkerar för långa fältvärden till en fast bredd (avslutas med ellips och oberoende av terminalbredden), till exempel VDISKS, VNICS och ISO IMAGES i den virtuella maskinkonfigurationen samt avbildningsnamn. Därför ges i detta dokument fullständiga --json-utdataexempel för kommandon med långa fält, medan övriga kommandon ges tabellexempel. Vid skriptbearbetning rekommenderas också att --json används konsekvent.

I. Frågor om virtuella maskiner​

vms vm list – Visar virtuella maskiner​

Visar alla virtuella maskiner på den lokala maskinen och deras grundläggande status.

vms vm list [--limit N] [--offset N] [--json]
  • --limit och --offset är pagineringsparametrar
  • Utdatakolumner: namn, virtuell maskin-ID, driftstatus, antal CPU-kärnor, minnesstorlek (i KB), IP-adress

Exempel på utdata:

NAME     GUEST ID                              STATUS    VCPU NUM  VRAM SIZE  IP
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown 4 2097152 -
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown 4 2097152 -
1454486 5a0391f2-c545-45eb-8eed-0a104972229b shutdown 4 2097152 -
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown 4 2097152 -

Vanliga värden för STATUS:

StatusBeskrivning
runningKörs
shutdownAvstängd
savedPausad (driftstatus sparad på disken)

vms vm get – Visar detaljer för en virtuell maskin​

Visar fullständig konfiguration och driftstatus för en angiven virtuell maskin.

vms vm get <id> --json
  • Utdata innehåller alla konfigurations- och driftstatusfält för den virtuella maskinen
  • Tomma värden som ingen beskrivning eller ingen IP visas som en tom sträng
  • Om den virtuella maskinen inte finns returnerar kommandot ett fel och skriver ut ett felmeddelande

Exempel på utdata:

{
"iso_images": [
"c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"9b3f2fdd-9173-4611-a84c-0cc9ce88293c"
],
"image_paths": [
"",
""
],
"autorun": 0,
"boot_from": "cdrom",
"bios": "bios",
"kb_layout": "en-us",
"serial_console": true,
"usb_version": 2,
"usb_device_name": [
"USB - Integrated Technology Express, Inc. Disk 2.0"
],
"usbs": [
":3:3:048d:1234"
],
"use_ovmf": false,
"vnics": [
{
"prefer_sriov": false,
"vnic_type": 3,
"mac": "1a:e2:ae:95:4a:51",
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"virtual_interface_id": "fe972ef5-b066-4967-89fa-8e85e43c8808"
}
],
"operating_system_type": 0,
"vdisks": [
{
"vdisk_mode": 1,
"name": "",
"unmap": false,
"iops_enable": false,
"dev_limit": 0,
"dev_reservation": 0,
"dev_weight": 3,
"vdisk_size": 1024,
"idx": 0,
"vdisk_id": "f4ed4eae-1512-4273-963b-79ebd93a0932",
"disk_image_type": "",
"disk_image_id": ""
}
],
"name": "win10",
"vcpu_num": 4,
"vcpu_usage": 0,
"vram_size": 2097152,
"video_card": "vga",
"machine_type": "1",
"cpu_weight": 3,
"ip": "",
"desc": "",
"cpu_passthru": false,
"hyperv_enlighten": true,
"cpu_pin_num": 0,
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6",
"repo_name": "VM-Storage01",
"poweron_after_create": false,
"guest_id": "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1",
"increaseAllocatedSize": 0,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "",
"snap_num": 0,
"has_guest_agent": false,
"status": "shutdown",
"status_code": 0,
"status_desc": "",
"host_ram_size": 0,
"total_throughput": 0,
"total_iops": 0,
"total_io_latency": 0,
"total_rx_bytes": 0,
"total_tx_bytes": 0,
"memory_usage": 0,
"cpu_usage": 0,
"vm_status_progress": 0
}

vms vm list-resource – Visar tillgängliga resurser för att skapa virtuella maskiner​

Visar de resurser värdmaskinen kan erbjuda, såsom firmwaretyper, avbildningar, CPU, minne, nätverk, lagringsutrymme och enheter som kan skickas direkt igenom (passthrough), för bedömning inför skapande av en virtuell maskin.

vms vm list-resource --json

Returnerade fält: max_cpu_num, max_ram_size, usbs, pci_devices, networks, repos, images, video_cards, firmware, keyboard_layout.

Exempel på utdata:

{
"max_cpu_num": 4,
"max_ram_size": 16503336960,
"usbs": [
{
"product_name": "4-Port USB 2.0 Hub",
"usb_id": ":3:3:0x0bda:0x5423",
"version": ""
},
{
"product_name": "4-Port USB 3.2 Hub",
"usb_id": ":4:2:0x0bda:0x0423",
"version": ""
},
{
"product_name": "Flash Drive",
"usb_id": ":3:2:0x058f:0x6387",
"version": ""
}
],
"pci_devices": [
{
"device_name": "",
"bdf": "0000:02:00.0",
"vendor_id": "0x10ec",
"product_id": "0x8126",
"class_id": "0x020000",
"iommu_group": 13,
"iommu_group_bdfs": [
"0x0000:0x02:0x00.0x0"
],
"driver": "r8169",
"type": "Network Controller"
},
{
"device_name": "",
"bdf": "0000:00:0d.0",
"vendor_id": "0x8086",
"product_id": "0x464e",
"class_id": "0x0c0330",
"iommu_group": 2,
"iommu_group_bdfs": [
"0x0000:0x00:0x0d.0x0"
],
"driver": "xhci_hcd",
"type": "USB Controller"
},
{
"device_name": "",
"bdf": "0000:03:00.0",
"vendor_id": "0x10ec",
"product_id": "0x8126",
"class_id": "0x020000",
"iommu_group": 14,
"iommu_group_bdfs": [
"0x0000:0x03:0x00.0x0"
],
"driver": "r8169",
"type": "Network Controller"
},
{
"device_name": "",
"bdf": "0000:00:14.0",
"vendor_id": "0x8086",
"product_id": "0x54ed",
"class_id": "0x0c0330",
"iommu_group": 3,
"iommu_group_bdfs": [
"0x0000:0x00:0x14.0x2",
"0x0000:0x00:0x14.0x0"
],
"driver": "xhci_hcd",
"type": "USB Controller"
},
{
"device_name": "",
"bdf": "0000:00:14.2",
"vendor_id": "0x8086",
"product_id": "0x54ef",
"class_id": "0x050000",
"iommu_group": 3,
"iommu_group_bdfs": [
"0x0000:0x00:0x14.0x2",
"0x0000:0x00:0x14.0x0"
],
"driver": "",
"type": "IOMMU Group Device"
}
],
"networks": [
{
"name": "VM-Network04",
"network_id": "ce9807c9-47b3-4258-9a80-ea8db1fd785d",
"support_sriov": false
},
{
"name": "VM-Network05",
"network_id": "b56c2f7b-e3f0-4b68-8a3b-245c90a8f8b5",
"support_sriov": false
},
{
"name": "VM-Network01",
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"support_sriov": false
},
{
"name": "VM-Network02",
"network_id": "6c9fffd8-c7c4-4968-9b50-6890a640ec94",
"support_sriov": false
},
{
"name": "VM-Network03",
"network_id": "4c05b2a2-dd49-4588-ac5c-64975c92d2d3",
"support_sriov": false
}
],
"repos": [
{
"name": "VM-Storage01",
"free_size": 941970767872,
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6",
"volume_size": 1099511627776,
"file_system": "btrfs",
"status": ""
},
{
"name": "VM-Storage02",
"free_size": 445785296896,
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78",
"volume_size": 536870912000,
"file_system": "btrfs",
"status": ""
}
],
"images": [
{
"id": "c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f",
"status": "available",
"type": "iso",
"used_size": 3884539904
},
{
"id": "9b3f2fdd-9173-4611-a84c-0cc9ce88293c",
"name": "virtio-win-0.1.285pro",
"status": "available",
"type": "iso",
"used_size": 789645312
},
{
"id": "efd6da18-9475-44cf-8fb0-e2513421e68a",
"name": "haos_ova-18.2",
"status": "available",
"type": "qcow2",
"used_size": 1091698688,
"virtual_size": 34359738368
},
{
"id": "cb9d929a-d673-4e46-ac86-9488bbef19b9",
"name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf",
"status": "available",
"type": "iso",
"used_size": 5858816000
}
],
"video_cards": [
"cirrus",
"vga",
"vmvga"
],
"firmware": [
"Legacy BIOS",
"UEFI"
],
"keyboard_layout": [
"fr-be",
"ar",
"bepo",
"cz",
"da",
"de",
"de-ch",
"en-gb",
"en-us",
"es",
"et",
"fo",
"fr",
"fr-be",
"fr-ca",
"fr-ch",
"hr",
"hu",
"is",
"it",
"ja",
"lt",
"lv",
"mk",
"nl",
"nl-be",
"no",
"pl",
"pt",
"pt-br",
"ru",
"sl",
"sv",
"th",
"tr"
]
}

vms vm logs – Visar den virtuella maskinens åtgärdslogg​

Visar åtgärdsloggen för en angiven virtuell maskin (start/avstängning, ögonblicksbilder, redigering, import/export osv.).

vms vm logs <id> --json [--limit N] [--desc]
  • --limit anger antalet returnerade poster, standard 50
  • --desc sorterar efter tid i fallande ordning (aktiverat som standard)
  • Varje loggpost innehåller tid, nivå, kategori, användare och händelsebeskrivning; händelsebeskrivningen är fullständig text
  • Händelsebeskrivningen (event) skickas lokaliserad av VMs-tjänsten i enlighet med enhetens systemspråk; exemplen i detta dokument använder engelska

Exempel på utdata:

[
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:44:09.176535374+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:43:10.597187659+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:40:32.74904922+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:39:55.916718004+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:39:43.341421576+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:38:31.518259486+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) shutdown successfully"
},
{
"id": 0,
"level": "Info",
"time": "2026-09-02T11:38:07.98065689+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine(win10) started successfully"
},
{
"id": 0,
"level": "Error",
"time": "2026-09-02T11:32:35.01952111+08:00",
"category": "vm",
"user": "system",
"event": "Virtual machine (win10) export failed (Error:stat : no such file or directory)"
}
]

II. Strömhantering för virtuella maskiner​

vms vm poweron – Startar en virtuell maskin​

vms vm poweron <id>
  • Den virtuella maskinen måste vara avstängd, annars returneras ett tillståndskonfliktfel
  • Utdata: VM powered on: <id>

vms vm poweroff – Stänger av en virtuell maskin​

Skickar en begäran om normal avstängning till den virtuella maskinen så att systemet stängs av på ett smidigt sätt.

vms vm poweroff <id> [--yes]
  • Är en farlig åtgärd: i interaktivt läge frågas det om bekräftelse, i icke-interaktivt läge krävs --yes
  • Den virtuella maskinen måste vara i drift, annars returneras ett tillståndskonfliktfel

Bekräftelsemeddelande i interaktivt läge:

This action will powered off VM "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1". Do you want to continue? [y/N]: 
  • Utdata: VM powered off: <id>

vms vm force-poweroff – Tvingar en virtuell maskin att stängas av (hög risk)​

Tvingar den virtuella maskinen att stängas av, vilket motsvarar att bryta strömmen.

vms vm force-poweroff <id> [--yes]
  • Är en högrisksåtgärd: i interaktivt läge frågas det om bekräftelse, i icke-interaktivt läge krävs --yes
  • Kan leda till dataförlust i den virtuella maskinen; använd den endast när den virtuella maskinen inte svarar

Bekräftelsemeddelande i interaktivt läge:

This action will force powered off VM "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1". Do you want to continue? [y/N]: 
  • Utdata: VM force powered off: <id>

vms vm reboot – Startar om en virtuell maskin​

vms vm reboot <id>
  • Utdata: VM rebooted: <id>

vms vm pause – Pausar en virtuell maskin​

Fryser den virtuella maskinens driftstatus och sparar den aktuella statusen på disken.

vms vm pause <id>
  • Den virtuella maskinen måste vara i drift, annars returneras ett tillståndskonfliktfel
  • Efter pausning visas den virtuella maskinens status som saved
  • Utdata: VM paused: <id>

vms vm resume – Återupptar en virtuell maskin​

Återupptar en virtuell maskin från pausat läge till driftläge.

vms vm resume <id>
  • Den virtuella maskinen måste vara pausad, annars returneras ett tillståndskonfliktfel
  • Utdata: VM resumed: <id>

vms vm autorun – Anger automatisk start vid uppstart​

Anger huruvida den virtuella maskinen automatiskt ska starta när värdmaskinen startar.

vms vm autorun <id> <true|false>
  • Den andra parametern måste vara true eller false
  • Kommandot läser den aktuella konfigurationen och ändrar endast reglaget för automatisk start; andra inställningar påverkas inte
  • Utdata: Auto-start enabled for VM <id> eller Auto-start disabled for VM <id>

III. Kopiering, export och borttagning av virtuella maskiner​

vms vm clone – Klonar en virtuell maskin​

Skapar en ny virtuell maskin genom att kopiera en befintlig virtuell maskin som mall.

vms vm clone --body '{"guest_id":"<source_id>","name":"my-clone"}'
vms vm clone --file clone.json
  • I begärantexten är guest_id källmaskinens ID och name (eller guest_name) är namnet på den nya virtuella maskinen
  • Källmaskinen måste vara avstängd
  • --body skickar begärantexten direkt som en JSON-sträng, --file läser begärantexten från en fil

vms vm export – Exporterar en virtuell maskin​

Exporterar den virtuella maskinen som en OVA-fil, vilket gör det enkelt att säkerhetskopiera eller migrera till andra virtualiseringsplattformar.

vms vm export --body '{"guest_id":"<source_id>","target_ova_path":"/Volume1/export/my-vm.ova"}'
vms vm export --file export.json
  • I begärantexten är guest_id källmaskinens ID, target_ova_path är sökvägen till målfilen och ova_mode är det valfria VMware-kompatibla läget
  • Källmaskinen måste vara avstängd
  • Export är en tidskrävande uppgift; virtuella maskiner med stor kapacitet tar längre tid att exportera

vms vm delete – Tar bort en virtuell maskin (hög risk)​

Tar bort den virtuella maskinen permanent.

vms vm delete <id> [--yes]
  • Är en högrisksåtgärd: i interaktivt läge frågas det om bekräftelse, i icke-interaktivt läge krävs --yes
  • Borttagning kan inte ångras; bekräfta i förväg att data i den virtuella maskinen är säkerhetskopierade

Bekräftelsemeddelande i interaktivt läge:

This action will permanently delete VM "5a0391f2-c545-45eb-8eed-0a104972229b". Do you want to continue? [y/N]: 
  • Utdata: VM deleted: <id>

IV. Virtuella hårddiskar​

vms vm disk list – Visar virtuella hårddiskar​

Visar alla virtuella hårddiskar på en angiven virtuell maskin.

vms vm disk list <id> [--json]

Exempel på utdata:

NAME  VDISK ID                              VDISK SIZE  VDISK MODE  IDX
- f4ed4eae-1512-4273-963b-79ebd93a0932 1024 1 0
  • VDISK MODE är numret på den virtuella hårddiskkontrollertypen; 1 betyder IDE
  • Virtuella hårddiskar utan namn visas som - i kolumnen NAME

V. Hantering av ögonblicksbilder​

vms vm snapshot list – Visar ögonblicksbilder​

vms vm snapshot list <id> [--json]

Exempel på utdata:

NAME                                    GUEST ID                              DESCRIPTION      LOCKED  CREATED AT                 VM STATE  ACTUAL CONSISTENCY
snapshot_2026-09-02T11-43-51.183703274 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 cli-test-edited false 2026-09-02T11:43:51+08:00 running crash
snapshot_2026-05-15T17-13-48.986448711 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 - false 2026-05-15T17:13:48+08:00 shutdown filesystem
  • VM STATE är den virtuella maskinens driftstatus när ögonblicksbilden skapades
  • ACTUAL CONSISTENCY är ögonblicksbildens konsistenstyp; filesystem betyder filsystemskonsistent, crash betyder kraschkonsistent

vms vm snapshot create – Skapar en ögonblicksbild​

Skapar en ögonblicksbild av den virtuella maskinen för snabb återställning eller säkerhetskopiering av det aktuella tillståndet.

vms vm snapshot create <id>
vms vm snapshot create <id> --body '{"description":"before-upgrade","locked":false}'
  • Begärantexten är valfri: description är ögonblicksbildens beskrivning, locked anger huruvida den är låst
  • Ögonblicksbildens namn genereras automatiskt av systemet utifrån skapandetidpunkten
  • Ögonblicksbilder upptar lagringsutrymme; om de inte rensas över tid kan lagringsutrymmet bli fullt, så regelbunden rensning rekommenderas

vms vm snapshot edit – Redigerar en ögonblicksbild​

Ändrar ögonblicksbildens beskrivning eller låsstatus.

vms vm snapshot edit <id> <snapshot_name> --body '{"description":"updated description"}'
vms vm snapshot edit <id> <snapshot_name> --body '{"locked":true}'
  • Endast fält som finns i begärantexten ändras; fält som inte finns behåller sitt ursprungliga värde; att endast ändra beskrivningen ändrar inte låsstatusen och tvärtom

Exempel på utdata:

PROPERTY            VALUE
ACTUAL CONSISTENCY crash
CREATED AT 2026-09-02T11:43:51+08:00
DESCRIPTION cli-test-edited
GUEST ID 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1
LOCKED false
NAME snapshot_2026-09-02T11-43-51.183703274
VM STATE running

vms vm snapshot config – Visar den virtuella maskinkonfigurationen i en ögonblicksbild​

Visar den virtuella maskinkonfiguration som sparats i ögonblicksbilden.

vms vm snapshot config <id> <snapshot_name>

<id> är den virtuella maskinens ID och <snapshot_name> är ögonblicksbildens namn, som kan hämtas via vms vm snapshot list <id>.

Exempel på utdata:

PROPERTY                VALUE
CPU COMPATIBILITY MODE true
CPU PASSTHRU false
HYPERV ENLIGHTEN true
REPO NAME VM-Storage01
USB DEVICE NAME ["USB - Integrated Technology Express, Inc. Disk 2.0"]
USB VERSION 2
USBS [":3:3:048d:1234"]
VCPU NUM 4
VDISK NUM 1
VDISK TOTAL SIZE 1024
VDISKS [{"name":"disk1","type":"ide","vdisk_size":1024}]
VIDEO CARD vga
VRAM SIZE 2097152

vms vm snapshot consistency – Förhandsgranskar ögonblicksbildens konsistens​

Förhandsgranskar den konsistenstyp som kan uppnås innan en ögonblicksbild skapas, vilket hjälper till att bedöma om den aktuella tidpunkten är lämplig för att skapa en ögonblicksbild.

vms vm snapshot consistency <id>

Exempel på utdata:

PROPERTY          VALUE
CONSISTENCY TYPE filesystem
REASON vm_shutdown
VM STATE shutdown

När den virtuella maskinen är avstängd kan en filsystemskonsistent ögonblicksbild skapas; i driftläge kan vanligtvis endast en kraschkonsistent ögonblicksbild uppnås.

VI. Fjärrkonsol​

Hämtar anslutningsinformation för den virtuella maskinens VNC-konsol, som används för att öppna fjärrkonsolen i en webbläsare.

vms vm link <id> --json
  • Den virtuella maskinen måste vara i drift eller pausad, annars returneras ett tillståndskonfliktfel

Exempel på utdata:

{
"url": "VMs/noVNC/vnc.html?autoconnect=true\u0026reconnect=true\u0026path=utils/websockify/?token=09fd98ee-4e2d-4c7a-a95c-8bacab80d322\u0026title=145",
"port": 8181,
"https": false
}
  • url är konsolens sökväg relativt NAS-administrationsadressen, port är konsoltjänstens port och https anger huruvida åtkomst sker via HTTPS
  • I JSON-utdata escapes & i URL:en som \u0026

VII. Hantering av virtuella nätverk​

Det finns två nätverkstyper:

TypBeskrivning
Privat (private)Internt nätverk endast för kommunikation mellan lokala virtuella maskiner; binds inte till ett fysiskt nätverkskort
Externt (external)Nätverk bundet till ett fysiskt nätverkskort; virtuella maskiner kan kommunicera externt via detta nätverk

vms network list – Visar virtuella nätverk​

vms network list [--limit N] [--offset N] [--json]

Exempel på utdata:

NAME          NETWORK ID                            TYPE      VLAN ID  NUM GUESTS  NUM HOSTS  NUM INTERFACES  HOST NAME
VM-Network04 ce9807c9-47b3-4258-9a80-ea8db1fd785d external 0 0 1 1 A-eae4
VM-Network01 b364a1ec-f60c-4971-9ea2-f7a002f09fa3 external 0 2 1 1 A-eae4
  • NUM GUESTS är antalet virtuella maskiner anslutna till nätverket och NUM INTERFACES är antalet valda fysiska nätverkskort

vms network get – Visar detaljer för ett virtuellt nätverk​

vms network get <network_id> --json

Exempel på utdata:

{
"metadata": {
"createdAt": "2026-05-15T16:46:08.415062294+08:00",
"updatedAt": "2026-05-15T16:46:08.415062415+08:00"
},
"network_id": "b364a1ec-f60c-4971-9ea2-f7a002f09fa3",
"name": "VM-Network01",
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interfaces": {
"15341593-7f43-49f4-9523-6ac750a63a8a": {
"totalCount": 1,
"items": [
{
"checked": false,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "/00000000-0000-0000-0000-6cbfb504eae5",
"interface_name": "LAN 2",
"ip": [
"192.168.2.121"
],
"mask": [
"ffffff00"
],
"speed_mbs": 1000,
"status": "connected",
"tx_kbps": 0,
"rx_kbps": 0
},
{
"checked": true,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "/00000000-0000-0000-0000-6cbfb504eae4",
"interface_name": "LAN 1",
"ip": [
"10.18.8.95"
],
"mask": [
"ffffff00"
],
"speed_mbs": 1000,
"status": "connected",
"tx_kbps": 2.5458984375,
"rx_kbps": 11.45458984375
}
]
}
},
"num_guests": 0,
"num_hosts": 1,
"num_interfaces": 1,
"type": "external",
"vlan_id": 0
}
  • interfaces är information om de nätverkskort som är bundna till nätverket, organiserad efter värd-ID; checked anger huruvida nätverkskortet är valt
  • metadata registrerar nätverkets skapande- och uppdateringstidpunkter

vms network create – Skapar ett virtuellt nätverk​

vms network create --body '{"name":"net1","type":"private","host_name":"TNAS"}' --json
vms network create --body '{"name":"net1","type":"external","vlan_id":100,"host_name":"TNAS","interface_name":"LAN 1"}' --json

Skapa ett privat nätverk:

  • Begärantexten måste innehålla name, type (private) samt host_name eller host_id för att ange på vilken värd nätverket skapas
  • Före skapande kan tillgängliga värdar visas via vms network list-interfaces private

Skapa ett externt nätverk:

  • Begärantexten måste innehålla name, type (external) och vlan_id samt ange minst ett fysiskt nätverkskort
  • Nätverkskortet kan anges via interface_name (t.ex. LAN 1) eller interface_id; om nätverkskortets namn inte är unikt mellan värdar måste det användas tillsammans med host_name
  • Före skapande kan tillgängliga nätverkskort visas via vms network list-interfaces external

Utdata är informationen om det skapade nätverket och har samma struktur som vms network get:

{
"metadata": {
"createdAt": "2026-09-17T16:57:32.064720576+08:00",
"updatedAt": "2026-09-17T16:57:32.064720634+08:00"
},
"network_id": "27047bd1-eeeb-4762-82ae-45094dea4854",
"name": "cli-demo-net",
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interfaces": {
"15341593-7f43-49f4-9523-6ac750a63a8a": {
"totalCount": 1,
"items": [
{
"checked": true,
"host_id": "15341593-7f43-49f4-9523-6ac750a63a8a",
"host_name": "A-eae4",
"interface_id": "",
"interface_name": "PNdea4854",
"ip": null,
"mask": null,
"speed_mbs": 0,
"status": ""
}
]
}
},
"num_guests": 0,
"num_hosts": 1,
"num_interfaces": 1,
"type": "private",
"vlan_id": 0
}

Om inget nätverkskort anges ger kommandot en ledtråd:

network create (type "external") requires selecting at least one interface; add "interface_name" (optionally scoped with "host_name") or "interface_id" to the body, e.g. {"name":"net1","type":"external","vlan_id":100,"host_name":"TNAS","interface_name":"LAN 1"}. Run "vms network list-interfaces external" to see available interfaces. Example available interface: LAN 2 on A-eae4 (host_id=15341593-7f43-49f4-9523-6ac750a63a8a, interface_id=/00000000-0000-0000-0000-6cbfb504eae5)

vms network update – Uppdaterar ett virtuellt nätverk​

Endast fält som ska ändras skickas in; fält som inte skickas in behåller sitt ursprungliga värde.

vms network update --body '{"network_id":"<network_id>","name":"renamed"}'
vms network update --body '{"network_id":"<network_id>","vlan_id":200}'
  • Begärantexten måste innehålla network_id
  • Kommandot läser först den aktuella nätverkskonfigurationen och sammanfogar de inskickade fälten; nätverksnamnet och de valda nätverkskorten rensas inte
  • Utdata är informationen om det uppdaterade nätverket

vms network delete – Tar bort ett virtuellt nätverk (hög risk)​

vms network delete <network_id> [--yes]
  • Är en högrisksåtgärd: i interaktivt läge frågas det om bekräftelse, i icke-interaktivt läge krävs --yes
  • Borttagning av nätverket kopplar från alla virtuella maskiner som är anslutna till nätverket
  • Det rekommenderas att först bekräfta de anslutna virtuella maskinerna via vms network list-vnics <network_id>

Bekräftelsemeddelande i interaktivt läge:

This action will delete network "b364a1ec-f60c-4971-9ea2-f7a002f09fa3". Do you want to continue? [y/N]: 
  • Utdata: Network deleted: <network_id>

vms network list-interfaces – Visar nätverksgränssnitt​

Visar nätverksgränssnitt av en angiven typ.

vms network list-interfaces external [--limit N] [--offset N]
vms network list-interfaces private [--limit N] [--offset N]
  • external returnerar tillgängliga fysiska nätverkskort på värden
  • private returnerar värdinformation som kan användas för att skapa ett privat nätverk

Exempel på utdata (external):

INTERFACE NAME  INTERFACE ID                           HOST NAME  STATUS        IP              SPEED MBS
LAN 2 /00000000-0000-0000-0000-6cbfb504eae5 A-eae4 disconnected - -1
LAN 1 /00000000-0000-0000-0000-6cbfb504eae4 A-eae4 connected ["10.18.8.73"] 1000

Exempel på utdata (private):

INTERFACE NAME  INTERFACE ID  HOST NAME  STATUS  IP  SPEED MBS
- - A-eae4 - - 0

vms network list-vnics – Visar virtuella nätverkskort på nätverket​

vms network list-vnics <network_id> [--limit N] [--offset N] [--json]

Exempel på utdata:

GUEST NAME  GUEST ID                              MAC ADDRESS        VIRTUAL INTERFACE ID                  NETWORK NAME  STATUS  PREFER SRIOV
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 1a:e2:ae:95:4a:51 fe972ef5-b066-4967-89fa-8e85e43c8808 VM-Network01 - false
win101 32ee5a74-de8b-47a9-959d-1725c881ceab 1a:f6:db:fb:3d:79 f93bf16c-01ca-4b60-b164-8a3083fb5f03 VM-Network01 - false

vms network ovsinfo – Visar OVS-status​

Bekräftar huruvida den virtuella växeln Open vSwitch är aktiverad.

vms network ovsinfo [--json]

Exempel på utdata:

PROPERTY  VALUE
RESULT true

VALUE = true betyder att OVS är aktiverat.

VIII. Hantering av avbildningar​

vms image list – Visar avbildningar​

Visar systemavbildningsfiler som kan användas för att skapa virtuella maskiner.

vms image list --json
  • image_name är avbildningsnamnet och file_name är motsvarande filnamn
  • type är avbildningsformatet, t.ex. iso, qcow2
  • status är avbildningsstatus; available betyder tillgänglig
  • repos är lagringsutrymmet där avbildningen finns
  • progress är framdriften för avbildningsbearbetningsuppgiften; 0 betyder ingen pågående uppgift

Exempel på utdata:

{
"totalCount": 4,
"items": [
{
"image_name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f",
"image_id": "c93083a5-2b39-4f32-b19f-1ad97c6b4de4",
"file_name": "cn_windows_10_consumer_editions_version_1909_updated_jan_2020_x86_dvd_9c50652f.iso",
"type": "iso",
"file_size": 3884539904,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778835784,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf",
"image_id": "cb9d929a-d673-4e46-ac86-9488bbef19b9",
"file_name": "cn_windows_11_consumer_editions_version_21h2_updated_july_2022_x64_dvd_50ad4acf.iso",
"type": "iso",
"file_size": 5858816000,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778835784,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "virtio-win-0.1.285pro",
"image_id": "9b3f2fdd-9173-4611-a84c-0cc9ce88293c",
"file_name": "virtio-win-0.1.285.iso",
"type": "iso",
"file_size": 789645312,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1778836128,
"repos": [
{
"repo_name": "VM-Storage01",
"repo_id": "735ef7f7-5d8d-4102-9377-8a7b8c33cda6"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
},
{
"image_name": "haos_ova-18.2",
"image_id": "efd6da18-9475-44cf-8fb0-e2513421e68a",
"file_name": "haos_ova-18.2.qcow2",
"type": "qcow2",
"file_size": 1091698688,
"status": "available",
"status_code": 0,
"status_reason": "",
"create_time": 1787191833,
"repos": [
{
"repo_name": "VM-Storage02",
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78"
}
],
"progress": 0,
"task_id": 0,
"virtual_size": 0
}
]
}

vms image edit – Redigerar en avbildning​

Ändrar avbildningsnamnet eller justerar lagringsutrymmet där avbildningen finns.

vms image edit --body '{"image_id":"<image_id>","repos":["<repo_id>"]}'
vms image edit --body '{"image_id":"<image_id>","repos":["<repo_id_1>","<repo_id_2>"],"image_name":"renamed.iso"}'
  • Begärantexten måste innehålla image_id och repos; repos är den kompletta listan över mållagringsutrymmen för avbildningen och får inte vara tom
  • image_name, file_name, type och file_size är valfria fält; om de inte anges används aktuella värden
  • Ett tomt repos flyttar avbildningen ut ur alla lagringsutrymmen; kommandot avvisar begäran innan den utförs
  • Utdata: Image updated

vms image delete – Tar bort en avbildning (hög risk)​

vms image delete --image-id <image_id> [--yes]
  • --image-id är obligatoriskt
  • Är en högrisksåtgärd: i interaktivt läge frågas det om bekräftelse, i icke-interaktivt läge krävs --yes
  • Borttagning av avbildningen påverkar inte redan skapade virtuella maskiner, men påverkar framtida skapande av virtuella maskiner baserat på avbildningen
  • Det rekommenderas att först bekräfta användningen via vms image list-vms --image-id <image_id>

Bekräftelsemeddelande i interaktivt läge:

This action will permanently delete image "efd6da18-9475-44cf-8fb0-e2513421e68a". Do you want to continue? [y/N]: 
  • Utdata: Image deleted: <image_id>

vms image list-vms – Visar virtuella maskiner som använder denna avbildning​

vms image list-vms --image-id <image_id> [--json]

Exempel på utdata:

GUEST NAME
1454486

Innan en avbildning tas bort kan detta kommando köras för att bekräfta omfattningen; om inga virtuella maskiner använder avbildningen är utdata tom.

IX. Hantering av lagringsutrymmen​

vms repo list – Visar lagringsutrymmen​

vms repo list [--json]

Exempel på utdata:

NAME          REPO ID                               STATUS  USED          PERCENT USED        TOTAL SIZE     FILE SYSTEM  HOST NAME
VM-Storage01 735ef7f7-5d8d-4102-9377-8a7b8c33cda6 - 155583651840 14.150249481201172 1097552691200 btrfs -
VM-Storage02 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78 normal 89361494016 16.64487648010254 535146790912 btrfs A-eae4

vms repo get – Visar detaljer för ett lagringsutrymme​

vms repo get <repo_id> [--json]

Exempel på utdata:

PROPERTY              VALUE
ENABLE LOWER NOTIFY false
FILE SYSTEM btrfs
HARD LIMIT 2
HOST ID 15341593-7f43-49f4-9523-6ac750a63a8a
HOST NAME A-eae4
LAST NOTIFY TRESHOLD -
LOCATION VOLUME /Volume2
NAME VM-Storage02
REPO ID 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78
SOFT LIMIT 10
STATUS normal
TOTAL SIZE 534760128512
  • LOCATION VOLUME är den volym där lagringsutrymmet finns
  • SOFT LIMIT och HARD LIMIT är tröskelvärden för kapacitetsvarningar (i procent)
  • ENABLE LOWER NOTIFY anger huruvida påminnelse om låg kapacitet är aktiverad

vms repo update – Uppdaterar ett lagringsutrymme​

Endast fält som ska ändras skickas in; fält som inte skickas in behåller sitt ursprungliga värde.

vms repo update --body '{"repo_id":"<repo_id>","name":"new-name"}'
vms repo update --body '{"repoId":"<repo_id>","enable_lower_notify":true}'
  • Lagringsutrymmets ID kan anges via repo_id eller repoId
  • Kommandot läser först den aktuella konfigurationen och sammanfogar de inskickade fälten; andra inställningar går inte förlorade
  • Utdata är informationen om det uppdaterade lagringsutrymmet

vms repo delete – Tar bort ett lagringsutrymme (hög risk)​

vms repo delete <repo_id> <true|false> [--yes]
  • Den andra parametern är need_save_data: true betyder att datafilerna på disken behålls, false betyder att de tas bort tillsammans med data
  • Är en högrisksåtgärd: i interaktivt läge frågas det om bekräftelse, i icke-interaktivt läge krävs --yes
  • Borttagning av lagringsutrymmet tar även bort de virtuella maskinerna och avbildningarna i det; det rekommenderas att först köra vms repo check-running och vms repo whether-exist-data för att bekräfta omfattningen

Bekräftelsemeddelande i interaktivt läge:

This action will delete repository "735ef7f7-5d8d-4102-9377-8a7b8c33cda6" (save data: true). Do you want to continue? [y/N]: 
  • Utdata: Repository deleted: <repo_id>

vms repo list-volumes – Visar tillgängliga volymer​

Visar volymer som kan användas för att skapa ett lagringsutrymme.

vms repo list-volumes [--json]

Exempel på utdata:

NAME  UUID                                  DEVICE               FILESYSTEM  STATUS  VOLUME TYPE  TOTAL                            USED                           AVAILABLE                        USAGE
lv3 00000004-2608-1311-3025-6cbfb504eae4 /dev/mapper/vg0-lv3 ext4 - - {"unit":"KB","value":102626232} {"unit":"KB","value":52} {"unit":"KB","value":101561220} 0.000051200619070623694
lv2 00000003-2606-2215-3256-6cbfb504eae4 /dev/mapper/vg0-lv2 btrfs - - {"unit":"KB","value":104857600} {"unit":"KB","value":9715824} {"unit":"KB","value":93096464} 9.450061066630479

vms repo list-vms – Visar virtuella maskiner i ett lagringsutrymme​

vms repo list-vms --body '{"repo_id":"<repo_id>"}'
  • Lagringsutrymmets ID kan anges via repo_id eller repoId
  • Kommandot hämtar först lagringsobjektet och frågar därefter efter dess virtuella maskiner, vilket ger mer tillförlitliga resultat

vms repo check-running – Kontrollerar virtuella maskiner som körs på lagringsutrymmet​

vms repo check-running <repo_id> [--json]

Körs före borttagning av ett lagringsutrymme för att bekräfta att inga virtuella maskiner körs; om inga virtuella maskiner körs är utdata tom.

vms repo whether-exist-data – Kontrollerar om det finns data i lagringsutrymmet​

vms repo whether-exist-data --body '{"repo_id":"<repo_id>"}'

Körs före borttagning av ett lagringsutrymme för att bekräfta huruvida det fortfarande finns data i lagringsutrymmet; motsvarar förhandskontrollen före borttagning av ett lagringsutrymme i webbgränssnittet.

X. Globala inställningar​

vms setting get – Visar globala inställningar​

Visar den globala konfigurationen för VMs-applikationen.

vms setting get [--json]

Exempel på utdata:

PROPERTY                VALUE
HOST SHUTDOWN BEHAVIOR 1
KB LAYOUT en-us
SHOW VIRTIO BLK VDISK false
  • HOST SHUTDOWN BEHAVIOR är hur virtuella maskiner hanteras när värdmaskinen stängs av
  • KB LAYOUT är den virtuella maskinens tangentbordslayout

XI. Frågor om övervakningsinformation​

vms collectd hostinfo – Visar värdmaskinens övervakningsinformation​

vms collectd hostinfo [--limit N] [--offset N] [--json]

Exempel på utdata:

NAME    ID  STATUS   TYPE     CPU USAGE  RAM USAGE  DESC
A-eae4 - running healthy 2.53 15.66 Info

vms collectd vminfo – Visar den virtuella maskinens övervakningsinformation​

vms collectd vminfo [--limit N] [--offset N] [--json]

Exempel på utdata:

NAME     ID                                    STATUS    TYPE     CPU USAGE  RAM USAGE  DESC
145 09fd98ee-4e2d-4c7a-a95c-8bacab80d322 shutdown healthy 0 0 info
win10 9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1 shutdown healthy 0 0 info
win101 32ee5a74-de8b-47a9-959d-1725c881ceab shutdown healthy 0 0 info

vms collectd storageinfo – Visar lagringsövervakningsinformation​

vms collectd storageinfo [--limit N] [--offset N] [--json]

Exempel på utdata:

NAME          ID                                    HOST NAME  STATUS  TYPE     SIZE           USED          PERCENT USED        PERCENT FREE
VM-Storage01 735ef7f7-5d8d-4102-9377-8a7b8c33cda6 A-eae4 none healthy 1097552691200 155583651840 14.328414916992188 85.67158508300781
VM-Storage02 517571ba-f7f7-49e1-9a62-7eb6ddfd9c78 A-eae4 none healthy 535146790912 89361494016 16.966018676757812 83.03398132324219

Interaktivt och icke-interaktivt läge​

CLI avgör huruvida det för närvarande körs i en terminalmiljö och använder olika beteenden:

Interaktivt läge (terminalmiljö)​

  • Farliga åtgärder visar ett bekräftelsemeddelande med No som standardval
  • Skriv y eller Y för att fortsätta, skriv n eller tryck Enter för att avbryta
  • Vid avbrott skickas Operation cancelled ut och slutkoden är 99

Icke-interaktivt läge (skript/automatisering)​

  • Farliga åtgärder måste använda --yes för att hoppa över bekräftelsen; annars misslyckas kommandot och returnerar slutkoden 1
  • Utan terminalmiljö väntas inte på indata, vilket passar skript och schemalagda uppgifter
  • Det rekommenderas att hantera slutkoder uttryckligen i skript för att skilja mellan framgång, fel och tillståndskonflikt

JSON-utdataformat​

Frågekommandon stöder parametern --json, som skriver ut standardiserade JSON-data som är enkla för program att tolka.

Formatkonventioner:

  • Fältnamn använder snake_case
  • Booleska värden är true/false
  • Tid använder ISO 8601-format med nanosekundsprecision och offset för UTC+8 (t.ex. 2026-09-02T11:43:51.176535374+08:00)
  • JSON skickas till stdout, felmeddelanden till stderr
  • Långa fält som trunkeras i tabellutdata är fullständiga värden i JSON-utdata

Exempel:

vms setting get --json
{
"host_shutdown_behavior": 1,
"kb_layout": "en-us",
"show_virtio_blk_vdisk": false
}

JSON-strukturen varierar något mellan kommandon: vms vm list, vms vm snapshot list och vms vm logs skriver ut en array direkt; övriga listkommandon skriver ut ett objekt med totalCount och ett datafält, där datafältets namn varierar beroende på resursen (t.ex. items, hosts, vms, storage). Till exempel vms repo list --json:

{
"totalCount": 2,
"items": {
"517571ba-f7f7-49e1-9a62-7eb6ddfd9c78": {
"name": "VM-Storage02",
"repo_id": "517571ba-f7f7-49e1-9a62-7eb6ddfd9c78",
"status": "normal",
"used": 89361494016,
"percent_used": 16.64487648010254,
"location_volume": "/Volume2",
"total_size": 535146790912,
"hard_limit": 2,
"soft_limit": 10,
"enable_lower_notify": false,
"file_system": "btrfs"
}
}
}

Vissa kommandons JSON-utdata är enkla värden; till exempel skriver vms network ovsinfo --json ut true och vms vm pause --json skriver ut null.

Förklaring av slutkoder​

SlutkodBetydelseTypiskt scenario
0FramgångKommandot slutfördes normalt
1ParameterfelSaknade obligatoriska parametrar, fel parameterformat eller saknad --yes
3Resursen finns inteKommandots förhandsvalidering misslyckades, till exempel finns den angivna avbildningen inte
4TillståndskonfliktDen virtuella maskinens aktuella tillstånd tillåter inte åtgärden (t.ex. avstängning av en redan avstängd virtuell maskin)
6AnslutningsfelKan inte ansluta till VMs-tjänsten eller så är socket-sökvägen felaktig
7TimeoutBegäran fick timeout; kan justeras via --timeout
9UtförandefelBackend returnerar ett fel (felmeddelandet innehåller code_num och en felbeskrivning)
99Användaren avbrötVal av No eller tryck på Enter vid interaktiv bekräftelse

Exempel:

# 退出码 1(参数错误)
vms vm poweroff <id>
# Confirmation required. Re-run with --yes to continue.

# 退出码 4(状态冲突)
vms vm pause <id>
# cannot pause a virtual machine: VM must be running (current status: shutdown)

# 退出码 9(执行错误)
vms vm get <id>
# vm check configure error: vdisk check - vm not exist: key not found (code_num=2001, vm check configure error)

# 退出码 6(连接错误)
vms vm list --socket /tmp/nope.sock
# failed to connect to VMs daemon (socket /tmp/nope.sock): dial unix /tmp/nope.sock: connect: no such file or directory

Exempel på användningsscenarier​

Daglig drift​

# 查看所有虚拟机状态
vms vm list

# 查看某台虚拟机的配置与运行状态
vms vm get <id>

# 查看虚拟机的操作日志
vms vm logs <id> --limit 20

# 开机、关机与重启
vms vm poweron <id>
vms vm poweroff <id> --yes
vms vm reboot <id>

Batch-operationer i skript​

# 批量启动所有已关机的虚拟机
vms vm list --json | jq -r '.[] | select(.status == "shutdown") | .guest_id' | while read -r id; do
vms vm poweron "$id"
done

# 批量关闭所有运行中的虚拟机
vms vm list --json | jq -r '.[] | select(.status == "running") | .guest_id' | while read -r id; do
vms vm poweroff "$id" --yes
done

# 存储空间容量检查,超过 80% 时输出告警
vms collectd storageinfo --json | jq -r '.storage[] | select(.percent_used > 80) | .name'

Säkerhetskopiering och inspektion​

# 关机后为虚拟机创建快照
vms vm poweroff <id> --yes
vms vm snapshot consistency <id>
vms vm snapshot create <id> --body '{"description":"weekly-backup"}'

# 查看快照列表与详情
vms vm snapshot list <id>
vms vm snapshot config <id> <snapshot_name>

# 导出虚拟机为 OVA 文件,用于异地备份
vms vm export --body '{"guest_id":"<id>","target_ova_path":"/Volume1/backup/my-vm.ova"}'

Kontroll före borttagning​

# 删除存储空间前,先确认是否有虚拟机正在运行、是否存在数据
vms repo check-running <repo_id>
vms repo whether-exist-data --body '{"repo_id":"<repo_id>"}'

# 删除映像前,先确认有哪些虚拟机在使用
vms image list-vms --image-id <image_id>

# 删除网络前,先确认接入的虚拟机
vms network list-vnics <network_id>

Anrop från AI-verktyg​

# AI 工具可通过命令行调用 vms 命令
# 例如:获取虚拟机与宿主机状态供 AI 分析
vms vm list --json
vms collectd hostinfo --json

# AI 可解析 JSON 输出并作出决策
vms vm list-resource --json

Intern utveckling och systemintegration​

# 开发人员可通过 CLI 封装内部运维工具
# 示例:封装虚拟机健康检查函数
check_vm_health() {
vms collectd vminfo --json | jq -r '.vms[] | select(.status != "running") | .name'
}

# 将 CLI 集成到内部监控平台
vms collectd storageinfo --json | curl -X POST https://monitor.example.com/api/report -d @-

Vanliga frågor​

Q: Kräver CLI ytterligare installation?

Nej. CLI installeras tillsammans med VMs-applikationen, och efter att applikationen aktiverats kan du använda den genom att köra kommandot vms.

Q: Måste CLI användas via SSH?

Nej. CLI kan anropas från vilken kommandoradsterminal som helst, inklusive lokal terminal, fjärr-SSH, skript, AI-verktyg osv.

Q: Kan CLI hantera virtuella maskiner på andra enheter?

Nej. CLI kommunicerar med VMs-tjänsten via en lokal unix socket och används endast för att hantera virtuella maskiner på den lokala maskinen.

Q: Varför begär vissa kommandon bekräftelse medan andra inte gör det?

Åtgärder som att ta bort virtuella maskiner, ta bort nätverk, ta bort avbildningar, ta bort lagringsutrymmen samt avstängning (poweroff, force-poweroff) påverkar data eller tjänster och kräver därför bekräftelse som standard; start-, omstart-, paus-, återupptagnings- och frågekommandon har inga sådana begränsningar.

Q: Hur bekräftar man farliga åtgärder i icke-interaktivt läge?

Alla farliga åtgärder måste förses med parametern --yes; annars misslyckas kommandot och avslutas (slutkod 1).

Q: Hur avgör man i ett skript huruvida ett kommando lyckades?

Bedöm utifrån slutkoden: 0 betyder framgång och allt annat än 0 betyder fel. Du kan också tolka innehållet i --json-utdata.

Q: Varför är listan i --json-utdata ett objekt?

Vissa kommandons JSON-utdata organiseras som ett objekt efter ID och åtföljs av fältet totalCount, vilket gör det enkelt att hämta direkt efter ID.

Mer hjälp​

Varje kommando stöder --help för att se detaljerad användning:

vms --help
vms vm --help
vms vm poweroff --help
vms network create --help