Μετάβαση στο κύριο περιεχόμενο
Version: TOS 7

VMs CLI

Εισαγωγή​

Το VMs CLI είναι ένα εργαλείο διαχείρισης γραμμής εντολών για την εφαρμογή virtualization VMs της TerraMaster, παρέχοντας δυνατότητες αναζήτησης και λειτουργικής διαχείρισης αντίστοιχες με το Web interface διαχείρισης. Το CLI επικοινωνεί με την υπηρεσία VMs μέσω τοπικού unix socket, χρησιμοποιεί τυποποιημένες διασυνδέσεις εντολών και μορφή εξόδου JSON, και μπορεί να ενσωματωθεί σε scripts, αυτοματοποιημένη λειτουργική διαχείριση και ροές εργασίας δευτερογενούς ανάπτυξης.

Βασικά χαρακτηριστικά​

  • Έτοιμο προς χρήση: εγκαθίσταται μαζί με την εφαρμογή VMs, χωρίς πρόσθετη εγκατάσταση
  • Ευέλικτοι τρόποι κλήσης: υποστηρίζει τοπικό τερματικό, απομακρυσμένο SSH, scripts, εργαλεία AI και πολλούς άλλους τρόπους κλήσης
  • Διπλή λειτουργία, διαδραστική και μη διαδραστική: κατάλληλο τόσο για την καθημερινή συντήρηση από διαχειριστές όσο και για scripts και αυτοματοποιημένες εργασίες
  • Υποστήριξη εξόδου JSON: διευκολύνει την ανάλυση από προγράμματα και την αυτοματοποιημένη ενσωμάτωση
  • Τοπική επικοινωνία: επικοινωνεί με την υπηρεσία VMs μόνο μέσω τοπικού unix socket, χωρίς άνοιγμα θυρών προς τα έξω
  • Δευτερεύουσα επιβεβαίωση επικίνδυνων ενεργειών: ενέργειες όπως η διαγραφή εικονικής μηχανής και η διαγραφή δικτύου απαιτούν εξ ορισμού επιβεβαίωση

Γρήγορη εκκίνηση​

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

# 查看虚拟机列表
vms vm list

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

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

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 -

Καθολικές επιλογές​

Οι ακόλουθες επιλογές ισχύουν για όλες τις εντολές:

ΕπιλογήΣύντμησηΠεριγραφή
--help-hΕμφάνιση πληροφοριών βοήθειας της εντολής
--version-vΕμφάνιση αριθμού έκδοσης (μπορεί να συνδυαστεί με --json για δομημένη έξοδο)
--json-Έξοδος σε μορφή JSON
--yes-yΠαράλειψη της προτροπής επιβεβαίωσης για επικίνδυνες ενέργειες (απαραίτητο στη μη διαδραστική λειτουργία)
--debug-Ενεργοποίηση εξόδου debugging, εμφάνιση λεπτομερούς διαδικασίας εκτέλεσης
--socket <path>-Διαδρομή του unix socket του VMs, προεπιλογή /var/api/VMs.sock
--timeout <duration>-Χρόνος λήξης αιτήματος, προεπιλογή 30s

Παράδειγμα πληροφοριών έκδοσης​

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

Περιβάλλον εκτέλεσης​

Το VMs CLI εγκαθίσταται μαζί με την εφαρμογή VMs. Όταν η εφαρμογή ενεργοποιηθεί, συνδέει το CLI στον προεπιλεγμένο κατάλογο PATH του συστήματος, ώστε να μπορείτε να το χρησιμοποιήσετε απευθείας αφού συνδεθείτε μέσω SSH.

ΣτοιχείοΠεριγραφή
Αρχείο CLI/Volume1/@apps/VMs/bin/vms
Διαδρομή εντολής/usr/local/sbin/vms(βρίσκεται ήδη στο PATH του συστήματος)
Τρόπος επικοινωνίαςΤοπικό unix socket, προεπιλογή /var/api/VMs.sock
Κατάλληλο γιαΔιαχειριστές που έχουν συνδεθεί τοπικά

Σημειώσεις:

  • Το CLI χρησιμοποιείται για τη διαχείριση τοπικών εικονικών μηχανών και δεν υποστηρίζει απομακρυσμένη διαχείριση άλλων συσκευών μέσω CLI.
  • Το backend επιστρέφει πάντα HTTP 200, και το αν η εντολή πέτυχε κρίνεται από το πεδίο code στο σώμα της απόκρισης, το οποίο το CLI μετατρέπει σε κωδικό εξόδου.
  • Οι επικίνδυνες ενέργειες (διαγραφή εικονικής μηχανής, διαγραφή δικτύου, διαγραφή image, διαγραφή χώρου αποθήκευσης) ζητούν επιβεβαίωση στη διαδραστική λειτουργία και απαιτούν ρητή μετάδοση του --yes στη μη διαδραστική λειτουργία.

Συνοπτικός πίνακας εντολών​

Ακολουθεί μια γρήγορη συνοπτική αναφορά όλων των εντολών vms:

Γονική εντολήΥποεντολήΠεριγραφή λειτουργίαςΑπαιτείται επιβεβαίωσηΥψηλού κινδύνου
vms--versionΕμφάνιση πληροφοριών έκδοσηςΌχιΌχι
vms vmlistΛίστα όλων των εικονικών μηχανώνΌχιΌχι
vms vmgetΠροβολή λεπτομερειών καθορισμένης εικονικής μηχανήςΌχιΌχι
vms vmlist-resourceΛίστα διαθέσιμων πόρων για τη δημιουργία εικονικής μηχανήςΌχιΌχι
vms vmlogsΠροβολή αρχείου καταγραφής λειτουργιών της εικονικής μηχανήςΌχιΌχι
vms vmpoweronΕκκίνηση εικονικής μηχανήςΌχιΌχι
vms vmpoweroffΑπενεργοποίηση εικονικής μηχανής (κανονικός τερματισμός)ΝαιΌχι
vms vmforce-poweroffΑναγκαστική απενεργοποίηση εικονικής μηχανήςΝαι✅
vms vmrebootΕπανεκκίνηση εικονικής μηχανήςΌχιΌχι
vms vmpauseΠαύση εικονικής μηχανήςΌχιΌχι
vms vmresumeΕπανάληψη της εικονικής μηχανής σε παύσηΌχιΌχι
vms vmautorunΡύθμιση αυτόματης εκκίνησης κατά την εκκίνηση του συστήματοςΌχιΌχι
vms vmcloneΚλωνοποίηση εικονικής μηχανήςΌχιΌχι
vms vmexportΕξαγωγή εικονικής μηχανής ως αρχείου OVAΌχιΌχι
vms vmdeleteΔιαγραφή εικονικής μηχανήςΝαι✅
vms vm disklistΠροβολή των εικονικών σκληρών δίσκων της εικονικής μηχανήςΌχιΌχι
vms vm snapshotlistΛίστα των snapshot της εικονικής μηχανήςΌχιΌχι
vms vm snapshotcreateΔημιουργία snapshotΌχιΌχι
vms vm snapshoteditΕπεξεργασία περιγραφής και κατάστασης κλειδώματος του snapshotΌχιΌχι
vms vm snapshotconfigΠροβολή της διαμόρφωσης της εικονικής μηχανής που είναι αποθηκευμένη στο snapshotΌχιΌχι
vms vm snapshotconsistencyΠροεπισκόπηση της συνέπειας του snapshotΌχιΌχι
vms vmlinkΛήψη πληροφοριών σύνδεσης της κονσόλας VNCΌχιΌχι
vms networklistΛίστα εικονικών δικτύωνΌχιΌχι
vms networkgetΠροβολή λεπτομερειών εικονικού δικτύουΌχιΌχι
vms networkcreateΔημιουργία εικονικού δικτύουΌχιΌχι
vms networkupdateΕνημέρωση εικονικού δικτύουΌχιΌχι
vms networkdeleteΔιαγραφή εικονικού δικτύουΝαι✅
vms networklist-interfacesΛίστα διασυνδέσεων δικτύου του καθορισμένου τύπουΌχιΌχι
vms networklist-vnicsΛίστα εικονικών καρτών δικτύου στο δίκτυοΌχιΌχι
vms networkovsinfoΠροβολή του αν είναι ενεργοποιημένο το OVSΌχιΌχι
vms imagelistΛίστα imagesΌχιΌχι
vms imageeditΕπεξεργασία πληροφοριών imageΌχιΌχι
vms imagedeleteΔιαγραφή imageΝαι✅
vms imagelist-vmsΠροβολή των εικονικών μηχανών που χρησιμοποιούν το imageΌχιΌχι
vms repolistΛίστα χώρων αποθήκευσηςΌχιΌχι
vms repogetΠροβολή λεπτομερειών χώρου αποθήκευσηςΌχιΌχι
vms repoupdateΕνημέρωση διαμόρφωσης χώρου αποθήκευσηςΌχιΌχι
vms repodeleteΔιαγραφή χώρου αποθήκευσηςΝαι✅
vms repolist-volumesΛίστα διαθέσιμων τόμωνΌχιΌχι
vms repolist-vmsΛίστα εικονικών μηχανών στον χώρο αποθήκευσηςΌχιΌχι
vms repocheck-runningΈλεγχος εικονικών μηχανών σε λειτουργία στον χώρο αποθήκευσηςΌχιΌχι
vms repowhether-exist-dataΈλεγχος ύπαρξης δεδομένων στον χώρο αποθήκευσηςΌχιΌχι
vms settinggetΠροβολή καθολικών ρυθμίσεωνΌχιΌχι
vms collectdhostinfoΠροβολή πληροφοριών παρακολούθησης κεντρικού υπολογιστήΌχιΌχι
vms collectdvminfoΠροβολή πληροφοριών παρακολούθησης εικονικών μηχανώνΌχιΌχι
vms collectdstorageinfoΠροβολή πληροφοριών παρακολούθησης αποθήκευσηςΌχιΌχι

Αναφορά εντολών​

Το <id> στις εντολές είναι το ID της εικονικής μηχανής, που αντιστοιχεί στο GUEST ID στην έξοδο της λίστας εικονικών μηχανών. Ομοίως για τα <network_id>, <image_id>, <repo_id>, τα οποία μπορούν να ληφθούν αντίστοιχα μέσω vms network list, vms image list, vms repo list.

Σχετικά με τα παραδείγματα εξόδου:Η έξοδος πίνακα του vms περικόπτει τις υπερβολικά μεγάλες τιμές πεδίων σε σταθερό πλάτος (τελειώνει με έλλειψη και δεν εξαρτάται από το πλάτος του τερματικού), για παράδειγμα τα VDISKS, VNICS, ISO IMAGES στη διαμόρφωση της εικονικής μηχανής, καθώς και τα ονόματα των images. Επομένως, σε αυτό το έγγραφο οι εντολές που αφορούν μεγάλα πεδία δίνουν ομοιόμορφα πλήρες παράδειγμα εξόδου --json, ενώ οι υπόλοιπες εντολές δίνουν παράδειγμα εξόδου πίνακα. Κατά την επεξεργασία με scripts συνιστάται επίσης η ομοιόμορφη χρήση του --json.

I. Αναζήτηση εικονικών μηχανών​

vms vm list – Λίστα εικονικών μηχανών​

Εμφανίζει όλες τις εικονικές μηχανές του τοπικού συστήματος και τη βασική τους κατάσταση.

vms vm list [--limit N] [--offset N] [--json]
  • Το --limit και το --offset είναι παράμετροι σελιδοποίησης
  • Στήλες εξόδου: όνομα, ID εικονικής μηχανής, κατάσταση λειτουργίας, αριθμός πυρήνων CPU, μέγεθος μνήμης (σε KB), διεύθυνση IP

Παράδειγμα εξόδου:

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 -

Συνήθεις τιμές του STATUS:

ΚατάστασηΠεριγραφή
runningΣε λειτουργία
shutdownΑπενεργοποιημένη
savedΣε παύση (η κατάσταση λειτουργίας έχει αποθηκευτεί στον δίσκο)

vms vm get – Προβολή λεπτομερειών εικονικής μηχανής​

Εμφανίζει την πλήρη διαμόρφωση και την κατάσταση λειτουργίας της καθορισμένης εικονικής μηχανής.

vms vm get <id> --json
  • Η έξοδος περιλαμβάνει όλα τα πεδία διαμόρφωσης και κατάστασης λειτουργίας της εικονικής μηχανής
  • Κενές τιμές όπως χωρίς περιγραφή ή χωρίς IP εμφανίζονται ως κενή συμβολοσειρά
  • Όταν η εικονική μηχανή δεν υπάρχει, η εντολή επιστρέφει σφάλμα και εξάγει μήνυμα σφάλματος

Παράδειγμα εξόδου:

{
"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 – Λίστα διαθέσιμων πόρων για τη δημιουργία εικονικής μηχανής​

Εμφανίζει πόρους που μπορεί να παρέχει ο κεντρικός υπολογιστής, όπως τύπους firmware, images, CPU, μνήμη, δίκτυο, χώρο αποθήκευσης, συσκευές passthrough, για αξιολόγηση πριν από τη δημιουργία εικονικής μηχανής.

vms vm list-resource --json

Πεδία που επιστρέφονται: max_cpu_num, max_ram_size, usbs, pci_devices, networks, repos, images, video_cards, firmware, keyboard_layout.

Παράδειγμα εξόδου:

{
"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 – Προβολή αρχείου καταγραφής λειτουργιών εικονικής μηχανής​

Εμφανίζει το αρχείο καταγραφής λειτουργιών που σχετίζονται με την καθορισμένη εικονική μηχανή (ενεργοποίηση/απενεργοποίηση, snapshot, επεξεργασία, εισαγωγή/εξαγωγή κ.λπ.).

vms vm logs <id> --json [--limit N] [--desc]
  • Το --limit καθορίζει τον αριθμό των εγγραφών που επιστρέφονται, προεπιλογή 50
  • Το --desc ταξινομεί κατά φθίνουσα χρονολογική σειρά (ενεργό εξ ορισμού)
  • Κάθε καταγραφή περιλαμβάνει χρόνο, επίπεδο, κατηγορία, χρήστη ενέργειας και περιγραφή συμβάντος, ενώ η περιγραφή συμβάντος είναι πλήρες κείμενο
  • Η περιγραφή συμβάντος (event) εξάγεται από την υπηρεσία VMs τοπικοποιημένη σύμφωνα με τη γλώσσα συστήματος της συσκευής, ενώ τα παραδείγματα σε αυτό το έγγραφο χρησιμοποιούν ομοιόμορφα αγγλικά

Παράδειγμα εξόδου:

[
{
"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. Διαχείριση τροφοδοσίας εικονικών μηχανών​

vms vm poweron – Εκκίνηση εικονικής μηχανής​

vms vm poweron <id>
  • Η εικονική μηχανή πρέπει να βρίσκεται σε κατάσταση απενεργοποίησης, διαφορετικά επιστρέφεται σφάλμα σύγκρουσης κατάστασης
  • Έξοδος: VM powered on: <id>

vms vm poweroff – Απενεργοποίηση εικονικής μηχανής​

Στέλνει αίτημα κανονικού τερματισμού στην εικονική μηχανή, ώστε το σύστημα να τερματιστεί ομαλά.

vms vm poweroff <id> [--yes]
  • Αποτελεί επικίνδυνη ενέργεια: στη διαδραστική λειτουργία ζητείται επιβεβαίωση, ενώ στη μη διαδραστική λειτουργία πρέπει να προστεθεί --yes
  • Η εικονική μηχανή πρέπει να βρίσκεται σε κατάσταση λειτουργίας, διαφορετικά επιστρέφεται σφάλμα σύγκρουσης κατάστασης

Προτροπή επιβεβαίωσης στη διαδραστική λειτουργία:

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

vms vm force-poweroff – Αναγκαστική απενεργοποίηση εικονικής μηχανής (υψηλού κινδύνου)​

Αναγκαστική απενεργοποίηση της εικονικής μηχανής, ισοδύναμη με άμεση διακοπή ρεύματος.

vms vm force-poweroff <id> [--yes]
  • Αποτελεί ενέργεια υψηλού κινδύνου: στη διαδραστική λειτουργία ζητείται επιβεβαίωση, ενώ στη μη διαδραστική λειτουργία πρέπει να προστεθεί --yes
  • Μπορεί να προκαλέσει απώλεια δεδομένων εντός της εικονικής μηχανής, συνιστάται η χρήση μόνο όταν η εικονική μηχανή δεν αποκρίνεται

Προτροπή επιβεβαίωσης στη διαδραστική λειτουργία:

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

vms vm reboot – Επανεκκίνηση εικονικής μηχανής​

vms vm reboot <id>
  • Έξοδος: VM rebooted: <id>

vms vm pause – Παύση εικονικής μηχανής​

Παγώνει την κατάσταση λειτουργίας της εικονικής μηχανής και αποθηκεύει την τρέχουσα κατάσταση στον δίσκο.

vms vm pause <id>
  • Η εικονική μηχανή πρέπει να βρίσκεται σε κατάσταση λειτουργίας, διαφορετικά επιστρέφεται σφάλμα σύγκρουσης κατάστασης
  • Μετά την παύση, η κατάσταση της εικονικής μηχανής εμφανίζεται ως saved
  • Έξοδος: VM paused: <id>

vms vm resume – Επανάληψη εικονικής μηχανής​

Επαναφέρει την εικονική μηχανή από την κατάσταση παύσης σε κατάσταση λειτουργίας.

vms vm resume <id>
  • Η εικονική μηχανή πρέπει να βρίσκεται σε κατάσταση παύσης, διαφορετικά επιστρέφεται σφάλμα σύγκρουσης κατάστασης
  • Έξοδος: VM resumed: <id>

vms vm autorun – Ρύθμιση αυτόματης εκκίνησης κατά την εκκίνηση του συστήματος​

Ρυθμίζει αν η εικονική μηχανή θα εκκινείται αυτόματα μαζί με τον κεντρικό υπολογιστή.

vms vm autorun <id> <true|false>
  • Η δεύτερη παράμετρος πρέπει να είναι true ή false
  • Η εντολή διαβάζει την τρέχουσα διαμόρφωση και τροποποιεί μόνο τον διακόπτη αυτόματης εκκίνησης, χωρίς να επηρεάζονται οι άλλες ρυθμίσεις
  • Έξοδος: Auto-start enabled for VM <id> ή Auto-start disabled for VM <id>

III. Αντιγραφή, εξαγωγή και διαγραφή εικονικών μηχανών​

vms vm clone – Κλωνοποίηση εικονικής μηχανής​

Δημιουργεί ένα αντίγραφο νέας εικονικής μηχανής χρησιμοποιώντας μια υπάρχουσα ως πρότυπο.

vms vm clone --body '{"guest_id":"<source_id>","name":"my-clone"}'
vms vm clone --file clone.json
  • Στο σώμα του αιτήματος, το guest_id είναι το ID της πηγαίας εικονικής μηχανής και το name (ή guest_name) είναι το όνομα της νέας εικονικής μηχανής
  • Η πηγαία εικονική μηχανή πρέπει να είναι απενεργοποιημένη
  • Το --body περνά απευθείας το σώμα του αιτήματος ως συμβολοσειρά JSON, ενώ το --file διαβάζει το σώμα του αιτήματος από αρχείο

vms vm export – Εξαγωγή εικονικής μηχανής​

Εξάγει την εικονική μηχανή ως αρχείο OVA, διευκολύνοντας το backup ή τη μετεγκατάσταση σε άλλη πλατφόρμα virtualization.

vms vm export --body '{"guest_id":"<source_id>","target_ova_path":"/Volume1/export/my-vm.ova"}'
vms vm export --file export.json
  • Στο σώμα του αιτήματος, το guest_id είναι το ID της πηγαίας εικονικής μηχανής, το target_ova_path είναι η διαδρομή του αρχείου προορισμού και το ova_mode είναι η προαιρετική λειτουργία συμβατότητας με VMware
  • Η πηγαία εικονική μηχανή πρέπει να είναι απενεργοποιημένη
  • Η εξαγωγή είναι χρονοβόρα εργασία και η εξαγωγή εικονικών μηχανών μεγάλου μεγέθους διαρκεί περισσότερο

vms vm delete – Διαγραφή εικονικής μηχανής (υψηλού κινδύνου)​

Οριστική διαγραφή της εικονικής μηχανής.

vms vm delete <id> [--yes]
  • Αποτελεί ενέργεια υψηλού κινδύνου: στη διαδραστική λειτουργία ζητείται επιβεβαίωση, ενώ στη μη διαδραστική λειτουργία πρέπει να προστεθεί --yes
  • Μετά τη διαγραφή δεν είναι δυνατή η ανάκτηση, βεβαιωθείτε εκ των προτέρων ότι τα δεδομένα στην εικονική μηχανή έχουν γίνει backup

Προτροπή επιβεβαίωσης στη διαδραστική λειτουργία:

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

IV. Εικονικοί σκληροί δίσκοι​

vms vm disk list – Προβολή εικονικών σκληρών δίσκων​

Εμφανίζει όλους τους εικονικούς σκληρούς δίσκους της καθορισμένης εικονικής μηχανής.

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

Παράδειγμα εξόδου:

NAME  VDISK ID                              VDISK SIZE  VDISK MODE  IDX
- f4ed4eae-1512-4273-963b-79ebd93a0932 1024 1 0
  • Το VDISK MODE είναι ο αριθμός τύπου του ελεγκτή του εικονικού σκληρού δίσκου, το 1 σημαίνει IDE
  • Οι εικονικοί σκληροί δίσκοι χωρίς όνομα εμφανίζονται στη στήλη NAME ως -

V. Διαχείριση snapshot​

vms vm snapshot list – Λίστα snapshot​

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

Παράδειγμα εξόδου:

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 είναι η κατάσταση λειτουργίας της εικονικής μηχανής τη στιγμή της δημιουργίας του snapshot
  • Το ACTUAL CONSISTENCY είναι ο τύπος συνέπειας του snapshot, το filesystem σημαίνει συνέπεια του συστήματος αρχείων και το crash σημαίνει συνέπεια κατάρρευσης

vms vm snapshot create – Δημιουργία snapshot​

Δημιουργεί ένα snapshot της εικονικής μηχανής για γρήγορη επαναφορά ή backup της τρέχουσας κατάστασης.

vms vm snapshot create <id>
vms vm snapshot create <id> --body '{"description":"before-upgrade","locked":false}'
  • Το σώμα του αιτήματος είναι προαιρετικό: το description είναι η περιγραφή του snapshot και το locked υποδεικνύει αν είναι κλειδωμένο
  • Το όνομα του snapshot δημιουργείται αυτόματα από το σύστημα με βάση τον χρόνο δημιουργίας
  • Τα snapshot καταλαμβάνουν χώρο αποθήκευσης και η μη τακτική εκκαθάριση μπορεί να γεμίσει τον χώρο αποθήκευσης, συνιστάται τακτική οργάνωση

vms vm snapshot edit – Επεξεργασία snapshot​

Τροποποιεί την περιγραφή ή την κατάσταση κλειδώματος του snapshot.

vms vm snapshot edit <id> <snapshot_name> --body '{"description":"updated description"}'
vms vm snapshot edit <id> <snapshot_name> --body '{"locked":true}'
  • Τροποποιούνται μόνο τα πεδία που εμφανίζονται στο σώμα του αιτήματος, ενώ τα πεδία που δεν εμφανίζονται διατηρούν την αρχική τιμή. Η αλλαγή μόνο της περιγραφής δεν αλλάζει την κατάσταση κλειδώματος και το αντίστροφο

Παράδειγμα εξόδου:

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 – Προβολή διαμόρφωσης εικονικής μηχανής στο snapshot​

Εμφανίζει τη διαμόρφωση της εικονικής μηχανής που είναι αποθηκευμένη στο snapshot.

vms vm snapshot config <id> <snapshot_name>

Το <id> είναι το ID της εικονικής μηχανής και το <snapshot_name> είναι το όνομα του snapshot, το οποίο μπορείτε να λάβετε μέσω vms vm snapshot list <id>.

Παράδειγμα εξόδου:

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 – Προεπισκόπηση συνέπειας snapshot​

Πριν από τη δημιουργία snapshot, κάνει προεπισκόπηση του πιθανού τύπου συνέπειας, βοηθώντας να κριθεί αν η τρέχουσα στιγμή είναι κατάλληλη για τη δημιουργία snapshot.

vms vm snapshot consistency <id>

Παράδειγμα εξόδου:

PROPERTY          VALUE
CONSISTENCY TYPE filesystem
REASON vm_shutdown
VM STATE shutdown

Όταν η εικονική μηχανή είναι απενεργοποιημένη, η δημιουργία snapshot παρέχει snapshot με συνέπεια του συστήματος αρχείων. Όταν είναι σε λειτουργία, συνήθως είναι εφικτό μόνο snapshot με συνέπεια κατάρρευσης.

VI. Απομακρυσμένη κονσόλα​

Λαμβάνει τις πληροφορίες σύνδεσης της κονσόλας VNC της εικονικής μηχανής, για άνοιγμα της απομακρυσμένης κονσόλας στον περιηγητή.

vms vm link <id> --json
  • Η εικονική μηχανή πρέπει να βρίσκεται σε κατάσταση λειτουργίας ή παύσης, διαφορετικά επιστρέφεται σφάλμα σύγκρουσης κατάστασης

Παράδειγμα εξόδου:

{
"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 είναι η διαδρομή της κονσόλας σε σχέση με τη διεύθυνση διαχείρισης του NAS, το port είναι η θύρα της υπηρεσίας κονσόλας, το https υποδεικνύει αν απαιτείται πρόσβαση μέσω HTTPS
  • Στην έξοδο JSON, το & στο URL διαφεύγει ως \u0026

VII. Διαχείριση εικονικού δικτύου​

Οι τύποι δικτύου χωρίζονται σε δύο:

ΤύποςΠεριγραφή
Ιδιωτικό (private)Εσωτερικό δίκτυο μόνο για επικοινωνία μεταξύ των τοπικών εικονικών μηχανών, δεν δεσμεύεται σε φυσική κάρτα δικτύου
Εξωτερικό (external)Δίκτυο δεσμευμένο σε φυσική κάρτα δικτύου, μέσω του οποίου οι εικονικές μηχανές μπορούν να επικοινωνούν με το εξωτερικό

vms network list – Λίστα εικονικών δικτύων​

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

Παράδειγμα εξόδου:

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 είναι ο αριθμός των εικονικών μηχανών που είναι συνδεδεμένες σε αυτό το δίκτυο και το NUM INTERFACES είναι ο αριθμός των επιλεγμένων φυσικών καρτών δικτύου

vms network get – Προβολή λεπτομερειών εικονικού δικτύου​

vms network get <network_id> --json

Παράδειγμα εξόδου:

{
"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 είναι οι πληροφορίες των καρτών δικτύου στις οποίες είναι δεσμευμένο το δίκτυο, οργανωμένες κατά ID κεντρικού υπολογιστή, ενώ το checked υποδεικνύει αν η κάρτα δικτύου έχει επιλεγεί
  • Το metadata καταγράφει τον χρόνο δημιουργίας και ενημέρωσης του δικτύου

vms network create – Δημιουργία εικονικού δικτύου​

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

Δημιουργία ιδιωτικού δικτύου:

  • Το σώμα του αιτήματος πρέπει να περιέχει name, type (private), host_name ή host_id, καθορίζοντας σε ποιον κεντρικό υπολογιστή δημιουργείται το δίκτυο
  • Πριν από τη δημιουργία, μπορείτε να δείτε τους διαθέσιμους κεντρικούς υπολογιστές μέσω vms network list-interfaces private

Δημιουργία εξωτερικού δικτύου:

  • Το σώμα του αιτήματος πρέπει να περιέχει name, type (external), vlan_id και να καθορίζει τουλάχιστον μία φυσική κάρτα δικτύου
  • Μπορείτε να καθορίσετε την κάρτα δικτύου μέσω interface_name (όπως LAN 1) ή interface_id. Όταν το όνομα της κάρτας δικτύου δεν είναι μοναδικό μεταξύ κεντρικών υπολογιστών, απαιτείται συνδυασμός με host_name
  • Πριν από τη δημιουργία, μπορείτε να δείτε τις διαθέσιμες κάρτες δικτύου μέσω vms network list-interfaces external

Η έξοδος είναι οι πληροφορίες του δικτύου μετά τη δημιουργία, με δομή ίδια με του 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
}

Όταν δεν έχει καθοριστεί κάρτα δικτύου, η εντολή εμφανίζει υπόδειξη:

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 – Ενημέρωση εικονικού δικτύου​

Υποβάλλονται μόνο τα πεδία που χρειάζονται τροποποίηση, ενώ τα μη υποβληθέντα διατηρούν την αρχική τιμή.

vms network update --body '{"network_id":"<network_id>","name":"renamed"}'
vms network update --body '{"network_id":"<network_id>","vlan_id":200}'
  • Το σώμα του αιτήματος πρέπει να περιέχει network_id
  • Η εντολή διαβάζει πρώτα την τρέχουσα διαμόρφωση του δικτύου και συγχωνεύει τα υποβληθέντα πεδία, ώστε το όνομα του δικτύου και οι επιλεγμένες κάρτες δικτύου να μην διαγράφονται
  • Η έξοδος είναι οι ενημερωμένες πληροφορίες του δικτύου

vms network delete – Διαγραφή εικονικού δικτύου (υψηλού κινδύνου)​

vms network delete <network_id> [--yes]
  • Αποτελεί ενέργεια υψηλού κινδύνου: στη διαδραστική λειτουργία ζητείται επιβεβαίωση, ενώ στη μη διαδραστική λειτουργία πρέπει να προστεθεί --yes
  • Η διαγραφή του δικτύου αποσυνδέει όλες τις εικονικές μηχανές που είναι συνδεδεμένες σε αυτό
  • Συνιστάται να επιβεβαιώσετε πρώτα τις συνδεδεμένες εικονικές μηχανές μέσω vms network list-vnics <network_id>

Προτροπή επιβεβαίωσης στη διαδραστική λειτουργία:

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

vms network list-interfaces – Λίστα διασυνδέσεων δικτύου​

Εμφανίζει τις διασυνδέσεις δικτύου του καθορισμένου τύπου.

vms network list-interfaces external [--limit N] [--offset N]
vms network list-interfaces private [--limit N] [--offset N]
  • Το external επιστρέφει τις διαθέσιμες φυσικές κάρτες δικτύου στον κεντρικό υπολογιστή
  • Το private επιστρέφει τις πληροφορίες κεντρικών υπολογιστών που μπορούν να χρησιμοποιηθούν για τη δημιουργία ιδιωτικού δικτύου

Παράδειγμα εξόδου (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

Παράδειγμα εξόδου (private):

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

vms network list-vnics – Λίστα εικονικών καρτών δικτύου στο δίκτυο​

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

Παράδειγμα εξόδου:

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 – Προβολή κατάστασης OVS​

Επιβεβαιώνει αν ο εικονικός διακόπτης Open vSwitch είναι ενεργοποιημένος.

vms network ovsinfo [--json]

Παράδειγμα εξόδου:

PROPERTY  VALUE
RESULT true

Όταν το VALUE είναι true, το OVS είναι ενεργοποιημένο.

VIII. Διαχείριση images​

vms image list – Λίστα images​

Εμφανίζει τα αρχεία εικόνας συστήματος που μπορούν να χρησιμοποιηθούν για τη δημιουργία εικονικών μηχανών.

vms image list --json
  • Το image_name είναι το όνομα του image και το file_name είναι το αντίστοιχο όνομα αρχείου
  • Το type είναι η μορφή του image, όπως iso, qcow2
  • Το status είναι η κατάσταση του image, το available σημαίνει διαθέσιμο
  • Το repos είναι ο χώρος αποθήκευσης όπου βρίσκεται το image
  • Το progress είναι η πρόοδος της εργασίας επεξεργασίας του image, το 0 σημαίνει ότι δεν υπάρχει εργασία σε εξέλιξη

Παράδειγμα εξόδου:

{
"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 – Επεξεργασία image​

Τροποποιεί το όνομα του image ή προσαρμόζει τον χώρο αποθήκευσης όπου βρίσκεται το image.

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"}'
  • Το σώμα του αιτήματος πρέπει να περιέχει image_id και repos, όπου το repos είναι η πλήρης λίστα των χώρων αποθήκευσης προορισμού του image και δεν μπορεί να είναι κενό
  • Τα image_name, file_name, type, file_size είναι προαιρετικά πεδία και, όταν δεν παρέχονται, διατηρούνται οι τρέχουσες τιμές
  • Το κενό repos θα οδηγήσει στην αφαίρεση του image από όλους τους χώρους αποθήκευσης, οπότε η εντολή απορρίπτει το αίτημα πριν από την εκτέλεση
  • Έξοδος: Image updated

vms image delete – Διαγραφή image (υψηλού κινδύνου)​

vms image delete --image-id <image_id> [--yes]
  • Το --image-id είναι υποχρεωτικό
  • Αποτελεί ενέργεια υψηλού κινδύνου: στη διαδραστική λειτουργία ζητείται επιβεβαίωση, ενώ στη μη διαδραστική λειτουργία πρέπει να προστεθεί --yes
  • Η διαγραφή του image δεν επηρεάζει τις ήδη δημιουργημένες εικονικές μηχανές, αλλά επηρεάζει τη μελλοντική δημιουργία εικονικών μηχανών βάσει αυτού του image
  • Συνιστάται να επιβεβαιώσετε πρώτα τη χρήση μέσω vms image list-vms --image-id <image_id>

Προτροπή επιβεβαίωσης στη διαδραστική λειτουργία:

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

vms image list-vms – Προβολή εικονικών μηχανών που χρησιμοποιούν το image​

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

Παράδειγμα εξόδου:

GUEST NAME
1454486

Πριν από τη διαγραφή του image, μπορείτε να εκτελέσετε πρώτα αυτή την εντολή για να επιβεβαιώσετε το εύρος επιρροής. Όταν καμία εικονική μηχανή δεν χρησιμοποιεί το image, η έξοδος είναι κενή.

IX. Διαχείριση χώρου αποθήκευσης​

vms repo list – Λίστα χώρων αποθήκευσης​

vms repo list [--json]

Παράδειγμα εξόδου:

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 – Προβολή λεπτομερειών χώρου αποθήκευσης​

vms repo get <repo_id> [--json]

Παράδειγμα εξόδου:

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 είναι ο τόμος όπου βρίσκεται ο χώρος αποθήκευσης
  • Τα SOFT LIMIT, HARD LIMIT είναι τα κατώφλια ειδοποίησης χωρητικότητας (ποσοστό)
  • Το ENABLE LOWER NOTIFY υποδεικνύει αν είναι ενεργοποιημένη η ειδοποίηση ανεπαρκούς χωρητικότητας

vms repo update – Ενημέρωση χώρου αποθήκευσης​

Υποβάλλονται μόνο τα πεδία που χρειάζονται τροποποίηση, ενώ τα μη υποβληθέντα διατηρούν την αρχική τιμή.

vms repo update --body '{"repo_id":"<repo_id>","name":"new-name"}'
vms repo update --body '{"repoId":"<repo_id>","enable_lower_notify":true}'
  • Το ID του χώρου αποθήκευσης μπορεί να περαστεί μέσω repo_id ή repoId
  • Η εντολή διαβάζει πρώτα την τρέχουσα διαμόρφωση και συγχωνεύει τα υποβληθέντα πεδία, ώστε οι άλλες ρυθμίσεις να μην χάνονται
  • Η έξοδος είναι οι ενημερωμένες πληροφορίες του χώρου αποθήκευσης

vms repo delete – Διαγραφή χώρου αποθήκευσης (υψηλού κινδύνου)​

vms repo delete <repo_id> <true|false> [--yes]
  • Η δεύτερη παράμετρος είναι need_save_data: το true σημαίνει διατήρηση των αρχείων δεδομένων στον δίσκο και το false σημαίνει διαγραφή μαζί με τα δεδομένα
  • Αποτελεί ενέργεια υψηλού κινδύνου: στη διαδραστική λειτουργία ζητείται επιβεβαίωση, ενώ στη μη διαδραστική λειτουργία πρέπει να προστεθεί --yes
  • Η διαγραφή του χώρου αποθήκευσης αφαιρεί ταυτόχρονα τις εικονικές μηχανές και τα images που περιέχει, οπότε συνιστάται να εκτελέσετε πρώτα vms repo check-running και vms repo whether-exist-data για να επιβεβαιώσετε το εύρος επιρροής

Προτροπή επιβεβαίωσης στη διαδραστική λειτουργία:

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

vms repo list-volumes – Λίστα διαθέσιμων τόμων​

Εμφανίζει τους τόμους που μπορούν να χρησιμοποιηθούν για τη δημιουργία χώρου αποθήκευσης.

vms repo list-volumes [--json]

Παράδειγμα εξόδου:

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 – Λίστα εικονικών μηχανών στον χώρο αποθήκευσης​

vms repo list-vms --body '{"repo_id":"<repo_id>"}'
  • Το ID του χώρου αποθήκευσης μπορεί να περαστεί μέσω repo_id ή repoId
  • Η εντολή λαμβάνει πρώτα το αντικείμενο του χώρου αποθήκευσης και στη συνέχεια αναζητά τις εικονικές μηχανές του, με αποτέλεσμα πιο αξιόπιστο αποτέλεσμα

vms repo check-running – Έλεγχος εικονικών μηχανών σε λειτουργία στον χώρο αποθήκευσης​

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

Εκτελείται πριν από τη διαγραφή του χώρου αποθήκευσης για να επιβεβαιωθεί ότι καμία εικονική μηχανή δεν βρίσκεται σε λειτουργία. Όταν δεν υπάρχουν εικονικές μηχανές σε λειτουργία, η έξοδος είναι κενή.

vms repo whether-exist-data – Έλεγχος ύπαρξης δεδομένων στον χώρο αποθήκευσης​

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

Εκτελείται πριν από τη διαγραφή του χώρου αποθήκευσης για να επιβεβαιωθεί αν υπάρχουν ακόμη δεδομένα σε αυτόν. Είναι ίδιο με τον προέλεγχο πριν από τη διαγραφή χώρου αποθήκευσης στο Web interface.

X. Καθολικές ρυθμίσεις​

vms setting get – Προβολή καθολικών ρυθμίσεων​

Εμφανίζει την καθολική διαμόρφωση της εφαρμογής VMs.

vms setting get [--json]

Παράδειγμα εξόδου:

PROPERTY                VALUE
HOST SHUTDOWN BEHAVIOR 1
KB LAYOUT en-us
SHOW VIRTIO BLK VDISK false
  • Το HOST SHUTDOWN BEHAVIOR είναι ο τρόπος χειρισμού των εικονικών μηχανών κατά την απενεργοποίηση του κεντρικού υπολογιστή
  • Το KB LAYOUT είναι η διάταξη πληκτρολογίου των εικονικών μηχανών

XI. Αναζήτηση πληροφοριών παρακολούθησης​

vms collectd hostinfo – Προβολή πληροφοριών παρακολούθησης κεντρικού υπολογιστή​

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

Παράδειγμα εξόδου:

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

vms collectd vminfo – Προβολή πληροφοριών παρακολούθησης εικονικών μηχανών​

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

Παράδειγμα εξόδου:

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 – Προβολή πληροφοριών παρακολούθησης αποθήκευσης​

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

Παράδειγμα εξόδου:

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

Διαδραστική και μη διαδραστική λειτουργία​

Το CLI προσδιορίζει αν εκτελείται σε περιβάλλον τερματικού και υιοθετεί διαφορετική συμπεριφορά:

Διαδραστική λειτουργία (περιβάλλον τερματικού)​

  • Οι επικίνδυνες ενέργειες εμφανίζουν προτροπή επιβεβαίωσης, με προεπιλεγμένη επιλογή το No
  • Εισαγάγετε y ή Y για συνέχεια και n ή απλώς Enter για ακύρωση
  • Κατά την ακύρωση της ενέργειας εξάγεται Operation cancelled και ο κωδικός εξόδου είναι 99

Μη διαδραστική λειτουργία (script/αυτοματισμός)​

  • Οι επικίνδυνες ενέργειες πρέπει να χρησιμοποιούν --yes για παράλειψη της επιβεβαίωσης, διαφορετικά η εντολή εμφανίζει απευθείας σφάλμα και επιστρέφει κωδικό εξόδου 1
  • Χωρίς περιβάλλον τερματικού δεν περιμένει εισαγωγή, κάτι που είναι κατάλληλο για κλήσεις από scripts και προγραμματισμένες εργασίες
  • Συνιστάται ο ρητός χειρισμός των κωδικών εξόδου στα scripts, για διάκριση μεταξύ επιτυχίας, αποτυχίας και σύγκρουσης κατάστασης

Μορφή εξόδου JSON​

Οι εντολές αναζήτησης υποστηρίζουν την παράμετρο --json, εξάγοντας τυποποιημένα δεδομένα JSON, διευκολύνοντας την ανάλυση από προγράμματα.

Συμβάσεις μορφής:

  • Τα ονόματα πεδίων χρησιμοποιούν snake_case
  • Οι λογικές τιμές είναι true/false
  • Ο χρόνος χρησιμοποιεί μορφή ISO 8601, με ακρίβεια νανοδευτερολέπτου και μετατόπιση ζώνης UTC+8 (όπως 2026-09-02T11:43:51.176535374+08:00)
  • Η έξοδος JSON γράφεται στο stdout και τα μηνύματα σφάλματος στο stderr
  • Τα μεγάλα πεδία που περικόπτονται στην έξοδο πίνακα εμφανίζονται ως πλήρεις τιμές στην έξοδο JSON

Παράδειγμα:

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

Οι δομές JSON διαφέρουν ελαφρώς μεταξύ των εντολών: τα vms vm list, vms vm snapshot list, vms vm logs εξάγουν απευθείας πίνακα. Οι υπόλοιπες εντολές τύπου λίστας εξάγουν αντικείμενο που περιέχει totalCount και πεδία δεδομένων, των οποίων τα ονόματα ποικίλλουν ανά πόρο (όπως items, hosts, vms, storage). Για παράδειγμα 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"
}
}
}

Ορισμένες εντολές εξάγουν απλές τιμές JSON, για παράδειγμα το vms network ovsinfo --json εξάγει true και το vms vm pause --json εξάγει null.

Επεξήγηση κωδικών εξόδου​

Κωδικός εξόδουΣημασίαΤυπικό σενάριο
0ΕπιτυχίαΗ εντολή ολοκληρώθηκε κανονικά
1Σφάλμα παραμέτρουΈλλειψη υποχρεωτικής παραμέτρου, λανθασμένη μορφή παραμέτρου, μη προσθήκη --yes
3Ο πόρος δεν υπάρχειΟ προέλεγχος της εντολής απέτυχε, για παράδειγμα το καθορισμένο image δεν υπάρχει
4Σύγκρουση κατάστασηςΗ τρέχουσα κατάσταση της εικονικής μηχανής δεν επιτρέπει αυτή την ενέργεια (όπως εκτέλεση απενεργοποίησης σε απενεργοποιημένη εικονική μηχανή)
6Σφάλμα σύνδεσηςΑδυναμία σύνδεσης με την υπηρεσία VMs ή λανθασμένη διαδρομή socket
7Λήξη χρόνουΛήξη χρόνου αιτήματος, μπορεί να προσαρμοστεί μέσω --timeout
9Σφάλμα εκτέλεσηςΤο backend επέστρεψε σφάλμα (το μήνυμα σφάλματος περιέχει code_num και περιγραφή σφάλματος)
99Ακύρωση από τον χρήστηΕπιλογή No ή απλό Enter κατά τη διαδραστική επιβεβαίωση

Παράδειγμα:

# 退出码 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

Παραδείγματα σεναρίων χρήσης​

Καθημερινή λειτουργική διαχείριση​

# 查看所有虚拟机状态
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>

Μαζικές ενέργειες με script​

# 批量启动所有已关机的虚拟机
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'

Backup και επιθεώρηση​

# 关机后为虚拟机创建快照
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"}'

Έλεγχος πριν από τη διαγραφή​

# 删除存储空间前,先确认是否有虚拟机正在运行、是否存在数据
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>

Κλήση από εργαλεία AI​

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

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

Εσωτερική ανάπτυξη και ενσωμάτωση συστήματος​

# 开发人员可通过 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 @-

Συχνές ερωτήσεις​

Ε: Χρειάζεται το CLI πρόσθετη εγκατάσταση;

Όχι. Το CLI εγκαθίσταται μαζί με την εφαρμογή VMs και μπορείτε να το χρησιμοποιήσετε εκτελώντας απευθείας την εντολή vms αφού ενεργοποιηθεί η εφαρμογή.

Ε: Είναι υποχρεωτική η χρήση του CLI μέσω SSH;

Όχι. Το CLI μπορεί να κληθεί από οποιοδήποτε τερματικό γραμμής εντολών, συμπεριλαμβανομένων τοπικού τερματικού, απομακρυσμένου SSH, scripts, εργαλείων AI κ.λπ.

Ε: Μπορεί το CLI να διαχειρίζεται εικονικές μηχανές σε άλλες συσκευές;

Όχι. Το CLI επικοινωνεί με την υπηρεσία VMs μέσω τοπικού unix socket και χρησιμοποιείται μόνο για τη διαχείριση τοπικών εικονικών μηχανών.

Ε: Γιατί ορισμένες εντολές ζητούν επιβεβαίωση και άλλες όχι;

Ενέργειες όπως η διαγραφή εικονικής μηχανής, η διαγραφή δικτύου, η διαγραφή image, η διαγραφή χώρου αποθήκευσης και η απενεργοποίηση (poweroff, force-poweroff) επηρεάζουν δεδομένα ή υπηρεσίες, επομένως απαιτούν εξ ορισμού επιβεβαίωση. Οι εντολές εκκίνησης, επανεκκίνησης, παύσης, επανάληψης και αναζήτησης δεν έχουν τέτοιον περιορισμό.

Ε: Πώς επιβεβαιώνονται οι επικίνδυνες ενέργειες στη μη διαδραστική λειτουργία;

Όλες οι επικίνδυνες ενέργειες πρέπει να προσθέτουν την παράμετρο --yes, διαφορετικά η εντολή τερματίζεται με σφάλμα (κωδικός εξόδου 1).

Ε: Πώς προσδιορίζεται στα scripts αν η εντολή εκτελέστηκε επιτυχώς;

Μέσω του κωδικού εξόδου: το 0 σημαίνει επιτυχία και οποιοδήποτε μη 0 σημαίνει αποτυχία. Μπορείτε επίσης να αναλύσετε το περιεχόμενο εξόδου του --json.

Ε: Γιατί η λίστα στην έξοδο --json είναι αντικείμενο;

Η έξοδος JSON ορισμένων εντολών οργανώνεται σε αντικείμενο κατά ID, με συνοδευτικό πεδίο totalCount, διευκολύνοντας την άμεση ανάκτηση κατά ID.

Περισσότερη βοήθεια​

Κάθε εντολή υποστηρίζει --help για προβολή λεπτομερούς χρήσης:

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