{"id":79441,"date":"2024-11-04T09:04:50","date_gmt":"2024-11-04T08:04:50","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=79441&#038;preview=true&#038;preview_id=79441"},"modified":"2024-12-10T15:24:00","modified_gmt":"2024-12-10T14:24:00","slug":"api-pianificare-backup-siti-multipli","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/","title":{"rendered":"Pianificare i backup per pi\u00f9 siti con l&#8217;API di Kinsta"},"content":{"rendered":"<p>Per le <a href=\"https:\/\/kinsta.com\/it\/blog\/agenzia-wordpress\/\">agenzie WordPress<\/a> che gestiscono pi\u00f9 siti web di clienti, avere una solida <a href=\"https:\/\/kinsta.com\/it\/blog\/funzioni-backup-kinsta\/\">strategia di backup<\/a> \u00e8 essenziale. Nell&#8217;eventualit\u00e0 di un&#8217;interruzione imprevista, di un problema con i plugin o di un errore umano, i backup garantiscono un rapido ripristino dei dati, riducendo al minimo i tempi di inattivit\u00e0 e i rischi per i clienti.<\/p>\n<p>Noi di Kinsta siamo consapevoli del ruolo cruciale dei backup ed \u00e8 per questo che offriamo <a href=\"https:\/\/kinsta.com\/it\/docs\/hosting-wordpress\/wordpress-backup\/\">sei opzioni di backup<\/a>: automatico giornaliero, opzionale ogni ora (e ogni sei ore), manuale, generato dal sistema, scaricabile e backup esterni inviati direttamente ad Amazon S3 o Google Cloud Storage.<\/p>\n<p>Sebbene la gestione di questi backup sia semplice attraverso la dashboard di <a href=\"https:\/\/kinsta.com\/it\/mykinsta\/\">MyKinsta<\/a>, l&#8217;<a href=\"https:\/\/kinsta.com\/it\/docs\/kinsta-api\/\">API di Kinsta<\/a> offre grandi possibilit\u00e0 di automatizzare i processi ripetitivi.<\/p>\n<p>Immaginate di digitare semplicemente un comando in Slack o di impostare un cron job per attivare i backup di tutti i vostri siti WordPress nell&#8217;account della vostra agenzia Kinsta senza dover navigare manualmente tra decine o addirittura centinaia di dashboard di siti.<\/p>\n<p>Questa flessibilit\u00e0 \u00e8 uno dei tanti vantaggi dell&#8217;utilizzo di un host che d\u00e0 la priorit\u00e0 alle esigenze dei propri clienti fornendo loro gli strumenti per creare soluzioni personalizzate che facciano risparmiare tempo.<\/p>\n<p>Questa guida spiega come sfruttare l&#8217;API di Kinsta per automatizzare i backup di pi\u00f9 siti. Che si tratti di integrazione con il vostro stack preferito, di utilizzo di strumenti come Slack o di impostazione di pianificazioni automatiche, questa guida fornisce le conoscenze necessarie per ottimizzare il processo di backup e migliorare il vostro flusso di lavoro.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Se non avete familiarit\u00e0 con i vari endpoint di backup disponibili attraverso l&#8217;API di Kinsta, assicuratevi di dare un&#8217;occhiata alla nostra guida dettagliata sulla <a href=\"https:\/\/kinsta.com\/it\/blog\/api-backup-wordpress\/\">gestione dei backup di WordPress in Slack con l&#8217;API di Kinsta<\/a>. Qui scoprirete come utilizzare in modo efficace i diversi endpoint di backup.<\/p>\n<\/aside>\n\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Implementare i backup per tutti i siti e per siti selezionati<\/h2>\n<p>Prima di immergersi nella pianificazione, \u00e8 importante capire come attivare i backup per tutti i siti del vostro account Kinsta e come selezionare siti o ambienti specifici utilizzando l&#8217;API Kinsta.<\/p>\n<p>Una volta costruite le basi per creare i backup, possiamo facilmente integrare la pianificazione per automatizzare il processo.<\/p>\n<h3>Attivare i backup per tutti i siti di un account Kinsta<\/h3>\n<p>Come per tutte le API, non sempre esiste un unico endpoint per fare tutto ci\u00f2 di cui si ha bisogno: spesso \u00e8 necessario combinare pi\u00f9 endpoint per ottenere il risultato desiderato.<\/p>\n<p>Vale lo stesso per l&#8217;API di Kinsta. Sebbene esistano endpoint specifici per la gestione dei backup, questi endpoint richiedono alcuni parametri, come gli ID dell&#8217;ambiente, che si ottengono effettuando richieste aggiuntive ad altri endpoint.<\/p>\n<p>Ad esempio, per attivare un backup manuale di un sito, avete bisogno dell&#8217;ID ambiente di quel particolare ambiente. Per ottenere l&#8217;ID ambiente, serve prima ottenere l&#8217;ID sito. Ci\u00f2 significa che dovrete effettuare pi\u00f9 chiamate API: una per ottenere l&#8217;ID del sito, un&#8217;altra per recuperare l&#8217;ID dell&#8217;ambiente e infine una richiesta per attivare il backup.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Anche se gli esempi di questa guida sono basati su <a href=\"https:\/\/kinsta.com\/it\/blog\/cosa-e-javascript\/\">JavaScript<\/a>, la logica pu\u00f2 essere facilmente applicata ad altri <a href=\"https:\/\/kinsta.com\/it\/blog\/miglior-linguaggio-di-programmazione\/\">linguaggi di programmazione<\/a>, come <a href=\"https:\/\/kinsta.com\/it\/blog\/installare-python\/\">Python<\/a>, a seconda delle vostre preferenze.<\/p>\n<p>Se \u00e8 la prima volta che utilizzate l&#8217;API di Kinsta, dovrete creare una chiave API. Date un&#8217;occhiata a <a href=\"https:\/\/kinsta.com\/it\/blog\/chiave-api-kinsta\/\">questa guida su come creare e utilizzare la chiave API di Kinsta<\/a> per iniziare.<\/p>\n<\/aside>\n\n<h4>Passo 1: Recuperare tutti i siti WordPress con Kinsta API<\/h4>\n<p>Il primo passo consiste nel recuperare un elenco di tutti i siti associati al vostro account Kinsta. L&#8217;API di Kinsta fornisce un endpoint per recuperare questi dati, che includono gli ID dei siti, i nomi e altri dettagli rilevanti. Utilizzando l&#8217;endpoint <code>GET \/sites<\/code>, potete ottenere un elenco di tutti i siti associati all&#8217;account della vostra azienda.<\/p>\n<p>Ecco un esempio che utilizza Node.js e <a href=\"https:\/\/kinsta.com\/it\/blog\/richieste-http-javascript\/#4-how-to-make-an-http-request-in-javascript-using-the-fetch-api\">Fetch API<\/a>:<\/p>\n<pre><code class=\"language-js\">require('dotenv').config();\n\nconst KINSTA_API_URL = 'https:\/\/api.kinsta.com\/v2';\nconst API_KEY = process.env.KINSTA_API_KEY;\n\nasync function getAllSites() {\n    const response = await fetch(`${KINSTA_API_URL}\/sites`, {\n        headers: {\n            Authorization: `Bearer ${API_KEY}`\n        }\n    });\n    const data = await response.json();\n    return data.company.sites; \/\/ Returns array of all sites\n}<\/code><\/pre>\n<p>Questa funzione restituisce un array di tutti i siti del vostro account. Ogni sito contiene informazioni quali l&#8217;ID, il nome e l&#8217;ambiente del sito.<\/p>\n<h4>Passo 2: Recuperare gli ID degli ambienti per ogni sito WordPress<\/h4>\n<p>Ogni sito pu\u00f2 avere pi\u00f9 ambienti (come la produzione o lo staging) e i backup vengono attivati per ogni ambiente. Per recuperare gli ID ambiente per ogni sito, dovrete effettuare un&#8217;altra chiamata API all&#8217;endpoint <code>GET \/sites\/{site_id}\/environments<\/code>.<\/p>\n<p>Ecco un esempio di funzione che recupera gli ambienti per un sito specifico:<\/p>\n<pre><code class=\"language-js\">async function getSiteEnvironments(siteId) {\n    const response = await fetch(`${KINSTA_API_URL}\/sites\/${siteId}\/environments`, {\n        headers: {\n            Authorization: `Bearer ${API_KEY}`\n        }\n    });\n    const data = await response.json();\n    return data.site.environments;\n}<\/code><\/pre>\n<h4>Passo 3: Attivare i backup per ogni ambiente<\/h4>\n<p>Una volta ottenuti gli ID degli ambienti, \u00e8 possibile attivare i backup per ciascun ambiente utilizzando l&#8217;endpoint <code>POST \/sites\/environments\/{env_id}\/manual-backups<\/code>. L&#8217;API permette di creare un backup manuale fornendo un ID ambiente e un tag opzionale per identificare il backup.<\/p>\n<p>Ecco come attivare un backup per un determinato ambiente:<\/p>\n<pre><code class=\"language-js\">async function createBackup(environmentId, tag) {\n    const response = await fetch(`${KINSTA_API_URL}\/sites\/environments\/${environmentId}\/manual-backups`, {\n        method: 'POST',\n        headers: {\n            Authorization: `Bearer ${API_KEY}`,\n            'Content-Type': 'application\/json'\n        },\n        body: JSON.stringify({ tag })\n    });\n\n    if (response.ok) {\n        console.log(`Backup created for environment ${environmentId} with tag: ${tag}`);\n    } else {\n        console.error(`Failed to create backup for environment ${environmentId}`);\n    }\n}<\/code><\/pre>\n<p>Questa funzione attiva un backup manuale per l&#8217;ID ambiente indicato. Potete anche etichettare il vostro backup per facilitarne l&#8217;identificazione.<\/p>\n<h4>Passo 4: Automatizzare i backup per tutti i siti<\/h4>\n<p>Ora che avete le funzioni per recuperare tutti i siti, gli ID ambiente e i backup, potete combinarle per creare uno script che automatizzi i backup per tutti i siti del vostro account Kinsta.<\/p>\n<p>Ecco come collegare il tutto:<\/p>\n<pre><code class=\"language-js\">async function backupAllSites() {\n    const sites = await getAllSites();\n\n    for (const site of sites) {\n        const environments = await getSiteEnvironments(site.id);\n\n        for (const environment of environments) {\n            await createBackup(environment.id, `Backup-${new Date().toISOString()}`);\n        }\n    }\n\n    console.log('Backups for all sites have been triggered.');\n}<\/code><\/pre>\n<p>Questa funzione esegue un loop di tutti i siti, recupera i loro ambienti e attiva i backup per ogni ambiente con un tag con data e ora.<\/p>\n<p>Ora, quando eseguite <code>backupAllSites()<\/code>, viene attivato un backup per ogni ambiente del vostro account Kinsta.<\/p>\n<h4>Esempio di comando Slack<\/h4>\n<p>Potete integrare questo processo di backup in un comando Slack per una gestione ancora pi\u00f9 semplice. <a href=\"https:\/\/kinsta.com\/it\/blog\/creare-slackbot-gestire-sito\/\">Configurando un&#8217;app Slack<\/a>, gli utenti possono attivare il backup di tutti i siti con un unico comando come <code>\/backup_all_sites<\/code>.<\/p>\n<p>Ecco un rapido esempio di come potrebbe funzionare:<\/p>\n<pre><code class=\"language-js\">app.command('\/backup_all_sites', async ({ ack, say }) =&gt; {\n    await ack();\n    await backupAllSites();\n    say('Backups for all sites have been triggered.');\n});<\/code><\/pre>\n<h3>Attivare i backup per siti selezionati utilizzando gli ID ambiente<\/h3>\n<p>In alcuni casi, potreste voler attivare i backup solo per siti o ambienti specifici piuttosto che per tutti i siti del vostro account Kinsta. Questo potrebbe essere utile se volete eseguire il backup solo degli ambienti di produzione o di alcuni siti ad alta priorit\u00e0.<\/p>\n<p>Utilizzando l&#8217;API di Kinsta, possiamo automatizzare i backup per ambienti selezionati passando un array di ID ambiente. Vediamo come implementarlo.<\/p>\n<h4>Passo 1: Passare gli ID degli ambienti<\/h4>\n<p>Per attivare i backup per i siti selezionati, avete bisogno degli ID ambiente di tali siti. Potete codificare questi ID, recuperarli dall&#8217;API di Kinsta o passarli dinamicamente (ad esempio tramite un argomento della riga di comando, un comando Slack, ecc.)<\/p>\n<p>Ecco una funzione che accetta un array di ID ambiente e attiva i backup per ciascuno di essi:<\/p>\n<pre><code class=\"language-js\">async function backupSelectedEnvironments(environmentIds, tag) {\n    for (const envId of environmentIds) {\n        await createBackup(envId, tag);\n    }\n}<\/code><\/pre>\n<p>La funzione qui sopra riceve un array di ID ambiente di cui si vuole eseguire il backup (<code>environmentIds<\/code>). La funzione <code>createBackup(envId, tag)<\/code> attiva il backup per ogni ambiente dell&#8217;array utilizzando la funzione <code>createBackup()<\/code> (spiegata nel passaggio 2).<\/p>\n<h4>Passo 2: Attivare il backup<\/h4>\n<p>Per attivare il backup vero e proprio per ogni ambiente, usate l&#8217;endpoint <code>POST \/sites\/environments\/{env_id}\/manual-backups<\/code> dell&#8217;API di Kinsta come abbiamo fatto per tutti i siti. Ecco come funziona:<\/p>\n<pre><code class=\"language-js\">async function createBackup(environmentId, tag) {\n    const response = await fetch(`${KINSTA_API_URL}\/sites\/environments\/${environmentId}\/manual-backups`, {\n        method: 'POST',\n        headers: {\n            Authorization: `Bearer ${API_KEY}`,\n            'Content-Type': 'application\/json'\n        },\n        body: JSON.stringify({ tag })\n    });\n\n    if (response.ok) {\n        console.log(`Backup created for environment ${environmentId} with tag: ${tag}`);\n    } else {\n        console.error(`Failed to create backup for environment ${environmentId}: ${response.statusText}`);\n    }\n}<\/code><\/pre>\n<h4>Passo 3: Eseguire i backup per gli ambienti selezionati<\/h4>\n<p>Ora che abbiamo le funzioni per attivare i backup e gestire pi\u00f9 ambienti, possiamo combinarle per eseguire il backup di ambienti specifici. Questo esempio presuppone che abbiamo gi\u00e0 gli ID degli ambienti di cui vogliamo fare il backup.<\/p>\n<pre><code class=\"language-js\">const selectedEnvironments = ['12345', '67890']; \/\/ Replace with actual environment IDs\nbackupSelectedEnvironments(selectedEnvironments, 'Manual Backup');<\/code><\/pre>\n<p>In questo caso:<\/p>\n<ul>\n<li>L&#8217;array <code>selectedEnvironments<\/code> contiene gli ID dell&#8217;ambiente di cui si vuole eseguire il backup.<\/li>\n<li>La funzione <code>backupSelectedEnvironments()<\/code> esegue un ciclo per ogni ID e attiva il backup con il tag &#8220;Backup manuale&#8221;.<\/li>\n<\/ul>\n<h4>Esempio di comando Slack<\/h4>\n<p>Se utilizzate un&#8217;applicazione Slack o un&#8217;interfaccia a riga di comando, potete anche permettere agli utenti di specificare di quali ambienti eseguire il backup.<\/p>\n<p>Ecco come potreste implementare questa funzione in un&#8217;app Slack:<\/p>\n<pre><code class=\"language-js\">app.command('\/backup_selected_envs', async ({ command, ack, say }) =&gt; {\n    await ack();\n    const [tag, ...envIds] = command.text.split(' ');  \/\/ First part is the tag, rest are env IDs\n    await backupSelectedEnvironments(envIds, tag);\n    say(`Backups triggered for selected environments with tag ${tag}.`);\n});<\/code><\/pre>\n<p>L&#8217;utente inserisce un comando come <code>\/backup_selected_envs Backup-Tag 12345 67890<\/code>, dove <code>Backup-Tag<\/code> \u00e8 il tag e <code>12345, 67890<\/code> sono gli ID degli ambienti.<\/p>\n<p>Il testo del comando viene suddiviso e gli ID ambiente vengono passati alla funzione <code>backupSelectedEnvironments()<\/code>.<\/p>\n<p>Dopo aver attivato i backup, l&#8217;applicazione risponde all&#8217;utente confermando il backup.<\/p>\n<h2>Pianificare i backup per i propri siti WordPress<\/h2>\n<p>Uno degli aspetti pi\u00f9 preziosi dell&#8217;automazione \u00e8 la possibilit\u00e0 di programmare attivit\u00e0 in momenti specifici senza alcun intervento manuale.<\/p>\n<p>Ora che abbiamo spiegato come attivare i backup per tutti i siti e per quelli selezionati, il passo successivo \u00e8 quello di automatizzare questi processi aggiungendo la pianificazione.<\/p>\n<p>Se volete pianificare i backup in locale, su una piattaforma ospitata come Kinsta o in modo dinamico tramite Slack, ci sono vari modi per implementarli.<\/p>\n<h3>Le espressioni cron<\/h3>\n<p>Prima di esplorare i diversi approcci alla pianificazione dei backup, \u00e8 importante capire come funzionano le espressioni cron, che vengono utilizzate per specificare le tempistiche delle attivit\u00e0 pianificate su varie piattaforme e strumenti.<\/p>\n<p>Le espressioni cron definiscono quando un&#8217;attivit\u00e0 deve essere eseguita. Sono utilizzate in molte librerie e servizi di pianificazione, come <a href=\"https:\/\/www.npmjs.com\/package\/node-cron\" target=\"_blank\" rel=\"noopener noreferrer\">node-cron<\/a>, <a href=\"https:\/\/www.npmjs.com\/package\/node-schedule\" target=\"_blank\" rel=\"noopener noreferrer\">node-schedule<\/a> e anche cron job lato server come quelli disponibili nella piattaforma dell&#8217;<a href=\"https:\/\/sevalla.com\/application-hosting\/\">Hosting di Applicazioni di Kinsta<\/a>.<\/p>\n<p>Le espressioni cron sono composte da cinque campi, ognuno dei quali controlla un aspetto specifico del momento in cui l&#8217;attivit\u00e0 deve essere eseguita. Una tipica espressione cron si presenta come segue:<\/p>\n<pre><code class=\"language-js\">* * * * *\n| | | | |\n| | | | \u2514\u2500\u2500\u2500 Day of the week (0 - 7) (Sunday to Saturday, 0 and 7 represent Sunday)\n| | | \u2514\u2500\u2500\u2500\u2500\u2500\u2500 Month (1 - 12)\n| | \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Day of the month (1 - 31)\n| \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Hour (0 - 23)\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Minute (0 - 59)<\/code><\/pre>\n<p>Vediamo cosa rappresenta ogni campo:<\/p>\n<ul>\n<li><strong>Minute<\/strong>: il minuto dell&#8217;ora in cui l&#8217;attivit\u00e0 deve essere eseguita (0 &#8211; 59).<\/li>\n<li><strong>Hour<\/strong>: l&#8217;ora del giorno in cui l&#8217;attivit\u00e0 deve essere eseguita (0 &#8211; 23).<\/li>\n<li><strong>Day of the month<\/strong>: il giorno specifico del mese in cui eseguire l&#8217;attivit\u00e0 (1 &#8211; 31).<\/li>\n<li><strong>Month<\/strong>: il mese dell&#8217;anno in cui eseguire l&#8217;attivit\u00e0 (1 &#8211; 12).<\/li>\n<li><strong>Day of the week<\/strong>: il giorno specifico della settimana in cui eseguire l&#8217;attivit\u00e0 (0 &#8211; 7, dove 0 e 7 rappresentano entrambi la domenica).<\/li>\n<\/ul>\n<p>Potete utilizzare valori specifici, caratteri jolly (<code>*<\/code>) o intervalli in ogni campo per definire la pianificazione.<\/p>\n<p>Esempi di espressioni cron:<\/p>\n<ul>\n<li><code>0 0 * * *<\/code>: ogni giorno a mezzanotte (00:00)<\/li>\n<li><code>0 3 * * 1<\/code>: ogni luned\u00ec alle 3 del mattino<\/li>\n<li><code>*\/10 * * * *<\/code>: ogni 10 minuti<\/li>\n<li><code>0 9-18 * * *<\/code>: ogni ora tra le 9.00 e le 18.00.<\/li>\n<\/ul>\n<p>Con una solida conoscenza delle espressioni cron, possiamo ora passare a diversi metodi di pianificazione dei backup per i siti WordPress utilizzando l&#8217;API Kinsta.<\/p>\n<h3>Approccio 1: Pianificazione locale con node-cron<\/h3>\n<p>Il pacchetto Node.js <a href=\"https:\/\/www.npmjs.com\/package\/node-cron\" target=\"_blank\" rel=\"noopener noreferrer\">node-cron<\/a> \u00e8 in grado di eseguire attivit\u00e0 programmate basate su una sintassi simile a quella di cron. \u00c8 ideale per l&#8217;esecuzione di attivit\u00e0 automatizzate in applicazioni Node.js locali o standalone ed \u00e8 una scelta popolare per pianificare backup, inviare e-mail o eseguire altre attivit\u00e0 ricorrenti.<\/p>\n<p>In node-cron, definite un&#8217;attivit\u00e0 (come la funzione di backup) e utilizzate un&#8217;espressione cron per specificare quando l&#8217;attivit\u00e0 deve essere eseguita. L&#8217;espressione cron \u00e8 composta da cinque campi che definiscono il minuto, l&#8217;ora, il giorno del mese, il mese e il giorno della settimana in cui l&#8217;attivit\u00e0 deve essere eseguita.<\/p>\n<p>Per prima cosa, installate node-cron nel vostro progetto:<\/p>\n<pre><code class=\"language-bash\">npm install node-cron<\/code><\/pre>\n<p>Supponiamo che vogliate programmare un backup giornaliero di tutti i siti a mezzanotte utilizzando node-cron. Ecco come fare:<\/p>\n<pre><code class=\"language-js\">const cron = require('node-cron');\nconst { backupAllSites } = require('.\/app');  \/\/ Import the backup function\n\n\/\/ Schedule to run backups for all sites at midnight every day\ncron.schedule('0 0 * * *', () =&gt; {\n  console.log('Running scheduled backup for all sites at midnight...');\n  backupAllSites();\n});<\/code><\/pre>\n<p>Allo stesso modo, se volete eseguire il backup di alcuni ambienti selezionati alle 2 del mattino di ogni giorno, potete programmarlo in questo modo:<\/p>\n<pre><code class=\"language-js\">cron.schedule('0 2 * * *', () =&gt; {\n  const environmentIds = ['env12345', 'env67890']; \/\/ Specific environments to back up\n  console.log('Running scheduled backup for selected environments...');\n  backupSelectedEnvironments(environmentIds, 'Scheduled Backup');\n});<\/code><\/pre>\n<h3>Approccio 2: Usare i cron job nel cloud hosting (come Kinsta)<\/h3>\n<p>Quando distribuite la vostra applicazione Node.js su una piattaforma come Kinsta, potete sfruttare la funzionalit\u00e0 di <a href=\"https:\/\/docs.sevalla.com\/applications\/processes#cron-job-process\">cron job<\/a> integrata nella piattaforma per pianificare attivit\u00e0 come i backup. Tuttavia, l&#8217;impostazione dei cron job negli ambienti cloud richiede una struttura leggermente diversa rispetto agli strumenti di pianificazione locali come node-cron.<\/p>\n<p>Quando si distribuisce un&#8217;applicazione su Kinsta, questa deve avere un processo web in esecuzione (anche se non sta effettivamente servendo il traffico web).<\/p>\n<p>Per assicurarvi che il vostro progetto venga eseguito correttamente e che non richiami automaticamente le funzioni di backup, potete creare un file che esegua un semplice server web. Questo file funge da processo web &#8220;fittizio&#8221;, mentre i cron job gestiscono la logica di backup.<\/p>\n<p>Potete aggiungere questo codice:<\/p>\n<pre><code class=\"language-js\">require('http').createServer((req, res) =&gt; {\n    res.writeHead(302, { Location: 'https:\/\/www.google.com' });\n    res.end();\n}).listen(process.env.PORT);<\/code><\/pre>\n<p>In questo modo, potete impostare il comando di script per distinguere tra il processo web (<code>start<\/code>) e il processo cron job (<code>cron<\/code>).<\/p>\n<pre><code class=\"language-js\">  \"scripts\": {\n    \"start\": \"node index.js\",  \/\/ Web process\n    \"cron\": \"node app.js\"  \/\/ Cron job process\n  },<\/code><\/pre>\n<p>Infine, configurate il cron job in Kinsta per richiamare la funzione di backup all&#8217;ora specificata. Utilizzando le impostazioni del cron job, potete definire il comando per eseguire il backup.<\/p>\n<p>Nella scheda <strong>Processi<\/strong> della dashboard delle applicazioni di MyKinsta, impostate il comando per il processo web su:<\/p>\n<pre><code class=\"language-bash\">npm run start<\/code><\/pre>\n<p>E impostate il comando del cron job su:<\/p>\n<pre><code class=\"language-bash\">npm run cron<\/code><\/pre>\n<p>Per eseguire il cron job a un orario specifico (ogni giorno alle 11:30), impostate l&#8217;espressione cron in questo modo:<\/p>\n<pre><code class=\"language-bash\">30 11 * * *<\/code><\/pre>\n<p>Questo comando attiver\u00e0 la funzione <code>backupAllSites()<\/code> ogni giorno alle 11:30.<\/p>\n<figure id=\"attachment_105526\" aria-describedby=\"caption-attachment-105526\" style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2024\/10\/cron-job-app-hosting.png\" alt=\"Setting up a cron job in Kinsta's Application Hosting\" width=\"1001\" height=\"471\"><figcaption id=\"caption-attachment-105526\" class=\"wp-caption-text\">Impostazione di un cron job nell&#8217;Hosting di Applicazioni di Kinsta.<\/figcaption><\/figure>\n<h3>Approccio 3: Pianificazione con node-schedule<\/h3>\n<p>Un&#8217;altra libreria Node.js, <a href=\"https:\/\/www.npmjs.com\/package\/node-schedule\" target=\"_blank\" rel=\"noopener noreferrer\">node-schedule<\/a>, pu\u00f2 programmare attivit\u00e0 utilizzando il formato cron e supporta anche pianificazioni pi\u00f9 complesse.<\/p>\n<p>Ecco un esempio che permette agli utenti di programmare i backup via Slack utilizzando il formato cron di node-schedule:<\/p>\n<pre><code class=\"language-js\">const schedule = require('node-schedule');\nconst { backupAllSites } = require('.\/app');\n\n\/\/ Slack command to schedule backups dynamically\napp.command('\/schedule_backup', async ({ command, ack, say }) =&gt; {\n    await ack();\n\n    \/\/ Extract hour and minute from the command (expects HH:MM format)\n    const [hour, minute] = command.text.split(':');\n\n    \/\/ Validate input\n    if (!hour || !minute) {\n        say('Please specify the time in HH:MM format.');\n        return;\n    }\n\n    \/\/ Schedule the backup using node-schedule's cron-like format\n    const job = schedule.scheduleJob(`${minute} ${hour} * * *`, () =&gt; {\n        console.log(`Running scheduled backup at ${hour}:${minute}`);\n        backupAllSites();  \/\/ This triggers the backup for all sites\n    });\n\n    say(`Backup scheduled at ${hour}:${minute} successfully.`);\n});<\/code><\/pre>\n<p>Ad esempio, un utente pu\u00f2 eseguire il seguente comando Slack per programmare un backup per le 23:30:<\/p>\n<pre><code class=\"language-bash\">\/schedule_backup 23:30<\/code><\/pre>\n<p>Dopo aver eseguito questo comando, il backup sar\u00e0 programmato per essere eseguito alle 23:30 di ogni giorno. La risposta di Slack potrebbe essere la seguente:<\/p>\n<pre><code class=\"language-bash\">Backup scheduled at 23:30 successfully.<\/code><\/pre>\n<p>Questo approccio permette agli utenti di programmare dinamicamente i backup da Slack semplicemente specificando l&#8217;orario senza dover interagire con il server o il codice dell&#8217;applicazione. Si tratta di un modo flessibile ed efficace per gestire attivit\u00e0 programmate come i backup in modo semplice e intuitivo.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Se gestite il vostro team tramite Slack, potete clonare il nostro <a href=\"https:\/\/github.com\/kinsta\/SlackBot-Kinsta-API\" target=\"_blank\" rel=\"noopener noreferrer\">progetto Slackbot<\/a>, che si integra con l&#8217;API di Kinsta per gestire diverse operazioni. Basta regolare le <a href=\"https:\/\/github.com\/kinsta\/SlackBot-Kinsta-API?tab=readme-ov-file#environment-variables\" target=\"_blank\" rel=\"noopener noreferrer\">variabili d&#8217;ambiente<\/a> per riflettere i segreti delle API di Kinsta e Slack e sarete pronti a partire. Per istruzioni dettagliate sulla configurazione e sui comandi disponibili, consultate il <a href=\"https:\/\/github.com\/kinsta\/SlackBot-Kinsta-API\/blob\/main\/README.md\" target=\"_blank\" rel=\"noopener noreferrer\">file README<\/a>.<\/p>\n<\/aside>\n\n<h2>Riepilogo<\/h2>\n<p>Pianificare i backup su pi\u00f9 siti WordPress \u00e8 utile per le agenzie che gestiscono numerosi siti web di clienti. Automatizzare questi backup non solo fa risparmiare tempo, ma assicura anche coerenza, riduce il rischio di errori umani e garantisce la massima tranquillit\u00e0.<\/p>\n<p><em>Questa soluzione sarebbe utile alla vostra agenzia? Ci piacerebbe conoscere le vostre opinioni. Condividetele con noi nella sezione commenti qui sotto!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Per le agenzie WordPress che gestiscono pi\u00f9 siti web di clienti, avere una solida strategia di backup \u00e8 essenziale. Nell&#8217;eventualit\u00e0 di un&#8217;interruzione imprevista, di un problema &#8230;<\/p>\n","protected":false},"author":287,"featured_media":79442,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[26284,26232,26206],"class_list":["post-79441","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-agenzie","topic-api","topic-servizi-kinsta"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pianificare i backup per pi\u00f9 siti con l&#039;API di Kinsta<\/title>\n<meta name=\"description\" content=\"Questa guida illustra vari metodi, tra cui node-cron, cron job basati su cloud per semplificare la gestione dei backup per le agenzie.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pianificare i backup per pi\u00f9 siti con l&#039;API di Kinsta\" \/>\n<meta property=\"og:description\" content=\"Questa guida illustra vari metodi, tra cui node-cron, cron job basati su cloud per semplificare la gestione dei backup per le agenzie.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-04T08:04:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-10T14:24:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1470\" \/>\n\t<meta property=\"og:image:height\" content=\"735\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Questa guida illustra vari metodi, tra cui node-cron, cron job basati su cloud per semplificare la gestione dei backup per le agenzie.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API-1024x512.png\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Pianificare i backup per pi\u00f9 siti con l&#8217;API di Kinsta\",\"datePublished\":\"2024-11-04T08:04:50+00:00\",\"dateModified\":\"2024-12-10T14:24:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/\"},\"wordCount\":2312,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png\",\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/\",\"name\":\"Pianificare i backup per pi\u00f9 siti con l'API di Kinsta\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png\",\"datePublished\":\"2024-11-04T08:04:50+00:00\",\"dateModified\":\"2024-12-10T14:24:00+00:00\",\"description\":\"Questa guida illustra vari metodi, tra cui node-cron, cron job basati su cloud per semplificare la gestione dei backup per le agenzie.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png\",\"width\":1470,\"height\":735},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/api\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Pianificare i backup per pi\u00f9 siti con l&#8217;API di Kinsta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"caption\":\"Joel Olawanle\"},\"description\":\"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.\",\"sameAs\":[\"https:\/\/joelolawanle.com\/\",\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\",\"https:\/\/x.com\/olawanle_joel\",\"https:\/\/www.youtube.com\/@joelolawanle\"],\"gender\":\"male\",\"knowsAbout\":[\"JavaScript\",\"React\",\"Next.js\"],\"knowsLanguage\":[\"English\"],\"jobTitle\":\"Technical Editor\",\"worksFor\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Pianificare i backup per pi\u00f9 siti con l'API di Kinsta","description":"Questa guida illustra vari metodi, tra cui node-cron, cron job basati su cloud per semplificare la gestione dei backup per le agenzie.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/","og_locale":"it_IT","og_type":"article","og_title":"Pianificare i backup per pi\u00f9 siti con l'API di Kinsta","og_description":"Questa guida illustra vari metodi, tra cui node-cron, cron job basati su cloud per semplificare la gestione dei backup per le agenzie.","og_url":"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2024-11-04T08:04:50+00:00","article_modified_time":"2024-12-10T14:24:00+00:00","og_image":[{"width":1470,"height":735,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","type":"image\/png"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Questa guida illustra vari metodi, tra cui node-cron, cron job basati su cloud per semplificare la gestione dei backup per le agenzie.","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API-1024x512.png","twitter_creator":"@olawanle_joel","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Joel Olawanle","Tempo di lettura stimato":"16 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Pianificare i backup per pi\u00f9 siti con l&#8217;API di Kinsta","datePublished":"2024-11-04T08:04:50+00:00","dateModified":"2024-12-10T14:24:00+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/"},"wordCount":2312,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/","url":"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/","name":"Pianificare i backup per pi\u00f9 siti con l'API di Kinsta","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","datePublished":"2024-11-04T08:04:50+00:00","dateModified":"2024-12-10T14:24:00+00:00","description":"Questa guida illustra vari metodi, tra cui node-cron, cron job basati su cloud per semplificare la gestione dei backup per le agenzie.","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","width":1470,"height":735},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/api-pianificare-backup-siti-multipli\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"API","item":"https:\/\/kinsta.com\/it\/argomenti\/api\/"},{"@type":"ListItem","position":3,"name":"Pianificare i backup per pi\u00f9 siti con l&#8217;API di Kinsta"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","caption":"Joel Olawanle"},"description":"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.","sameAs":["https:\/\/joelolawanle.com\/","https:\/\/www.linkedin.com\/in\/olawanlejoel\/","https:\/\/x.com\/olawanle_joel","https:\/\/www.youtube.com\/@joelolawanle"],"gender":"male","knowsAbout":["JavaScript","React","Next.js"],"knowsLanguage":["English"],"jobTitle":"Technical Editor","worksFor":"Kinsta","url":"https:\/\/kinsta.com\/it\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/79441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=79441"}],"version-history":[{"count":6,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/79441\/revisions"}],"predecessor-version":[{"id":79448,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/79441\/revisions\/79448"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/79441\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/79441\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/79441\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/79441\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/79441\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/79441\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/79441\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/79441\/translations\/es"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/79441\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/79442"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=79441"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=79441"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=79441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}