{"id":353717,"date":"2024-08-20T07:20:37","date_gmt":"2024-08-20T07:20:37","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/raccolta-delle-informazioni-sulle-vm-proxmox-in-linux\/"},"modified":"2024-10-13T19:06:39","modified_gmt":"2024-10-13T19:06:39","slug":"raccolta-delle-informazioni-sulle-vm-proxmox-in-linux","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/it\/script-hub\/raccolta-delle-informazioni-sulle-vm-proxmox-in-linux\/","title":{"rendered":"Guida agli script Linux: come automatizzare la raccolta di informazioni sulle VM Proxmox"},"content":{"rendered":"<p>Nell&#8217;attuale panorama IT, gestione e monitoraggio efficienti degli ambienti virtuali sono fondamentali per gli amministratori di sistema e i <a href=\"https:\/\/www.ninjaone.com\/it\/cos-e-un-msp\" target=\"_blank\" rel=\"noopener\">Managed Service Provider (MSP)<\/a>. Gli ambienti virtuali, come quelli gestiti da Proxmox, richiedono una supervisione regolare per garantire un funzionamento normale e prestazioni ottimali.<\/p>\n<p>L&#8217;automazione della raccolta delle informazioni sullo stato delle <a href=\"https:\/\/www.ninjaone.com\/it\/gestione-endpoint\/monitoraggio-macchine-virtuali\/\" target=\"_blank\" rel=\"noopener\">virtual machine (VM)<\/a> e di quelle di base non solo fa risparmiare tempo, ma riduce anche il rischio di errori umani. In questo articolo analizzeremo uno script bash progettato per recuperare e visualizzare lo stato e i dettagli delle VM guest Proxmox, per evidenziare la sua utilit\u00e0 e il modo in cui pu\u00f2 semplificare le operazioni IT.<\/p>\n<h2>Background<\/h2>\n<p>Proxmox \u00e8 una popolare soluzione open-source per la gestione della virtualizzazione, che combina KVM e la virtualizzazione basata su container in un&#8217;unica piattaforma. Per i professionisti IT e gli MSP, il monitoraggio dello stato delle VM Proxmox e dei container \u00e8 un&#8217;attivit\u00e0 di routine ma vitale. Questo script risponde alla necessit\u00e0 di un metodo automatizzato e coerente per raccogliere e visualizzare le informazioni sulla VM, presentandole in un formato di facile accesso e interpretazione.<\/p>\n<h2>Lo script per visualizzare le informazioni sulle VM Proxmox<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\">#!\/usr\/bin\/env bash\r\n\r\n# Description: This script gets the status and basic info of all Proxmox guests on a host and saves it to a WYSIWYG custom field.\r\n#\r\n# Release Notes: Initial Release\r\n# By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https:\/\/www.ninjaone.com\/terms-of-use.\r\n# Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. \r\n# Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. \r\n# Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. \r\n# Warranty Disclaimer: The script is provided \u201cas is\u201d and \u201cas available\u201d, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. \r\n# Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. \r\n# Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. \r\n# EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).\r\n#\r\n# Below are all the (case sensitive) valid parameters for this script.\r\n# Only the custom field name is required!\r\n# Preset Parameter: \"Custom_Field_Name\"\r\n#   Custom_Field_Name: The name of the WYSIWYG custom field to save the VM info to.\r\n\r\nCustom_Field_Name=$1\r\n\r\nif [[ -n \"${customFieldName}\" ]]; then\r\n    Custom_Field_Name=\"${customFieldName}\"\r\nfi\r\n\r\nif [[ -z \"${Custom_Field_Name}\" || \"${Custom_Field_Name}\" == \"null\" ]]; then\r\n    echo \"The custom field name is required.\"\r\n    echo \" Example: guests\"\r\n    exit 1\r\nfi\r\n\r\n# Check that we have the required tools\r\nif ! command -v pvesh &amp;&gt; \/dev\/null; then\r\n    echo \"The Proxmox VE API tool 'pvesh' is required.\"\r\n    exit 1\r\nfi\r\nif ! command -v python3 &amp;&gt; \/dev\/null; then\r\n    echo \"The python3 is required. Should already be installed.\"\r\n    exit 1\r\nfi\r\n\r\n# Check that we are running as root\r\nif [[ $EUID -ne 0 ]]; then\r\n    echo \"This script must be run as root.\"\r\n    exit 1\r\nfi\r\n\r\nfunction SetCustomField() {\r\n    \/opt\/NinjaRMMAgent\/programdata\/ninjarmm-cli \"$@\"\r\n}\r\n\r\n# Get the status and basic info of all Proxmox VMs on a host\r\nqemu_guests=$(pvesh get \/nodes\/localhost\/qemu --output-format=json)\r\n\r\n# Create a table to store the VM info with the headers: Name, Status, Memory, CPUs, Disk Sizes\r\nvm_table=\"&lt;table&gt;&lt;tr&gt;&lt;th&gt;Status&lt;\/th&gt;&lt;th&gt;ID&lt;\/th&gt;&lt;th&gt;Name&lt;\/th&gt;&lt;th&gt;Memory&lt;\/th&gt;&lt;th&gt;CPUs&lt;\/th&gt;&lt;th&gt;Disk Sizes Combined&lt;\/th&gt;&lt;\/tr&gt;\"\r\n\r\n# Loop through each VM and add the info to the table\r\nqemu_table=$(echo \"$qemu_guests\" | python3 -c '\r\nimport sys, json\r\n\r\n# Function to convert bytes to human readable format\r\ndef human_readable_size(size):\r\n    for unit in [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\"]:\r\n        if size &lt; 1024:\r\n            return f\"{size:.2f} {unit}\"\r\n        size \/= 1024\r\n\r\nqemu_guests = json.load(sys.stdin)\r\nvm_table = \"\"\r\n\r\nfor qemu in qemu_guests:\r\n    qemu_id = qemu[\"vmid\"]\r\n    qemu_name = qemu[\"name\"]\r\n    qemu_status = qemu[\"status\"]\r\n    # Convert the memory from bytes to GB\r\n    qemu_mem = human_readable_size(qemu[\"maxmem\"])\r\n    qemu_cpus = qemu[\"cpus\"]\r\n    # Convert the disk size from bytes to GB\r\n    qemu_disk = human_readable_size(qemu[\"maxdisk\"])\r\n\r\n    # Add HTML blank space if values are empty\r\n    qemu_id = qemu_id if qemu_id else \"&amp;nbsp;\"\r\n    qemu_name = qemu_name if qemu_name else \"&amp;nbsp;\"\r\n    qemu_mem = qemu_mem if qemu_mem else \"&amp;nbsp;\"\r\n    qemu_cpus = qemu_cpus if qemu_cpus else \"&amp;nbsp;\"\r\n    qemu_disk = qemu_disk if qemu_disk else \"&amp;nbsp;\"\r\n\r\n    if \"running\" in qemu_status:\r\n        status_text = \"&lt;tr class='\"'success'\"'&gt;&lt;td&gt;Running&lt;\/td&gt;\"\r\n    elif \"stopped\" in qemu_status:\r\n        status_text = \"&lt;tr class='\"'danger'\"'&gt;&lt;td&gt;Stopped&lt;\/td&gt;\"\r\n    else:\r\n        status_text = \"&lt;tr class='\"'other'\"'&gt;&lt;td&gt;{}&lt;\/td&gt;\".format(qemu_status)\r\n\r\n    vm_table += \"{}&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;\/tr&gt;\".format(\r\n        status_text, qemu_id, qemu_name, qemu_mem, qemu_cpus, qemu_disk\r\n    )\r\n\r\nprint(vm_table)\r\n')\r\nvm_table=\"$vm_table$qemu_table\"\r\n\r\n# Loop through each lxc and add the info to the table\r\nlxc_guests=$(pvesh get \/nodes\/localhost\/lxc --output-format=json)\r\n# Loop through each lxc and add the info to the table\r\nlxc_table=$(echo \"$lxc_guests\" | python3 -c '\r\nimport sys, json\r\n\r\n# Function to convert bytes to human readable format\r\ndef human_readable_size(size):\r\n    for unit in [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\"]:\r\n        if size &lt; 1024:\r\n            return f\"{size:.2f} {unit}\"\r\n        size \/= 1024\r\n\r\nlxc_guests = json.load(sys.stdin)\r\nvm_table = \"\"\r\n\r\nfor lxc in lxc_guests:\r\n    lxc_id = lxc[\"vmid\"]\r\n    lxc_name = lxc[\"name\"]\r\n    lxc_status = lxc[\"status\"]\r\n    # Convert the memory from bytes to GB\r\n    lxc_mem = human_readable_size(lxc[\"maxmem\"])\r\n    lxc_cpus = lxc[\"cpus\"]\r\n    # Convert the disk size from bytes to GB\r\n    lxc_disk = human_readable_size(lxc[\"maxdisk\"])\r\n\r\n    # Add HTML blank space if values are empty\r\n    lxc_id = lxc_id if lxc_id else \"&amp;nbsp;\"\r\n    lxc_name = lxc_name if lxc_name else \"&amp;nbsp;\"\r\n    lxc_mem = lxc_mem if lxc_mem else \"&amp;nbsp;\"\r\n    lxc_cpus = lxc_cpus if lxc_cpus else \"&amp;nbsp;\"\r\n    lxc_disk = lxc_disk if lxc_disk else \"&amp;nbsp;\"\r\n\r\n    if \"running\" in lxc_status:\r\n        status_text = \"&lt;tr class='\"'success'\"'&gt;&lt;td&gt;Running&lt;\/td&gt;\"\r\n    elif \"stopped\" in lxc_status:\r\n        status_text = \"&lt;tr class='\"'danger'\"'&gt;&lt;td&gt;Stopped&lt;\/td&gt;\"\r\n    else:\r\n        status_text = \"&lt;tr class='\"'other'\"'&gt;&lt;td&gt;{}&lt;\/td&gt;\".format(lxc_status)\r\n\r\n    vm_table += \"{}&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;td&gt;{}&lt;\/td&gt;&lt;\/tr&gt;\".format(\r\n        status_text, lxc_id, lxc_name, lxc_mem, lxc_cpus, lxc_disk\r\n    )\r\n\r\nprint(vm_table)\r\n')\r\nvm_table=\"$vm_table$lxc_table\"\r\n\r\n# Close the table\r\nvm_table=\"$vm_table&lt;\/table&gt;\"\r\n\r\n# Highlight the running and stopped VMs\r\nvm_table=$(echo \"$vm_table\" | sed 's\/&lt;tr&gt;&lt;td&gt;running&lt;\\\/td&gt;\/&lt;tr class=\"success\"&gt;&lt;td&gt;Running&lt;\\\/td&gt;\/')\r\nvm_table=$(echo \"$vm_table\" | sed 's\/&lt;tr&gt;&lt;td&gt;stopped&lt;\\\/td&gt;\/&lt;tr class=\"danger\"&gt;&lt;td&gt;Stopped&lt;\\\/td&gt;\/')\r\n\r\n# Save the table to the custom field\r\nif ! SetCustomField set \"$Custom_Field_Name\" \"$vm_table\"; then\r\n    echo \"Failed to save the Proxmox VM info to the custom field: $Custom_Field_Name\"\r\n    exit 1\r\nfi\r\necho \"The Proxmox VM info has been saved to the custom field: $Custom_Field_Name\"<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"blog-cta-new blog-cta-style-1\"><div class=\"cta-left\"><h2><\/h2><p><\/p><\/div><div class=\"cta-right\"><a class=\"button\" href=\"\"><\/a><\/div><\/div>\n<h2>Analisi dettagliata<\/h2>\n<p>Lo script bash fornito recupera lo stato e le informazioni essenziali di tutte le VM guest di Proxmox su un host e salva questi dati in un campo personalizzato. Ci\u00f2 \u00e8 particolarmente utile per gli ambienti con numerose virtual machine, dove i controlli manuali possono richiedere molto tempo e sono soggetti a errori.<\/p>\n<h3>Spiegazione passo per passo<\/h3>\n<h4>1. Inizializzazione dello script e gestione dei parametri:<\/h4>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"2\">Lo script per visualizzare le informazioni sulle VM Proxmox inizia definendo il nome del campo personalizzato, che \u00e8 un parametro obbligatorio. In questo campo personalizzato verranno memorizzate le informazioni sulla virtual machine.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"2\">Se il nome del campo personalizzato non viene fornito o non \u00e8 valido, lo script per visualizzare le informazioni sulle VM Proxmox mostra un messaggio di errore.<\/li>\n<\/ul>\n<h4>2. Verifica della disponibilit\u00e0 degli strumenti:<\/h4>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"2\">Lo script per visualizzare le informazioni sulle VM Proxmox verifica la disponibilit\u00e0 degli strumenti necessari: pvesh (Proxmox VE API tool) e python3. Se questi strumenti non vengono trovati, lo script mostra un messaggio di errore appropriato.<\/li>\n<\/ul>\n<h4>3. Verifica dei privilegi di root:<\/h4>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"2\">Lo script per visualizzare le informazioni sulle VM Proxmox controlla se \u00e8 in esecuzione con i privilegi di root. In caso contrario, mostra un messaggio di errore.<\/li>\n<\/ul>\n<h4>4. Recupero delle informazioni sulla VM Proxmox:<\/h4>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"5\" data-aria-level=\"2\">Utilizzando pvesh, lo script per visualizzare le informazioni sulle VM Proxmox recupera informazioni sulle virtual machine QEMU e sui container LXC dall&#8217;host Proxmox.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"6\" data-aria-level=\"2\">Queste informazioni vengono elaborate con Python per generare una tabella HTML con dettagli quali lo stato, l&#8217;ID, il nome, la memoria, le CPU e le dimensioni combinate delle unit\u00e0.<\/li>\n<\/ul>\n<h4>5. Generazione della tabella HTML:<\/h4>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"7\" data-aria-level=\"2\">Lo script Python incorporato nello script bash formatta i dati JSON recuperati in una tabella HTML. Questa tabella \u00e8 strutturata in modo da evidenziare in modo diverso le virtual machine in esecuzione e quelle interrotte.<\/li>\n<\/ul>\n<h4>6. Salvataggio della tabella in un campo personalizzato:<\/h4>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"8\" data-aria-level=\"2\">La tabella HTML generata viene salvata nel campo personalizzato specificato utilizzando lo strumento NinjaRMM CLI.<\/li>\n<\/ul>\n<h2>Casi d&#8217;uso potenziali<\/h2>\n<p>Immagina un MSP che gestisce pi\u00f9 ambienti Proxmox per diversi clienti. Controllare manualmente lo stato e l&#8217;allocazione delle risorse di ogni virtual machine su diversi host pu\u00f2 essere complicato. Distribuendo questo script, l&#8217;MSP pu\u00f2 automatizzare la raccolta di questi dati e averli a disposizione in un campo personalizzato, accessibile dalla propria interfaccia di gestione. Questo non solo aumenta l&#8217;<a href=\"https:\/\/www.ninjaone.com\/it\/efficienza-it\" target=\"_blank\" rel=\"noopener\">efficienza<\/a>, ma garantisce anche la possibilit\u00e0 di rispondere rapidamente a qualsiasi problema si presenti.<\/p>\n<h2>Confronti<\/h2>\n<p>Altri metodi per raccogliere informazioni sulle virtual machine potrebbero comportare l&#8217;esecuzione manuale di comandi e la compilazione dei risultati, che richiedono molto tempo e sono soggetti a errori. Strumenti come l&#8217;interfaccia web di Proxmox forniscono le informazioni necessarie, ma richiedono una navigazione e un controllo manuali. Questo script, invece, <a href=\"https:\/\/www.ninjaone.com\/it\/blog\/tutto-quello-che-bisogna-sapere-sull-automazione-it\" target=\"_blank\" rel=\"noopener\">automatizza<\/a> l\u2019intero processo per visualizzare le informazioni sulle VM Proxmox, garantendo coerenza e facendo risparmiare tempo prezioso.<\/p>\n<h2>Domande frequenti<\/h2>\n<p><strong>D: Cosa succede se lo script per visualizzare le informazioni sulle VM Proxmox non riesce a trovare pvesh o python3?<\/strong><br \/>\nR: Lo script per visualizzare le informazioni sulle VM Proxmox verifica la presenza di queste dipendenze all&#8217;inizio e mostra un chiaro messaggio di errore se non vengono trovate, guidando l&#8217;utente a installare gli strumenti mancanti.<\/p>\n<p><strong>D: Lo script pu\u00f2 essere eseguito senza i privilegi di root?<\/strong><br \/>\nR: No, lo script per visualizzare le informazioni sulle VM Proxmox deve essere eseguito come root per accedere alle informazioni di sistema necessarie.<\/p>\n<p><strong>D: Cosa succede se il nome del campo personalizzato non viene fornito?<\/strong><br \/>\nR: Lo script per visualizzare le informazioni sulle VM Proxmox richiede il nome del campo personalizzato come parametro. Se non viene fornito, lo script uscir\u00e0 con un messaggio di errore.<\/p>\n<h2>Implicazioni<\/h2>\n<p>L&#8217;automazione della raccolta di informazioni sulle VM Proxmox non solo migliora l&#8217;efficienza operativa, ma aumenta anche la sicurezza informatica. Controlli regolari e automatizzati assicurano che tutte le virtual machine siano registrate e funzionino come previsto, <a href=\"https:\/\/www.ninjaone.com\/it\/it-hub\/gestione-dei-servizi-it\/cos-e-il-tempo-di-inattivita-di-una-rete\" target=\"_blank\" rel=\"noopener\">riducendo il rischio di downtime passati inosservati<\/a> o di errata allocazione delle risorse.<\/p>\n<h2>Raccomandazioni<\/h2>\n<p>Quando utilizzi questo script, assicurati che:<\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\">Lo script per visualizzare le informazioni sulle VM Proxmox venga eseguito regolarmente per mantenere aggiornate le informazioni sulle VM.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\">I permessi siano impostati in modo che lo script venga eseguito come root.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"1\">Le dipendenze (pvesh, python3, NinjaRMM CLI) siano installate e configurate correttamente.<\/li>\n<\/ul>\n<h2>Considerazioni finali<\/h2>\n<p>Questo script per visualizzare le informazioni sulle VM Proxmox \u00e8 uno strumento prezioso per i professionisti IT che gestiscono ambienti Proxmox, in quanto semplifica il processo di raccolta e visualizzazione delle informazioni sulle VM Proxmox. Per coloro che utilizzano <a href=\"https:\/\/www.ninjaone.com\/it\/\" target=\"_blank\" rel=\"noopener\">NinjaOne<\/a>, questo script si integra ulteriormente nel loro flusso di lavoro, rendendo pi\u00f9 facile mantenere una visione chiara e aggiornata della loro infrastruttura virtuale. Automatizzando le attivit\u00e0 di routine, i professionisti IT possono concentrarsi su attivit\u00e0 pi\u00f9 strategiche, migliorando la produttivit\u00e0 complessiva e l&#8217;affidabilit\u00e0 del sistema.<\/p>\n","protected":false},"author":35,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"","_lmt_disable":""},"operating_system":[4211],"use_cases":[4269],"class_list":["post-353717","script_hub","type-script_hub","status-publish","hentry","script_hub_category-linux","use_cases-configurazione-generale"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/script_hub\/353717","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/comments?post=353717"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/media?parent=353717"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/operating_system?post=353717"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/use_cases?post=353717"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}