VMs CLI
Giriş
VMs CLI, TerraMaster VMs sanallaştırma uygulamasının komut satırı yönetim aracıdır ve Web yönetim arayüzüyle tutarlı sorgulama ve işletim yetenekleri sunar. CLI, yerel unix socket üzerinden VMs servisiyle iletişim kurar; standartlaştırılmış komut arayüzü ve JSON çıktı biçimi sayesinde betiklere, otomatikleştirilmiş operasyonlara ve ikincil geliştirme iş akışlarına entegre edilebilir.
Temel Özellikler
- Kutudan çıktığı gibi kullanıma hazır: VMs uygulamasıyla birlikte kurulur, ek kurulum gerektirmez
- Esnek çağrı yöntemleri: yerel terminal, uzak SSH, betik, AI aracı gibi çeşitli çağrı yollarını destekler
- Etkileşimli ve etkileşimsiz çift mod: hem yöneticinin günlük bakımına hem de betik ve otomasyon görevlerine uygundur
- JSON çıktı desteği: programatik ayrıştırma ve otomasyon entegrasyonu için uygundur
- Yerel iletişim: yalnızca yerel unix socket üzerinden VMs servisiyle iletişim kurar, dışa port açmaz
- Tehlikeli işlemler için ikincil onay: sanal makine silme, ağ silme gibi işlemler varsayılan olarak onay gerektirir
Hızlı Başlangıç
# 在终端中执行(可通过本地终端、SSH、脚本、AI 工具等任意命令行途径)
vms --help
# 查看虚拟机列表
vms vm list
# 查看虚拟机详情
vms vm get <id>
# 以 JSON 格式输出(便于脚本解析)
vms vm list --json
vms vm list çıktı örneği:
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 -
Genel Seçenekler
Aşağıdaki seçenekler tüm komutlar için geçerlidir:
| Seçenek | Kısa | Açıklama |
|---|---|---|
--help | -h | Komut yardım bilgisini gösterir |
--version | -v | Sürüm numarasını gösterir (--json ile yapılandırılmış bilgi çıktısı verilebilir) |
--json | - | JSON biçiminde çıktı verir |
--yes | -y | Tehlikeli işlemlerin onay istemini atlar (etkileşimsiz modda mutlaka kullanılmalıdır) |
--debug | - | Hata ayıklama çıktısını etkinleştirir, ayrıntılı yürütme sürecini gösterir |
--socket <path> | - | VMs unix socket yolu, varsayılan /var/api/VMs.sock |
--timeout <duration> | - | İstek zaman aşımı süresi, varsayılan 30s |
Sürüm Bilgisi Örneği
vms --version
vms CLI v1.0.058
vms --version --json
{
"build": "20260911",
"cli_version": "v1.0.058"
}
Çalışma Ortamı
VMs CLI, VMs uygulamasıyla birlikte kurulur. Uygulama etkinleştirildiğinde CLI'yi sistemin varsayılan PATH dizinine bağlar; SSH ile giriş yaptıktan sonra doğrudan kullanılabilir.
| Öğe | Açıklama |
|---|---|
| CLI dosyası | /Volume1/@apps/VMs/bin/vms |
| Komut yolu | /usr/local/sbin/vms (sistem PATH'inde) |
| İletişim yöntemi | Yerel unix socket, varsayılan /var/api/VMs.sock |
| Hedef kullanıcı | Bu makineye giriş yapan yönetici |
Dikkat edilmesi gerekenler:
- CLI, yerel sanal makineleri yönetmek içindir; CLI ile diğer cihazların uzaktan yönetimi desteklenmez.
- Arka uç her zaman HTTP 200 döndürür; komutun başarılı olup olmadığı yanıt gövdesindeki
codealanına göre belirlenir ve CLI bunu çıkış koduna dönüştürür. - Tehlikeli işlemler (sanal makine silme, ağ silme, imaj silme, depolama alanı silme) etkileşimli modda onay ister; etkileşimsiz modda açıkça
--yesgeçirilmelidir.
Komut Özet Tablosu
Aşağıda tüm vms komutlarının hızlı başvuru özeti yer alır:
| Üst komut | Alt komut | İşlev açıklaması | Onay gerekli | Yüksek risk |
|---|---|---|---|---|
| vms | --version | Sürüm bilgisini gösterir | Hayır | Hayır |
| vms vm | list | Tüm sanal makineleri listeler | Hayır | Hayır |
| vms vm | get | Belirtilen sanal makinenin ayrıntılarını görüntüler | Hayır | Hayır |
| vms vm | list-resource | Sanal makine oluşturmak için kullanılabilir kaynakları listeler | Hayır | Hayır |
| vms vm | logs | Sanal makinenin işlem günlüklerini görüntüler | Hayır | Hayır |
| vms vm | poweron | Sanal makineyi başlatır | Hayır | Hayır |
| vms vm | poweroff | Sanal makineyi kapatır (normal kapatma) | Evet | Hayır |
| vms vm | force-poweroff | Sanal makineyi zorla kapatır | Evet | ✅ |
| vms vm | reboot | Sanal makineyi yeniden başlatır | Hayır | Hayır |
| vms vm | pause | Sanal makineyi duraklatır | Hayır | Hayır |
| vms vm | resume | Duraklatılmış sanal makineyi sürdürür | Hayır | Hayır |
| vms vm | autorun | Otomatik başlatmayı ayarlar | Hayır | Hayır |
| vms vm | clone | Sanal makineyi klonlar | Hayır | Hayır |
| vms vm | export | Sanal makineyi OVA dosyası olarak dışa aktarır | Hayır | Hayır |
| vms vm | delete | Sanal makineyi siler | Evet | ✅ |
| vms vm disk | list | Sanal makinenin sanal sabit disklerini görüntüler | Hayır | Hayır |
| vms vm snapshot | list | Sanal makinenin anlık görüntülerini listeler | Hayır | Hayır |
| vms vm snapshot | create | Anlık görüntü oluşturur | Hayır | Hayır |
| vms vm snapshot | edit | Anlık görüntü açıklamasını ve kilit durumunu düzenler | Hayır | Hayır |
| vms vm snapshot | config | Anlık görüntüde kayıtlı sanal makine yapılandırmasını görüntüler | Hayır | Hayır |
| vms vm snapshot | consistency | Anlık görüntü tutarlılığını önizler | Hayır | Hayır |
| vms vm | link | VNC konsol bağlantı bilgilerini alır | Hayır | Hayır |
| vms network | list | Sanal ağları listeler | Hayır | Hayır |
| vms network | get | Sanal ağ ayrıntılarını görüntüler | Hayır | Hayır |
| vms network | create | Sanal ağ oluşturur | Hayır | Hayır |
| vms network | update | Sanal ağı günceller | Hayır | Hayır |
| vms network | delete | Sanal ağı siler | Evet | ✅ |
| vms network | list-interfaces | Belirtilen türdeki ağ arayüzlerini listeler | Hayır | Hayır |
| vms network | list-vnics | Ağdaki sanal ağ kartlarını listeler | Hayır | Hayır |
| vms network | ovsinfo | OVS'nin etkin olup olmadığını görüntüler | Hayır | Hayır |
| vms image | list | İmajları listeler | Hayır | Hayır |
| vms image | edit | İmaj bilgilerini düzenler | Hayır | Hayır |
| vms image | delete | İmajı siler | Evet | ✅ |
| vms image | list-vms | Bu imajı kullanan sanal makineleri görüntüler | Hayır | Hayır |
| vms repo | list | Depolama alanlarını listeler | Hayır | Hayır |
| vms repo | get | Depolama alanı ayrıntılarını görüntüler | Hayır | Hayır |
| vms repo | update | Depolama alanı yapılandırmasını günceller | Hayır | Hayır |
| vms repo | delete | Depolama alanını siler | Evet | ✅ |
| vms repo | list-volumes | Kullanılabilir birimleri listeler | Hayır | Hayır |
| vms repo | list-vms | Depolama alanındaki sanal makineleri listeler | Hayır | Hayır |
| vms repo | check-running | Depolama alanında çalışan sanal makineleri kontrol eder | Hayır | Hayır |
| vms repo | whether-exist-data | Depolama alanında veri olup olmadığını kontrol eder | Hayır | Hayır |
| vms setting | get | Genel ayarları görüntüler | Hayır | Hayır |
| vms collectd | hostinfo | Ana makine izleme bilgilerini görüntüler | Hayır | Hayır |
| vms collectd | vminfo | Sanal makine izleme bilgilerini görüntüler | Hayır | Hayır |
| vms collectd | storageinfo | Depolama izleme bilgilerini görüntüler | Hayır | Hayır |
Komut Referansı
Komutlardaki <id> sanal makine ID'sidir ve sanal makine listesi çıktısındaki GUEST ID'ye karşılık gelir; <network_id>, <image_id>, <repo_id> de aynı şekilde sırasıyla vms network list, vms image list, vms repo list ile alınabilir.
Çıktı örnekleri hakkında:
vmstablo çıktısı, çok uzun alan değerlerini sabit genişlikte keser (üç nokta ile biter ve terminal genişliğinden bağımsızdır); örneğin sanal makine yapılandırmasındakiVDISKS,VNICS,ISO IMAGESile imaj adları. Bu nedenle, bu belgede uzun alan içeren komutlar için birörnek olarak tam--jsonçıktı örneği, diğer komutlar için tablo çıktı örneği verilmiştir. Betik işlemlerinde de birörnek olarak--jsonkullanmanız önerilir.
1. Sanal Makine Sorgulama
vms vm list – Sanal makineleri listele
Bu makinedeki tüm sanal makineleri ve temel durumlarını listeler.
vms vm list [--limit N] [--offset N] [--json]
--limit,--offsetsayfalama parametreleridir- Çıktı sütunları: ad, sanal makine ID, çalışma durumu, CPU çekirdek sayısı, bellek boyutu (birim KB), IP adresi
Çıktı örneği:
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 yaygın değerleri:
| Durum | Açıklama |
|---|---|
| running | Çalışıyor |
| shutdown | Kapatıldı |
| saved | Duraklatıldı (çalışma durumu diske kaydedildi) |
vms vm get – Sanal makine ayrıntılarını görüntüle
Belirtilen sanal makinenin tüm yapılandırmasını ve çalışma durumunu görüntüler.
vms vm get <id> --json
- Çıktı, sanal makinenin tüm yapılandırma ve çalışma durumu alanlarını içerir
- Açıklama yok, IP yok gibi boş değerler boş dize olarak gösterilir
- Sanal makine mevcut değilse komut hata döndürür ve hata bilgisi verir
Çıktı örneği:
{
"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 – Sanal makine oluşturmak için kullanılabilir kaynakları listele
Ana makinenin sunabileceği firmware türleri, imajlar, CPU, bellek, ağ, depolama alanları, doğrudan geçirilebilir cihazlar gibi kaynakları görüntüler; sanal makine oluşturmadan önce değerlendirme için kullanılır.
vms vm list-resource --json
Dönen alanlar: max_cpu_num, max_ram_size, usbs, pci_devices, networks, repos, images, video_cards, firmware, keyboard_layout.
Çıktı örneği:
{
"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 – Sanal makine işlem günlüklerini görüntüle
Belirtilen sanal makineyle ilgili işlem günlüklerini görüntüler (açma/kapama, anlık görüntü, düzenleme, içe/dışa aktarma vb.).
vms vm logs <id> --json [--limit N] [--desc]
--limitdöndürülecek kayıt sayısını belirtir, varsayılan 50--desczamana göre ters sıralar (varsayılan olarak açık)- Her günlük kaydı zaman, düzey, kategori, işlem kullanıcısı ve olay açıklamasını içerir; olay açıklaması tam metindir
- Olay açıklaması (
event), VMs servisi tarafından cihazın sistem diline göre yerelleştirilmiş olarak verilir; bu belgedeki örnekler birörnek olarak İngilizce kullanır
Çıktı örneği:
[
{
"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)"
}
]
2. Sanal Makine Güç Yönetimi
vms vm poweron – Sanal makineyi başlat
vms vm poweron <id>
- Sanal makine kapatılmış durumda olmalıdır, aksi halde durum çakışması hatası döner
- Çıktı:
VM powered on: <id>
vms vm poweroff – Sanal makineyi kapat
Sanal makineye normal kapatma isteği gönderir ve sistemin düzgün şekilde kapanmasını sağlar.
vms vm poweroff <id> [--yes]
- Tehlikeli işlemdir: etkileşimli modda onay istenir, etkileşimsiz modda mutlaka
--yeseklenmelidir - Sanal makine çalışır durumda olmalıdır, aksi halde durum çakışması hatası döner
Etkileşimli modda onay istemi:
This action will powered off VM "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1". Do you want to continue? [y/N]:
- Çıktı:
VM powered off: <id>
vms vm force-poweroff – Sanal makineyi zorla kapat (yüksek risk)
Sanal makineyi zorla kapatır; doğrudan güç kesmeye eşdeğerdir.
vms vm force-poweroff <id> [--yes]
- Yüksek riskli işlemdir: etkileşimli modda onay istenir, etkileşimsiz modda mutlaka
--yeseklenmelidir - Sanal makine içindeki veri kaybına yol açabilir; yalnızca sanal makine yanıt vermediğinde kullanılması önerilir
Etkileşimli modda onay istemi:
This action will force powered off VM "9c7078ab-a1e7-4bc0-819f-6ac83e24cfc1". Do you want to continue? [y/N]:
- Çıktı:
VM force powered off: <id>
vms vm reboot – Sanal makineyi yeniden başlat
vms vm reboot <id>
- Çıktı:
VM rebooted: <id>
vms vm pause – Sanal makineyi duraklat
Sanal makinenin çalışma durumunu dondurur ve mevcut durumu diske kaydeder.
vms vm pause <id>
- Sanal makine çalışır durumda olmalıdır, aksi halde durum çakışması hatası döner
- Duraklatmadan sonra sanal makine durumu
savedolarak gösterilir - Çıktı:
VM paused: <id>
vms vm resume – Sanal makineyi sürdür
Sanal makineyi duraklatılmış durumdan çalışır durumuna döndürür.
vms vm resume <id>
- Sanal makine duraklatılmış durumda olmalıdır, aksi halde durum çakışması hatası döner
- Çıktı:
VM resumed: <id>
vms vm autorun – Otomatik başlatmayı ayarla
Sanal makinenin ana makineyle birlikte otomatik başlatılıp başlatılmayacağını ayarlar.
vms vm autorun <id> <true|false>
- İkinci parametre
trueveyafalseolmalıdır - Komut mevcut yapılandırmayı okur ve yalnızca otomatik başlatma anahtarını değiştirir; diğer yapılandırmalar etkilenmez
- Çıktı:
Auto-start enabled for VM <id>veyaAuto-start disabled for VM <id>
3. Sanal Makine Kopyalama, Dışa Aktarma ve Silme
vms vm clone – Sanal makineyi klonla
Mevcut bir sanal makineyi şablon olarak kullanarak yeni bir sanal makine oluşturur.
vms vm clone --body '{"guest_id":"<source_id>","name":"my-clone"}'
vms vm clone --file clone.json
- İstek gövdesinde
guest_idkaynak sanal makine ID'sidir,name(veyaguest_name) yeni sanal makinenin adıdır - Kaynak sanal makine kapatılmış durumda olmalıdır
--bodyistek gövdesini doğrudan JSON dizesi olarak geçirir,--fileistek gövdesini dosyadan okur
vms vm export – Sanal makineyi dışa aktar
Sanal makineyi OVA dosyası olarak dışa aktarır; yedekleme veya başka sanallaştırma platformlarına taşıma için uygundur.
vms vm export --body '{"guest_id":"<source_id>","target_ova_path":"/Volume1/export/my-vm.ova"}'
vms vm export --file export.json
- İstek gövdesinde
guest_idkaynak sanal makine ID'sidir,target_ova_pathhedef dosya yoludur,ova_modeisteğe bağlı VMware uyumluluk modudur - Kaynak sanal makine kapatılmış durumda olmalıdır
- Dışa aktarma zaman alan bir görevdir; büyük kapasiteli sanal makinelerin dışa aktarımı uzun sürer
vms vm delete – Sanal makineyi sil (yüksek risk)
Sanal makineyi kalıcı olarak siler.
vms vm delete <id> [--yes]
- Yüksek riskli işlemdir: etkileşimli modda onay istenir, etkileşimsiz modda mutlaka
--yeseklenmelidir - Silme işleminden sonra geri alınamaz; sanal makine içindeki verilerin yedeklendiğini önceden doğrulayın
Etkileşimli modda onay istemi:
This action will permanently delete VM "5a0391f2-c545-45eb-8eed-0a104972229b". Do you want to continue? [y/N]:
- Çıktı:
VM deleted: <id>
4. Sanal Sabit Diskler
vms vm disk list – Sanal sabit diskleri görüntüle
Belirtilen sanal makinenin tüm sanal sabit disklerini listeler.
vms vm disk list <id> [--json]
Çıktı örneği:
NAME VDISK ID VDISK SIZE VDISK MODE IDX
- f4ed4eae-1512-4273-963b-79ebd93a0932 1024 1 0
VDISK MODEsanal sabit disk denetleyici türü numarasıdır,1IDE'yi ifade eder- Adlandırılmamış sanal sabit diskler
NAMEsütununda-olarak gösterilir
5. Anlık Görüntü Yönetimi
vms vm snapshot list – Anlık görüntüleri listele
vms vm snapshot list <id> [--json]
Çıktı örneği:
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 STATEanlık görüntü oluşturulduğunda sanal makinenin çalışma durumudurACTUAL CONSISTENCYanlık görüntünün tutarlılık türüdür;filesystemdosya sistemi tutarlılığını,crashçökme tutarlılığını ifade eder
vms vm snapshot create – Anlık görüntü oluştur
Sanal makine için anlık görüntü oluşturur; hızlı geri alma veya mevcut durumu yedekleme için kullanılır.
vms vm snapshot create <id>
vms vm snapshot create <id> --body '{"description":"before-upgrade","locked":false}'
- İstek gövdesi isteğe bağlıdır:
descriptionanlık görüntü açıklamasıdır,lockedkilitli olup olmadığıdır - Anlık görüntü adı sistem tarafından oluşturulma zamanına göre otomatik oluşturulur
- Anlık görüntüler depolama alanı kaplar; uzun süre temizlenmezse depolama alanını doldurabilir, düzenli olarak temizlenmesi önerilir
vms vm snapshot edit – Anlık görüntüyü düzenle
Anlık görüntünün açıklamasını veya kilit durumunu değiştirir.
vms vm snapshot edit <id> <snapshot_name> --body '{"description":"updated description"}'
vms vm snapshot edit <id> <snapshot_name> --body '{"locked":true}'
- Yalnızca istek gövdesinde yer alan alanlar değiştirilir, yer almayan alanlar mevcut değerini korur; yalnızca açıklamayı değiştirmek kilit durumunu değiştirmez, tersi de geçerlidir
Çıktı örneği:
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 – Anlık görüntüdeki sanal makine yapılandırmasını görüntüle
Anlık görüntüde kayıtlı sanal makine yapılandırmasını görüntüler.
vms vm snapshot config <id> <snapshot_name>
<id> sanal makine ID'sidir, <snapshot_name> anlık görüntü adıdır ve vms vm snapshot list <id> ile alınabilir.
Çıktı örneği:
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 – Anlık görüntü tutarlılığını önizle
Anlık görüntü oluşturmadan önce elde edilebilecek tutarlılık türünü önizler; mevcut durumun anlık görüntü oluşturmaya uygun olup olmadığını değerlendirmeye yardımcı olur.
vms vm snapshot consistency <id>
Çıktı örneği:
PROPERTY VALUE
CONSISTENCY TYPE filesystem
REASON vm_shutdown
VM STATE shutdown
Sanal makine kapatılmış durumdayken oluşturulan anlık görüntü dosya sistemi tutarlı olur; çalışır durumdayken genellikle yalnızca çökme tutarlı anlık görüntü elde edilebilir.
6. Uzak Konsol
vms vm link – VNC bağlantı bilgilerini al
Sanal makinenin VNC konsol bağlantı bilgilerini alır; uzak konsolu tarayıcıda açmak için kullanılır.
vms vm link <id> --json
- Sanal makine çalışıyor veya duraklatılmış durumda olmalıdır, aksi halde durum çakışması hatası döner
Çıktı örneği:
{
"url": "VMs/noVNC/vnc.html?autoconnect=true\u0026reconnect=true\u0026path=utils/websockify/?token=09fd98ee-4e2d-4c7a-a95c-8bacab80d322\u0026title=145",
"port": 8181,
"https": false
}
urlNAS yönetim adresine göre konsol yoludur,portkonsol servis portudur,httpsHTTPS üzerinden erişim gerekip gerekmediğini belirtir- JSON çıktısında URL içindeki
&karakteri\u0026olarak kaçışlanır
7. Sanal Ağ Yönetimi
Ağ türleri ikiye ayrılır:
| Tür | Açıklama |
|---|---|
| Özel (private) | Yalnızca bu makinedeki sanal makineler arası iletişim için dahili ağ; fiziksel ağ kartına bağlanmaz |
| Harici (external) | Fiziksel ağ kartına bağlanan ağ; sanal makineler bu ağ üzerinden dış dünyayla iletişim kurabilir |
vms network list – Sanal ağları listele
vms network list [--limit N] [--offset N] [--json]
Çıktı örneği:
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 GUESTSbu ağa bağlı sanal makine sayısıdır,NUM INTERFACESseçilmiş fiziksel ağ kartı sayısıdır
vms network get – Sanal ağ ayrıntılarını görüntüle
vms network get <network_id> --json
Çıktı örneği:
{
"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
}
interfacesbu ağa bağlı ağ kartı bilgileridir ve ana makine ID'sine göre düzenlenir;checkedilgili ağ kartının seçilip seçilmediğini gösterirmetadataağın oluşturulma ve güncellenme zamanını kaydeder
vms network create – Sanal ağ oluştur
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
Özel ağ oluşturma:
- İstek gövdesi
name,type(private),host_nameveyahost_idiçermelidir; ağın hangi ana makinede oluşturulacağını belirtir - Oluşturmadan önce
vms network list-interfaces privateile kullanılabilir ana makineleri görüntüleyebilirsiniz
Harici ağ oluşturma:
- İstek gövdesi
name,type(external),vlan_idiçermeli ve en az bir fiziksel ağ kartı belirtmelidir - Ağ kartı
interface_name(örn.LAN 1) veyainterface_idile belirtilebilir; ağ kartı adı ana makineler arasında benzersiz değilsehost_nameile birlikte kullanılmalıdır - Oluşturmadan önce
vms network list-interfaces externalile kullanılabilir ağ kartlarını görüntüleyebilirsiniz
Çıktı, oluşturulmuş ağ bilgisidir ve vms network get yapısıyla aynıdır:
{
"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
}
Ağ kartı belirtilmediğinde komut bir uyarı verir:
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 – Sanal ağı güncelle
Yalnızca değiştirilmesi gereken alanları gönderin; gönderilmeyen alanlar mevcut değerini korur.
vms network update --body '{"network_id":"<network_id>","name":"renamed"}'
vms network update --body '{"network_id":"<network_id>","vlan_id":200}'
- İstek gövdesi
network_idiçermelidir - Komut önce mevcut ağ yapılandırmasını okur ve gönderilen alanları birleştirir; ağ adı ve seçilmiş ağ kartları temizlenmez
- Çıktı, güncellenmiş ağ bilgisidir
vms network delete – Sanal ağı sil (yüksek risk)
vms network delete <network_id> [--yes]
- Yüksek riskli işlemdir: etkileşimli modda onay istenir, etkileşimsiz modda mutlaka
--yeseklenmelidir - Ağı silmek, bu ağa bağlı tüm sanal makinelerin bağlantısını keser
- Önce
vms network list-vnics <network_id>ile bağlı sanal makineleri doğrulamanız önerilir
Etkileşimli modda onay istemi:
This action will delete network "b364a1ec-f60c-4971-9ea2-f7a002f09fa3". Do you want to continue? [y/N]:
- Çıktı:
Network deleted: <network_id>
vms network list-interfaces – Ağ arayüzlerini listele
Belirtilen türdeki ağ arayüzlerini listeler.
vms network list-interfaces external [--limit N] [--offset N]
vms network list-interfaces private [--limit N] [--offset N]
externalana makinede kullanılabilir fiziksel ağ kartlarını döndürürprivateözel ağ oluşturmak için kullanılabilir ana makine bilgilerini döndürür
Çıktı örneği (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
Çıktı örneği (private):
INTERFACE NAME INTERFACE ID HOST NAME STATUS IP SPEED MBS
- - A-eae4 - - 0
vms network list-vnics – Ağdaki sanal ağ kartlarını listele
vms network list-vnics <network_id> [--limit N] [--offset N] [--json]
Çıktı örneği:
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 durumunu görüntüle
Open vSwitch sanal anahtarının etkin olup olmadığını doğrular.
vms network ovsinfo [--json]
Çıktı örneği:
PROPERTY VALUE
RESULT true
VALUE değerinin true olması OVS'nin etkin olduğunu gösterir.
8. İmaj Yönetimi
vms image list – İmajları listele
Sanal makine oluşturmak için kullanılabilir sistem imaj dosyalarını listeler.
vms image list --json
image_nameimaj adıdır,file_nameilgili dosya adıdırtypeimaj biçimidir, örneğiniso,qcow2statusimaj durumudur,availablekullanılabilir anlamına gelirreposimajın bulunduğu depolama alanlarıdırprogressimaj işleme görevinin ilerlemesidir,0devam eden görev olmadığını gösterir
Çıktı örneği:
{
"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 – İmajı düzenle
İmaj adını değiştirir veya imajın bulunduğu depolama alanını ayarlar.
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"}'
- İstek gövdesi
image_idvereposiçermelidir;reposimajın tam hedef depolama alanı listesidir ve boş olamaz image_name,file_name,type,file_sizeisteğe bağlı alanlardır; sağlanmadığında mevcut değerler kullanılırreposboş olması imajın tüm depolama alanlarından çıkarılmasına yol açar; komut yürütmeden önce bu isteği reddeder- Çıktı:
Image updated
vms image delete – İmajı sil (yüksek risk)
vms image delete --image-id <image_id> [--yes]
--image-idzorunludur- Yüksek riskli işlemdir: etkileşimli modda onay istenir, etkileşimsiz modda mutlaka
--yeseklenmelidir - İmajı silmek oluşturulmuş sanal makineleri etkilemez, ancak bu imaja dayalı sonraki sanal makine oluşturma işlemlerini etkiler
- Önce
vms image list-vms --image-id <image_id>ile kullanım durumunu doğrulamanız önerilir
Etkileşimli modda onay istemi:
This action will permanently delete image "efd6da18-9475-44cf-8fb0-e2513421e68a". Do you want to continue? [y/N]:
- Çıktı:
Image deleted: <image_id>
vms image list-vms – Bu imajı kullanan sanal makineleri görüntüle
vms image list-vms --image-id <image_id> [--json]
Çıktı örneği:
GUEST NAME
1454486
İmajı silmeden önce bu komutu çalıştırarak etki alanını doğrulayabilirsiniz; imajı kullanan sanal makine yoksa çıktı boştur.
9. Depolama Alanı Yönetimi
vms repo list – Depolama alanlarını listele
vms repo list [--json]
Çıktı örneği:
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 – Depolama alanı ayrıntılarını görüntüle
vms repo get <repo_id> [--json]
Çıktı örneği:
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 VOLUMEdepolama alanının bulunduğu birimdirSOFT LIMIT,HARD LIMITkapasite uyarı eşikleridir (yüzde)ENABLE LOWER NOTIFYyetersiz kapasite hatırlatmasının etkin olup olmadığıdır
vms repo update – Depolama alanını güncelle
Yalnızca değiştirilmesi gereken alanları gönderin; gönderilmeyen alanlar mevcut değerini korur.
vms repo update --body '{"repo_id":"<repo_id>","name":"new-name"}'
vms repo update --body '{"repoId":"<repo_id>","enable_lower_notify":true}'
- Depolama alanı ID'si
repo_idveyarepoIdile geçirilebilir - Komut önce mevcut yapılandırmayı okur ve gönderilen alanları birleştirir; diğer ayarlar kaybolmaz
- Çıktı, güncellenmiş depolama alanı bilgisidir
vms repo delete – Depolama alanını sil (yüksek risk)
vms repo delete <repo_id> <true|false> [--yes]
- İkinci parametre
need_save_dataşeklindedir:truediskteki veri dosyalarının korunacağını,falseverilerle birlikte silineceğini belirtir - Yüksek riskli işlemdir: etkileşimli modda onay istenir, etkileşimsiz modda mutlaka
--yeseklenmelidir - Depolama alanı silme, içindeki sanal makineleri ve imajları da kaldırır; önce
vms repo check-runningvevms repo whether-exist-dataçalıştırarak etki alanını doğrulamanız önerilir
Etkileşimli modda onay istemi:
This action will delete repository "735ef7f7-5d8d-4102-9377-8a7b8c33cda6" (save data: true). Do you want to continue? [y/N]:
- Çıktı:
Repository deleted: <repo_id>
vms repo list-volumes – Kullanılabilir birimleri listele
Depolama alanı oluşturmak için kullanılabilir birimleri listeler.
vms repo list-volumes [--json]
Çıktı örneği:
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 – Depolama alanındaki sanal makineleri listele
vms repo list-vms --body '{"repo_id":"<repo_id>"}'
- Depolama alanı ID'si
repo_idveyarepoIdile geçirilebilir - Komut önce depolama alanı nesnesini alır, ardından sanal makinelerini sorgular; sonuç daha güvenilirdir
vms repo check-running – Depolama alanında çalışan sanal makineleri kontrol et
vms repo check-running <repo_id> [--json]
Depolama alanını silmeden önce çalıştırılır; çalışan sanal makine olmadığını doğrular. Çalışan sanal makine yoksa çıktı boştur.
vms repo whether-exist-data – Depolama alanında veri olup olmadığını kontrol et
vms repo whether-exist-data --body '{"repo_id":"<repo_id>"}'
Depolama alanını silmeden önce çalıştırılır; depolama alanında hâlâ veri olup olmadığını doğrular. Web arayüzünde depolama alanı silmeden önce yapılan ön kontrolle aynıdır.
10. Genel Ayarlar
vms setting get – Genel ayarları görüntüle
VMs uygulamasının genel yapılandırmasını görüntüler.
vms setting get [--json]
Çıktı örneği:
PROPERTY VALUE
HOST SHUTDOWN BEHAVIOR 1
KB LAYOUT en-us
SHOW VIRTIO BLK VDISK false
HOST SHUTDOWN BEHAVIORana makine kapanırken sanal makinelere uygulanacak işlem yöntemidirKB LAYOUTsanal makinenin klavye düzenidir
11. İzleme Bilgisi Sorgulama
vms collectd hostinfo – Ana makine izleme bilgilerini görüntüle
vms collectd hostinfo [--limit N] [--offset N] [--json]
Çıktı örneği:
NAME ID STATUS TYPE CPU USAGE RAM USAGE DESC
A-eae4 - running healthy 2.53 15.66 Info
vms collectd vminfo – Sanal makine izleme bilgilerini görüntüle
vms collectd vminfo [--limit N] [--offset N] [--json]
Çıktı örneği:
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 – Depolama izleme bilgilerini görüntüle
vms collectd storageinfo [--limit N] [--offset N] [--json]
Çıktı örneği:
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
Etkileşimli Mod ve Etkileşimsiz Mod
CLI, geçerli ortamın bir terminal olup olmadığını belirler ve farklı davranışlar uygular:
Etkileşimli Mod (Terminal Ortamı)
- Tehlikeli işlemler onay istemi gösterir, varsayılan seçenek Hayır'dır
- Devam etmek için
yveyaY, iptal etmek içinnveya doğrudan Enter girin - İşlem iptal edildiğinde
Operation cancelledçıktısı verilir ve çıkış kodu 99 olur
Etkileşimsiz Mod (Betik/Otomasyon)
- Tehlikeli işlemler onayı atlamak için mutlaka
--yeskullanmalıdır, aksi halde komut doğrudan hata verir ve çıkış kodu 1 döner - Terminal ortamı yoksa giriş beklemez; betikler ve zamanlanmış görevler için uygundur
- Başarı, hata ve durum çakışmasını ayırt etmek için betiklerde çıkış kodunu açıkça ele almanız önerilir
JSON Çıktı Biçimi
Sorgulama komutları --json parametresini destekler ve programatik ayrıştırmayı kolaylaştırmak için standartlaştırılmış JSON verisi verir.
Biçim kuralları:
- Alan adları snake_case kullanır
- Boolean değerler true/false şeklindedir
- Zaman, ISO 8601 biçiminde nanosaniye hassasiyeti ve UTC+8 ofsetiyle kullanılır (örn. 2026-09-02T11:43:51.176535374+08:00)
- JSON çıktısı stdout'a, hata bilgileri stderr'e yazılır
- Tablo çıktısında kesilen uzun alanlar JSON çıktısında tam değer olarak yer alır
Örnek:
vms setting get --json
{
"host_shutdown_behavior": 1,
"kb_layout": "en-us",
"show_virtio_blk_vdisk": false
}
Farklı komutların JSON yapıları biraz farklılık gösterir: vms vm list, vms vm snapshot list, vms vm logs doğrudan dizi verir; diğer liste komutları totalCount ve veri alanları içeren bir nesne verir; veri alanı adı kaynağa göre değişir (örn. items, hosts, vms, storage). Örneğin 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"
}
}
}
Bazı komutların JSON çıktısı basit bir değerdir; örneğin vms network ovsinfo --json true verir, vms vm pause --json null verir.
Çıkış Kodu Açıklaması
| Çıkış kodu | Anlamı | Tipik durum |
|---|---|---|
| 0 | Başarılı | Komut normal şekilde tamamlandı |
| 1 | Parametre hatası | Zorunlu parametre eksik, parametre biçimi hatalı, --yes eklenmemiş |
| 3 | Kaynak mevcut değil | Komutun ön doğrulaması geçilemedi, örneğin belirtilen imaj mevcut değil |
| 4 | Durum çakışması | Sanal makinenin mevcut durumu bu işleme izin vermiyor (örn. kapatılmış sanal makinede kapatma işlemi) |
| 6 | Bağlantı hatası | VMs servisine bağlanılamıyor veya socket yolu doğru değil |
| 7 | Zaman aşımı | İstek zaman aşımına uğradı, --timeout ile ayarlanabilir |
| 9 | Yürütme hatası | Arka uç hata döndürdü (hata mesajı code_num ve hata açıklaması içerir) |
| 99 | Kullanıcı iptali | Etkileşimli onayda Hayır seçildi veya doğrudan Enter basıldı |
Örnek:
# 退出码 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
Kullanım Senaryosu Örnekleri
Günlük Operasyon ve Bakım
# 查看所有虚拟机状态
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>
Betikle Toplu İşlemler
# 批量启动所有已关机的虚拟机
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'
Yedekleme ve Denetim
# 关机后为虚拟机创建快照
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"}'
Silmeden Önce Kontrol
# 删除存储空间前,先确认是否有虚拟机正在运行、是否存在数据
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 Aracı Çağrısı
# AI 工具可通过命令行调用 vms 命令
# 例如:获取虚拟机与宿主机状态供 AI 分析
vms vm list --json
vms collectd hostinfo --json
# AI 可解析 JSON 输出并作出决策
vms vm list-resource --json
Dahili Geliştirme ve Sistem Entegrasyonu
# 开发人员可通过 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 @-
Sık Sorulan Sorular
S: CLI için ek kurulum gerekir mi?
Gerekmez. CLI, VMs uygulamasıyla birlikte kurulur; uygulama etkinleştirildikten sonra doğrudan vms komutunu çalıştırarak kullanabilirsiniz.
S: CLI mutlaka SSH üzerinden mi kullanılmalıdır?
Hayır. CLI herhangi bir komut satırı terminalinden çağrılabilir; yerel terminal, uzak SSH, betik, AI aracı vb. dahil.
S: CLI diğer cihazlardaki sanal makineleri yönetebilir mi?
Hayır. CLI, yerel unix socket üzerinden VMs servisiyle iletişim kurar ve yalnızca yerel sanal makineleri yönetmek içindir.
S: Neden bazı komutlar onay isterken bazıları istemiyor?
Sanal makine silme, ağ silme, imaj silme, depolama alanı silme ve kapatma (poweroff, force-poweroff) gibi işlemler veriyi veya servisleri etkilediğinden varsayılan olarak onay gerektirir; başlatma, yeniden başlatma, duraklatma, sürdürme ve sorgulama komutlarında böyle bir kısıtlama yoktur.
S: Etkileşimsiz modda tehlikeli işlemler nasıl onaylanır?
Tüm tehlikeli işlemlere --yes parametresi eklenmelidir, aksi halde komut hata vererek çıkar (çıkış kodu 1).
S: Betikte komutun başarıyla yürütülüp yürütülmediği nasıl anlaşılır?
Çıkış koduyla belirlenir: 0 başarılı, 0 dışındaki değerler başarısız anlamına gelir. Ayrıca --json çıktı içeriği ayrıştırılabilir.
S: --json çıktısındaki liste neden bir nesnedir?
Bazı komutların JSON çıktısı ID'ye göre nesne olarak düzenlenir ve totalCount alanı eklenir; ID'ye göre doğrudan kullanımı kolaylaştırır.
Daha Fazla Yardım
Her komut, ayrıntılı kullanımı görüntülemek için --help destekler:
vms --help
vms vm --help
vms vm poweroff --help
vms network create --help