{"id":880685,"date":"2026-09-21T06:10:56","date_gmt":"2026-09-21T06:10:56","guid":{"rendered":"https:\/\/www.ninjaone.com\/?p=880685"},"modified":"2026-09-21T06:12:34","modified_gmt":"2026-09-21T06:12:34","slug":"automatizzare-le-attivita-con-gli-script-bash","status":"publish","type":"post","link":"https:\/\/www.ninjaone.com\/it\/blog\/automatizzare-le-attivita-con-gli-script-bash\/","title":{"rendered":"Come automatizzare le attivit\u00e0 con gli script Bash"},"content":{"rendered":"<div class=\"in-context-cta\"><h2>Punti chiave<\/h2>\n<ul>\n<li>Esecuzione rapida e fallimentare della shell: rende pi\u00f9 rigorosa l&#8217;esecuzione utilizzando l&#8217;opzione -Eeuo pipefail, in modo che gli script terminino immediatamente in caso di errori, variabili mancanti o passaggi della pipeline non riusciti, e utilizzare trap su EXIT per la pulizia automatica.<\/li>\n<li>Automazione idempotente: previene la deriva della configurazione e l&#8217;esecuzione di operazioni duplicate utilizzando controlli di stato condizionali (if), il blocco dei file (flock) e le modalit\u00e0 obbligatorie &#8211;dry-run.<\/li>\n<li>Sicurezza delle credenziali: non inserire mai secret in modo statico nei file .sh; inseriscili in modo dinamico tramite variabili d&#8217;ambiente, keychain del sistema operativo (secret-tool, security) o token vault a breve durata.<\/li>\n<li>Compatibilit\u00e0 multipiattaforma: standardizza i percorsi relativi utilizzando SCRIPT_DIR con risoluzione dei collegamenti simbolici, tieni conto delle differenze tra le utility BSD e GNU e correggere i caratteri di fine riga CRLF su Windows WSL.<\/li>\n<li>Test automatizzati e preventivi: previeni gli errori relativi ai percorsi contenenti spazi utilizzando virgolette strette per le variabili (ad es., &#8220;$VAR&#8221;) e verifica la validit\u00e0 del codice tramite il linting di ShellCheck e i controlli sui pull request nell&#8217;ambito della CI.<\/li>\n<li>Esecuzione non interattiva di RMM: progetta script in background senza richieste interattive (ad es., read -p), passa flag espliciti di esecuzione silenziosa (-y) e presupponi contesti di esecuzione come root\/SYSTEM.<\/li>\n<\/ul>\n<\/div>\n<p>Puoi scoprire su <strong>come automatizzare le attivit\u00e0 con\u00a0<\/strong><strong>gli <\/strong><a href=\"https:\/\/www.ninjaone.com\/blog\/what-is-bash-scripting\/\"><strong>script Bash<\/strong><\/a> scrivendo script di shell ripetibili per il provisioning, i backup, la rotazione dei log e i controlli di sistema, invece di eseguire i comandi manualmente. Questa guida illustra le best practice, i modelli e le misure di sicurezza che garantiscono l&#8217;esecuzione sicura dell&#8217;automazione su larga scala, oltre a spiegare come applicarle su <a href=\"https:\/\/www.google.com\/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=&amp;cad=rja&amp;uact=8&amp;ved=2ahUKEwj39rngsb2WAxVNm-EIHbzqOWUQFnoECCIQAQ&amp;url=https%3A%2F%2Fwww.ninjaone.com%2Fendpoint-management%2Flinux-management%2F&amp;usg=AOvVaw1qT7VGtSS2jQNXpO1Lefnu&amp;opi=89978449\">Linux<\/a>, <a href=\"https:\/\/www.google.com\/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=&amp;cad=rja&amp;uact=8&amp;ved=2ahUKEwiE57Hnsb2WAxWLjeEIHdWQHAAQFnoECBUQAQ&amp;url=https%3A%2F%2Fwww.ninjaone.com%2Fendpoint-management%2Fmac-management%2F&amp;usg=AOvVaw2t-IYFReBrwf3wMhPnRjsn&amp;opi=89978449\">macOS<\/a> e <a href=\"https:\/\/www.google.com\/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=&amp;cad=rja&amp;uact=8&amp;ved=2ahUKEwjM6abtsb2WAxVhkeEIHXCGCrgQFnoECB4QAQ&amp;url=https%3A%2F%2Fwww.ninjaone.com%2Fendpoint-management%2Fwindows-management%2Fwindows-10%2F&amp;usg=AOvVaw1IWc0NMAwfvVOWQA_xSy-u&amp;opi=89978449\">Windows<\/a>.<\/p>\n<p>Questa guida spiega come automatizzare le attivit\u00e0 IT tramite script Bash, illustrando le principali best practice quali la registrazione degli eventi, la gestione degli errori e il controllo delle versioni. Mostra inoltre come applicare i modelli di idempotenza e una gestione sicura delle credenziali per garantire la sicurezza dell&#8217;automazione su larga scala, oltre a tecniche di test e consigli multipiattaforma per l&#8217;esecuzione di Bash su Linux, macOS e Windows tramite WSL. La guida \u00e8 rivolta agli MSP e ai team IT interni impegnati nella creazione di flussi di lavoro automatizzati affidabili e verificabili<\/p>\n<h2>Che cos&#8217;\u00e8 la programmazione con gli script Bash?<\/h2>\n<p>La programmazione con script Bash consiste nella scrittura di script di shell per la Bourne Again SHell (BASH) al fine di automatizzare le attivit\u00e0 di routine. Puoi scrivere comandi, strutture di controllo e funzionalit\u00e0 in file .sh in testo semplice che vengono eseguiti dall&#8217;interprete bash. Per molti team, l&#8217;automazione tramite script Bash \u00e8 alla base dell&#8217;amministrazione di Linux e della gestione quotidiana degli endpoint.<\/p>\n<p>Puoi automatizzare tramite script le operazioni di provisioning degli utenti, i backup, la rotazione dei log, l&#8217;inventario di sistema e il riavvio dei servizi, invece di digitare i comandi manualmente. In questo modo ridurrai gli errori di battitura e grantirai che ogni esecuzione segua la stessa logica. Quando archivi gli script nel sistema di controllo delle versioni, otterrai anche una traccia di controllo e una risoluzione pi\u00f9 rapida dei problemi.<\/p>\n<p>Che tu sia un MSP che gestisce numerosi clienti o un responsabile IT interno incaricato di un parco macchine eterogeneo, l&#8217;automazione tramite Bash ti fa risparmiare tempo e riduce i rischi operativi. Per informazioni sulla sintassi e sulle funzionalit\u00e0 di Bash, consulta il manuale \u00a0<a href=\"https:\/\/www.gnu.org\/software\/bash\/.\" target=\"_blank\" rel=\"noopener\">GNU Bash<\/a>.<\/p>\n<h2>Best practice per lo scripting Bash<\/h2>\n<p>L&#8217;adozione dell&#8217;automazione tramite Bash \u00e8 solo il primo passo verso la creazione di flussi di lavoro operativi ripetibili. Per garantire l&#8217;affidabilit\u00e0 degli script su larga scala, sono necessarie misure di controllo che rendano i risultati prevedibili e verificabili. Queste best practice per la scrittura di script in Bash costituiscono una base solida.<\/p>\n<h3>Incorpora la registrazione degli eventi e la gestione degli errori negli script<\/h3>\n<p>La registrazione e la gestione degli errori dovrebbero essere una prassi standard in ogni script. Senza di essi, i malfunzionamenti passano inosservati e perdi il contesto necessario per risolvere rapidamente i problemi.<\/p>\n<p>Crea una semplice funzionalit\u00e0 di registrazione che acquisisca i timestamp, i nomi degli script e i codici di uscita, per poi invia le voci a syslog o a una piattaforma di registrazione centralizzata. Aggiungi un meccanismo di intercettazione degli errori per rilevare i malfunzionamenti, registrarne la causa e inviare un avviso a un canale monitorato dal tuo team.<\/p>\n<p>Rendi l&#8217;esecuzione pi\u00f9 rigorosa impostando -Eeuo pipefail, in modo che le uscite diverse da zero, le variabili non definite e gli errori in qualsiasi punto della pipeline causino l&#8217;interruzione immediata dello script. L&#8217;uso di || true \u00e8 accettabile solo quando vuoi ignorare deliberatamente un errore; registra tali casi in modo che i revisori ne comprendano l&#8217;intento. Accompagna le operazioni rischiose con messaggi chiari prima e dopo, in modo da rendere pi\u00f9 comprensibili i runbook e le analisi post-evento.<\/p>\n<p><strong>Assicurati sempre di ripulire dopo eventuali errori con\u00a0<\/strong><strong>trap<\/strong><strong>:<\/strong>\u00a0quando gli script falliscono rapidamente, i file di blocco o le directory temporanee rimasti possono bloccare le esecuzioni successive. Utilizza una trap EXIT per garantire la pulizia indipendentemente dal modo in cui lo script termina:<\/p>\n<p># Create temp directory and ensure it wipes on exit<\/p>\n<p>TMP_DIR=&#8221;$(mktemp -d)&#8221;<\/p>\n<p>cleanup() {<\/p>\n<p>rm -rf &#8220;$TMP_DIR&#8221;<\/p>\n<p># Release any held lockfiles here<\/p>\n<p>}<\/p>\n<p>trap cleanup EXIT<\/p>\n<h3>Definisci i flussi di lavoro relativi al controllo delle versioni e alla revisione tra pari<\/h3>\n<p>Il controllo delle versioni non \u00e8 facoltativo quando estendi l&#8217;automazione tramite script Bash. Git offre cronologia, possibilit\u00e0 di ripristino e tranciabilit\u00e0, e consente la revisione tra pari per individuare eventuali problemi prima della messa in produzione.<\/p>\n<p>Di seguito sono riportati alcuni consigli sul controllo delle versioni e sulla revisione tra pari:<\/p>\n<ul>\n<li>Conserva gli script in un repository dedicato denominato &#8220;scripts\/&#8221;, con sottocartelle ben definite per dominio, come &#8220;users&#8221;, &#8220;backup&#8221; o &#8220;conformit\u00e0&#8221;.<\/li>\n<li>Richiedi pull request per ogni modifica e assegna almeno un revisore.<\/li>\n<li>Utilizza strategie di ramificazione quali rami di funzionalit\u00e0 di breve durata e un ramo principale protetto.<\/li>\n<li>Imporre l&#8217;inserimento nei messaggi di commit di riferimenti ai ticket o alle descrizioni delle modifiche, a fini di tracciabilit\u00e0.<\/li>\n<\/ul>\n<p>Standardizza i nuovi modelli di script con intestazioni relative a responsabile, scopo, dipendenze e codici di uscita previsti. Collega il repository al sistema di integrazione continua (CI) per eseguire il linting, i test unitari o le simulazioni su ogni pull request, in modo da individuare tempestivamente eventuali regressioni.<\/p>\n<h2>Integra idempotenza e sicurezza<\/h2>\n<p>Per considerare Bash come un framework di automazione, integra l\u2019idempotenza e la gestione rigorosa delle informazioni riservate. Questi due pilastri impediscono il ripetersi degli effetti collaterali e l&#8217;esposizione delle credenziali durante le esecuzioni di routine.<\/p>\n<h3>Applicare i modelli di idempotenza per un&#8217;automazione sicura<\/h3>\n<p>Idempotenza significa che l&#8217;esecuzione dello stesso script pi\u00f9 volte porta allo stesso stato. Ci si arriva grazie a clausole di sicurezza, controlli da parte dello stato e simulazioni che verificano la correttezza delle azioni prima che queste abbiano luogo.<\/p>\n<p>Verifica lo stato attuale prima di modificarlo. Ad esempio, verifica che un utente esista prima di creare l&#8217;account, oppure confermare che un pacchetto sia gi\u00e0 installato prima di tentare l&#8217;installazione. Utilizza i blocchi sui file o i controlli dell&#8217;ID processo (PID) per impedire l&#8217;esecuzione simultanea di operazioni che potrebbero entrare in conflitto tra loro.<\/p>\n<p>Di seguito sono riportati alcuni modelli comuni di idempotenza:<\/p>\n<ul>\n<li>Verifica lo stato attuale tramite test condizionali, ad esempio:<\/li>\n<\/ul>\n<table>\n<tbody>\n<tr>\n<td>if id -u &#8220;$username&#8221; &gt;\/dev\/null 2&gt;&amp;1; then<\/p>\n<p>SCRIPT_DIR=&#8221;$(cd &#8212; &#8220;$(dirname &#8220;$0&#8243;)&#8221; &gt;\/dev\/null 2&gt;&amp;1 &amp;&amp; pwd)&#8221;<\/p>\n<p>&#8211;dry-run<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>or<\/p>\n<table>\n<tbody>\n<tr>\n<td>if [[ -d \/opt\/app ]]; then<\/p>\n<p># directory exists<\/p>\n<p>fi<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<ul>\n<li>Aggiungi un&#8217;opzione &#8211;dry-run che visualizzi i comandi invece di eseguirli, in modo che i revisori possano verificare la logica.<\/li>\n<li>Utilizza i blocchi sui file tramite flock o lockfiles per impedire che esecuzioni parallele agiscano sullo stesso oggetto.<\/li>\n<\/ul>\n<p>Standardizzando questi modelli nell&#8217;ambito dell&#8217;automazione con Bash, eviterai modifiche duplicate, aggiornamenti parziali e deviazioni nella configurazione.<\/p>\n<h3>Gestire le credenziali in modo sicuro negli script Bash<\/h3>\n<p><a href=\"https:\/\/www.ninjaone.com\/it\/blog\/cos-e-la-gestione-dei-segreti\/\">Inserisci le credenziali in modo statico<\/a>\u00a0\u00e8 un rischio che non puoi correre. Utilizza archivi gestiti e l&#8217;inserimento effimero, in modo che le credenziali non vengano mai conservate in chiaro n\u00e9 nei log.<\/p>\n<p>Ti consigliamo di prendere in considerazione le seguenti tecniche per la gestione delle credenziali:<\/p>\n<ul>\n<li>Utilizza gli strumenti keyring del sistema operativo per recuperare le informazioni riservate durante l&#8217;esecuzione, come secret-tool su Linux o la CLI di sicurezza su macOS.<\/li>\n<li>Leggi i valori delle variabili dell&#8217;ambiente inserite dal tuo sistema CI\/CD o di orchestrazione con ambiti limitati.<\/li>\n<li>Integra un vault come\u00a0<a href=\"https:\/\/developer.hashicorp.com\/vault\" target=\"_blank\" rel=\"noopener\">HashiCorp Vault<\/a>\u00a0utilizzando strumenti CLI o chiamate API con token a breve durata.<\/li>\n<li>Non inserire mai nomi utente, password o token nei file di script, nei valori predefiniti o nei log.<\/li>\n<\/ul>\n<p>Collega l&#8217;accesso a criteri basati sui ruoli e ruota le credenziali secondo un calendario prestabilito. Questo garantisce la soddisfazione dei revisori e limita l&#8217;entit\u00e0 del danno in caso di fuga di un token.<\/p>\n<h3>Implementa i flag per i test e le simulazioni<\/h3>\n<p>Esegui i test in ambiente locale e nella pipeline di integrazione continua (CI) prima che i tuoi script vengano applicati all&#8217;ambiente di produzione. Senza un ciclo di test, anche un errore logico di lieve entit\u00e0 pu\u00f2 interrompere le finestre delle patch o delle modifiche.<\/p>\n<p>Lint con\u00a0<a href=\"https:\/\/www.shellcheck.net\/\" target=\"_blank\" rel=\"noopener\">ShellCheck<\/a> per individuare errori di sintassi e di logica che bash ignora tranquillamente. Puoi eseguirlo localmente o in CI utilizzando il progetto ufficiale disponibile su <a href=\"https:\/\/github.com\/koalaman\/shellcheck\" target=\"_blank\" rel=\"noopener\">GitHub<\/a>.<\/p>\n<p><strong>Nota sull&#8217;espansione delle variabili:<\/strong>\u00a0inserisci sempre le variabili tra virgolette (ad esempio, &#8220;$VAR&#8221; invece di $VAR). Le variabili non racchiuse tra virgolette sono soggette alla suddivisione in parole e al globbing, il che causa il malfunzionamento degli script o comportamenti dannosi ogni volta che i nomi dei percorsi contengono spazi (ad esempio, Program Files o User Profiles).<\/p>\n<p>Aggiungi test di tipo unitario per le funzionalit\u00e0 principali, simulando gli input e verificando gli output o le modifiche al file system.<\/p>\n<p>Aggiungi una modalit\u00e0 &#8211;dry-run che visualizzi le azioni che lo script eseguirebbe, quindi configura il tuo sistema di CI in modo che esegua sia i test di linting che quelli in modalit\u00e0 dry-run su ogni pull request. Per le modifiche che comportano un rischio maggiore, pianifica esecuzioni notturne in un ambiente di test e richiedere la promozione manuale all&#8217;ambiente di produzione per ridurre il rischio di implementazione.<\/p>\n<h2>Suggerimenti multipiattaforma per l&#8217;automazione tramite script Bash<\/h2>\n<p>Bash funziona su Linux, macOS e Windows tramite il sottosistema Windows per Linux (WSL), ma le differenze nei percorsi, nelle shell e negli strumenti possono causare problemi. Prevedi queste variazioni in modo che l&#8217;automazione tramite script Bash funzioni allo stesso modo ovunque la esegui.<\/p>\n<p><strong>Consiglio dell&#8217;esperto:<\/strong>\u00a0se i tuoi script vengono richiamati tramite collegamenti simbolici (come spesso accade nelle configurazioni Linux \/usr\/local\/bin), il comando dirname da solo potrebbe restituire il percorso del collegamento anzich\u00e9 quello effettivo dello script. Risolvi i collegamenti simbolici in modo dinamico con \u201creadlink\u201d o \u201crealpath\u201d:<\/p>\n<p>SCRIPT_DIR=&#8221;$(cd &#8212; &#8220;$(dirname &#8220;$(readlink -f &#8220;$0&#8221; 2&gt;\/dev\/null || echo &#8220;$0&#8243;)&#8221;)&#8221; &gt;\/dev\/null 2&gt;&amp;1 &amp;&amp; pwd)&#8221;<\/p>\n<p>Quando si scrivono script multipiattaforma:<\/p>\n<ul>\n<li>normalizza i percorsi ricavando le directory degli script con:<br \/>\nSCRIPT_DIR=&#8221;$(cd &#8212; &#8220;$(dirname &#8220;$0&#8243;)&#8221; &gt;\/dev\/null 2&gt;&amp;1 &amp;&amp; pwd)&#8221;, quindi fai riferimento ai file relativi a partire da $SCRIPT_DIR.<\/li>\n<li>Rileva il sistema operativo con uname o $OSTYPE, quindi installa o richiama le dipendenze in base al risultato.<\/li>\n<li>Per uniformare il comportamento degli strumenti nelle utilit\u00e0 BSD fornite con macOS, installare GNU coreutils tramite\u00a0<a href=\"https:\/\/brew.sh\/\" target=\"_blank\" rel=\"noopener\">Homebrew<\/a>\u00a0e richiamare gsed, gdate oppure utilizzare gli alias g*.<\/li>\n<\/ul>\n<p>Su Windows WSL, presta attenzione alle terminazioni di riga CRLF e alla conversione dei percorsi tra i file system di Windows e Linux. Su macOS, la shell predefinita potrebbe essere zsh, quindi imposta lo shebang su #!\/usr\/bin\/env bash e assicurati che Bash sia installato.<\/p>\n<h3>Account per l&#8217;esecuzione non interattiva di RMM<\/h3>\n<p>Quando distribuisci script Bash tramite un RMM o un agente endpoint, questi vengono eseguiti in una shell non interattiva senza TTY (terminale).<\/p>\n<ul>\n<li>Non richiedere mai l&#8217;inserimento di dati da parte dell&#8217;utente: Evita comandi come \u201cread -p\u201d o opzioni di conferma interattiva.<\/li>\n<li>Inserisci in modo fisso i flag silenziosi: passa sempre i parametri non interattivi ai gestori di pacchetti e alle utilit\u00e0 (ad esempio, apt-get install -y o curl -sS).<\/li>\n<li>Supponi il contesto root\/SYSTEM: assicurati che il percorso sia impostato esplicitamente in base agli ambienti di sistema, anzich\u00e9 fare affidamento sulle variabili d&#8217;ambiente locali ~\/.bashrc dell&#8217;utente.<\/li>\n<\/ul>\n<h2>Conclusione sul framework Bash<\/h2>\n<p>Combina la registrazione, la gestione degli errori e il controllo delle versioni con l&#8217;idempotenza e la protezione dei segreti per trasformare gli script ad hoc in un framework di automazione affidabile. Aggiungi i test locali e di integrazione, oltre ai controlli multipiattaforma, e la tua automazione Bash garantir\u00e0 risultati coerenti su Linux, macOS e Windows WSL.<\/p>\n<p>Se stai creando una raccolta di script, documenta i proprietari, le dipendenze e le procedure di rollback, quindi applica queste best practice per la scrittura di script Bash a ogni nuova aggiunta.<\/p>\n<h2>Sei pronto ad automatizzare pi\u00f9 rapidamente e a recuperare ore di lavoro di routine?<\/h2>\n<p>Con la piattaforma di gestione degli endpoint NinjaOne, puoi eseguire script Bash su richiesta, secondo una pianificazione prestabilita o in base a condizioni definite dai criteri su tutto il parco dispositivi, grazie alle funzionalit\u00e0 integrate di registrazione e pianificazione. Avvia una\u00a0<a href=\"https:\/\/www.ninjaone.com\/it\/prova-gratuita\/\"><strong>prova gratuita di NinjaOne<\/strong><\/a> per provare l&#8217;automazione Bash sui tuoi endpoint.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Puoi scoprire su come automatizzare le attivit\u00e0 con\u00a0gli script Bash scrivendo script di shell ripetibili per il provisioning, i backup, la rotazione dei log e i controlli di sistema, invece di eseguire i comandi manualmente. Questa guida illustra le best practice, i modelli e le misure di sicurezza che garantiscono l&#8217;esecuzione sicura dell&#8217;automazione su larga [&hellip;]<\/p>\n","protected":false},"author":89,"featured_media":747260,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","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":"no","_lmt_disable":"","footnotes":""},"categories":[4354],"tags":[],"class_list":["post-880685","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-operazioni-it"],"acf":[],"modified_by":"Chiara Cavalletti","_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/posts\/880685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/users\/89"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/comments?post=880685"}],"version-history":[{"count":3,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/posts\/880685\/revisions"}],"predecessor-version":[{"id":880688,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/posts\/880685\/revisions\/880688"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/media\/747260"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/media?parent=880685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/categories?post=880685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/tags?post=880685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}