{"id":70143,"date":"2024-11-04T05:06:46","date_gmt":"2024-11-04T08:06:46","guid":{"rendered":"https:\/\/kinqsta.com\/pt\/?p=70143&#038;preview=true&#038;preview_id=70143"},"modified":"2024-12-10T11:24:37","modified_gmt":"2024-12-10T14:24:37","slug":"agendamento-backups-multiplos-sites-api","status":"publish","type":"post","link":"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/","title":{"rendered":"Agendamento de Backups para V\u00e1rios Sites com a API Kinsta"},"content":{"rendered":"<p>Para as <a href=\"https:\/\/kinqsta.com\/pt\/blog\/agencia-wordpress\/\">ag\u00eancias de WordPress<\/a> que gerenciam v\u00e1rios sites de clientes, \u00e9 essencial ter uma <a href=\"https:\/\/kinqsta.com\/pt\/blog\/recurso-de-backup-kinsta\/\">estrat\u00e9gia de backup<\/a> robusta. No caso de uma interrup\u00e7\u00e3o inesperada, falha de plugin ou erro humano, os backups garantem que os dados possam ser restaurados rapidamente, minimizando o tempo de inatividade e reduzindo o risco para o cliente.<\/p>\n<p>Na Kinsta, entendemos o papel crucial que os backups desempenham, e \u00e9 por isso que oferecemos <a href=\"https:\/\/kinqsta.com\/pt\/docs\/hospedagem-de-wordpress\/backups-wordpress\/\">seis op\u00e7\u00f5es de backup<\/a>: Di\u00e1rio autom\u00e1tico, opcional de hora em hora (e a cada seis horas), manual, gerado pelo sistema, para download e backups externos enviados diretamente para o Amazon S3 ou Google Cloud Storage.<\/p>\n<p>Embora o gerenciamento desses backups seja simples por meio do painel <a href=\"https:\/\/kinqsta.com\/pt\/mykinsta\/\">MyKinsta<\/a>, a <a href=\"https:\/\/kinqsta.com\/pt\/docs\/kinsta-api\/\">API da Kinsta<\/a> oferece \u00f3timas possibilidades para automatizar processos repetitivos.<\/p>\n<p>Imagine simplesmente digitar um comando no Slack ou configurar um cron job para acionar backups de todos os seus sites WordPress na conta de ag\u00eancia Kinsta, sem precisar navegar manualmente por dezenas ou at\u00e9 centenas de pain\u00e9is de sites.<\/p>\n<p>Essa flexibilidade \u00e9 uma das muitas vantagens de usar um provedor de hospedagem de sites que prioriza as necessidades de seus clientes, fornecendo ferramentas para criar solu\u00e7\u00f5es personalizadas e que economizam tempo.<\/p>\n<p>Este guia explica como aproveitar a API da Kinsta para automatizar backups em v\u00e1rios sites. Quer voc\u00ea esteja se integrando \u00e0 sua pilha preferida, usando ferramentas como o Slack ou configurando programa\u00e7\u00f5es automatizadas, este guia fornece o conhecimento necess\u00e1rio para simplificar seu processo de backup e aprimorar seu fluxo de trabalho.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Se voc\u00ea n\u00e3o est\u00e1 familiarizado com os v\u00e1rios endpoints de backup dispon\u00edveis na API da Kinsta, confira nosso guia detalhado sobre <a href=\"https:\/\/kinqsta.com\/pt\/blog\/backups-wordpress-api\/\">Gerenciamento de Backups do WordPress no Slack com a API da Kinsta<\/a>. Ele explica como usar os diferentes endpoints de backup de forma eficaz.<\/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>Implementando backups para todos os sites e sites espec\u00edficos<\/h2>\n<p>Antes de entrar na parte de agendamento, \u00e9 importante primeiro entender como acionar backups para todos os sites em sua conta Kinsta e como direcionar backups para sites ou ambientes espec\u00edficos usando a API da Kinsta.<\/p>\n<p>Assim que tivermos a base para criar backups, podemos facilmente integrar o agendamento para automatizar o processo.<\/p>\n<h3>Acionando backups para todos os sites em uma conta Kinsta<\/h3>\n<p>Como em todas as APIs, nem sempre h\u00e1 um \u00fanico endpoint para fazer tudo o que voc\u00ea precisa &#8211; muitas vezes voc\u00ea precisa combinar v\u00e1rios endpoints para alcan\u00e7ar o resultado desejado.<\/p>\n<p>A API da Kinsta n\u00e3o \u00e9 diferente. Embora existam endpoints espec\u00edficos para gerenciar backups, esses endpoints exigem determinados par\u00e2metros, como IDs de ambiente, que voc\u00ea obt\u00e9m fazendo solicita\u00e7\u00f5es adicionais a outros endpoints.<\/p>\n<p>Por exemplo, para acionar um backup manual para um site, voc\u00ea precisa do ID do ambiente para esse ambiente espec\u00edfico. Para obter o ID do ambiente, primeiro voc\u00ea precisa do ID do site. Isso significa que voc\u00ea deve fazer v\u00e1rias chamadas de API: uma para obter o ID do site, outra para recuperar o ID do ambiente e, por fim, uma solicita\u00e7\u00e3o para acionar o backup.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Embora os exemplos deste guia sejam baseados em <a href=\"https:\/\/kinqsta.com\/pt\/blog\/o-que-e-javascript\/\">JavaScript<\/a>, a l\u00f3gica pode ser facilmente aplicada a outras <a href=\"https:\/\/kinqsta.com\/pt\/blog\/melhor-linguagem-de-programacao\/\">linguagens de programa\u00e7\u00e3o<\/a>, como <a href=\"https:\/\/kinqsta.com\/pt\/blog\/instalar-python\/\">Python<\/a>, dependendo de sua prefer\u00eancia.<\/p>\n<p>Se esta \u00e9 a primeira vez que voc\u00ea usa a API da Kinsta, \u00e9 necess\u00e1rio criar uma chave API. Para come\u00e7ar, confira <a href=\"https:\/\/kinqsta.com\/pt\/blog\/chave-api-kinsta\/\">este guia sobre como criar e usar a chave API da Kinsta<\/a>.<\/p>\n<\/aside>\n\n<h4>Passo 1: Obtenha todos os sites WordPress com a API da Kinsta<\/h4>\n<p>A primeira etapa \u00e9 recuperar uma lista de todos os sites associados \u00e0 sua conta Kinsta. A API da Kinsta fornece um endpoint para que voc\u00ea obtenha esses dados, que incluem IDs de sites, nomes e outros detalhes relevantes. Usando o endpoint <code>GET \/sites<\/code>, voc\u00ea pode obter uma lista de todos os sites na conta da sua empresa.<\/p>\n<p>Aqui est\u00e1 um exemplo usando o Node.js e <a href=\"https:\/\/kinqsta.com\/pt\/blog\/solicitacoes-http-javascript\/#4-how-to-make-an-http-request-in-javascript-using-the-fetch-api\">a API Fetch<\/a>:<\/p>\n<pre><code class=\"language-js\">require('dotenv').config();\n\nconst KINSTA_API_URL = 'https:\/\/api.kinqsta.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>Essa fun\u00e7\u00e3o retorna um array de todos os sites em sua conta. Cada site cont\u00e9m informa\u00e7\u00f5es como o ID, o nome e o(s) ambiente(s) do site.<\/p>\n<h4>Passo 2: Obtenha os IDs dos ambientes para cada site WordPress<\/h4>\n<p>Cada site pode ter v\u00e1rios ambientes (como produ\u00e7\u00e3o ou teste), e os backups s\u00e3o acionados por ambiente. Para recuperar os IDs de ambiente de cada site, voc\u00ea faz outra chamada de API para o endpoint <code>GET \/sites\/{site_id}\/environments<\/code>.<\/p>\n<p>Aqui est\u00e1 um exemplo de fun\u00e7\u00e3o que obt\u00e9m ambientes para um site espec\u00edfico:<\/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: Acione backups para cada ambiente<\/h4>\n<p>Depois de obter os IDs de ambiente, voc\u00ea pode acionar backups para cada ambiente usando o endpoint <code>POST \/sites\/environments\/{env_id}\/manual-backups<\/code>. A API permite que voc\u00ea crie um backup manual fornecendo um ID de ambiente e uma tag opcional para identificar o backup.<\/p>\n<p>Veja a seguir como voc\u00ea pode acionar um backup para um determinado 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>Essa fun\u00e7\u00e3o aciona um backup manual para o ID de ambiente fornecido. Voc\u00ea tamb\u00e9m pode marcar seu backup para facilitar a identifica\u00e7\u00e3o.<\/p>\n<h4>Passo 4: Automatize backups para todos os sites<\/h4>\n<p>Agora que voc\u00ea tem fun\u00e7\u00f5es para buscar todos os sites, recuperar IDs de ambiente e acionar backups, pode combin\u00e1-las para criar um script que automatize os backups de todos os sites da sua conta Kinsta.<\/p>\n<p>Aqui est\u00e1 como unir tudo em um \u00fanico fluxo:<\/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>Essa fun\u00e7\u00e3o percorre todos os sites, recupera seus ambientes e aciona backups para cada ambiente com uma tag com registro de data e hora.<\/p>\n<p>Agora, quando voc\u00ea executa <code>backupAllSites()<\/code>, ele aciona um backup para cada ambiente em sua conta Kinsta.<\/p>\n<h4>Exemplo de comando do Slack<\/h4>\n<p>Para facilitar ainda mais o gerenciamento, voc\u00ea pode integrar esse processo de backup em um comando no Slack. Com um <a href=\"https:\/\/kinqsta.com\/pt\/blog\/criar-slackbot-gerenciamento-sites\/\">aplicativo configurado no Slack<\/a>, os usu\u00e1rios podem acionar backups para todos os sites com um \u00fanico comando, como <code>\/backup_all_sites<\/code>.<\/p>\n<p>Aqui est\u00e1 um exemplo r\u00e1pido de como isso poderia funcionar:<\/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>Acionando backups para sites selecionados usando IDs de ambiente<\/h3>\n<p>Em alguns casos, voc\u00ea pode querer acionar backups apenas para sites ou ambientes espec\u00edficos, em vez de todos os sites em sua conta Kinsta. Isso pode ser \u00fatil se voc\u00ea estiver interessado em fazer backup apenas de ambientes de produ\u00e7\u00e3o ou de determinados sites de alta prioridade.<\/p>\n<p>Usando a API da Kinsta, podemos automatizar backups para ambientes selecionados ao passar um array de IDs de ambiente. Veja como implementar isso.<\/p>\n<h4>Passo 1: Passar IDs de Ambiente<\/h4>\n<p>Quando voc\u00ea quiser acionar backups para sites selecionados, precisa dos IDs dos ambientes desses sites. Voc\u00ea pode codificar esses IDs, recuper\u00e1-los da API da Kinsta, ou pass\u00e1-los dinamicamente (por exemplo, atrav\u00e9s de um argumento de linha de comando, comando no Slack, etc.).<\/p>\n<p>Aqui est\u00e1 uma fun\u00e7\u00e3o que aceita um array de IDs de ambiente e aciona backups para cada um:<\/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>A fun\u00e7\u00e3o acima recebe um array de IDs de ambiente dos quais voc\u00ea deseja fazer backup (<code>environmentIds<\/code>). A fun\u00e7\u00e3o <code>createBackup(envId, tag)<\/code> aciona o backup para cada ambiente no array usando a fun\u00e7\u00e3o <code>createBackup()<\/code> (explicada na Etapa 2).<\/p>\n<h4>Etapa 2: Acionar o backup<\/h4>\n<p>Para acionar o backup real para cada ambiente, use o endpoint <code>POST \/sites\/environments\/{env_id}\/manual-backups<\/code> da API da Kinsta, como fizemos para todos os sites. Veja como isso funciona:<\/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>Etapa 3: Executar backups para ambientes selecionados<\/h4>\n<p>Agora que temos fun\u00e7\u00f5es para acionar backups e lidar com v\u00e1rios ambientes, podemos combin\u00e1-las para fazer backup de ambientes espec\u00edficos. Neste exemplo, assumimos que j\u00e1 temos os IDs dos ambientes que desejamos fazer 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>Nesse caso:<\/p>\n<ul>\n<li>O array <code>selectedEnvironments<\/code> cont\u00e9m os IDs de ambiente dos quais voc\u00ea deseja fazer backup.<\/li>\n<li>A fun\u00e7\u00e3o <code>backupSelectedEnvironments()<\/code> percorre cada ID e aciona o backup com a tag &#8216;Manual Backup&#8217;.<\/li>\n<\/ul>\n<h4>Exemplo de comando do Slack<\/h4>\n<p>Se voc\u00ea estiver usando um aplicativo Slack ou uma interface de linha de comando, tamb\u00e9m poder\u00e1 permitir que os usu\u00e1rios especifiquem quais ambientes devem fazer backup.<\/p>\n<p>Veja como voc\u00ea pode implementar isso em um aplicativo 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>O usu\u00e1rio insere um comando como <code>\/backup_selected_envs Backup-Tag 12345 67890<\/code>, em que <code>Backup-Tag<\/code> \u00e9 a tag e <code>12345, 67890<\/code> s\u00e3o os IDs de ambiente.<\/p>\n<p>O texto do comando \u00e9 dividido e os IDs dos ambientes s\u00e3o passados para a fun\u00e7\u00e3o <code>backupSelectedEnvironments()<\/code>.<\/p>\n<p>Ap\u00f3s acionar os backups, o aplicativo responde ao usu\u00e1rio confirmando o backup.<\/p>\n<h2>Agendamento de backups para seus sites WordPress<\/h2>\n<p>Uma das funcionalidades mais poderosas da automa\u00e7\u00e3o \u00e9 a capacidade de agendar tarefas em hor\u00e1rios espec\u00edficos, sem interven\u00e7\u00e3o manual.<\/p>\n<p>Agora que j\u00e1 falamos sobre como acionar backups para todos os sites e sites selecionados, a pr\u00f3xima etapa \u00e9 automatizar esses processos adicionando o agendamento.<\/p>\n<p>Se voc\u00ea quiser agendar backups localmente, em uma plataforma hospedada como a Kinsta ou dinamicamente via Slack, h\u00e1 v\u00e1rias maneiras de implementar isso.<\/p>\n<h3>Entendendo as express\u00f5es cron<\/h3>\n<p>Antes de explorar as diferentes abordagens de agendamento de backups, \u00e9 importante que voc\u00ea entenda as express\u00f5es cron, que s\u00e3o usadas para especificar o tempo das tarefas agendadas em v\u00e1rias plataformas e ferramentas.<\/p>\n<p>As express\u00f5es do cron definem quando uma tarefa deve ser executada. Elas s\u00e3o usadas em muitas bibliotecas e servi\u00e7os de agendamento, como <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 at\u00e9 mesmo em tarefas cron do lado do servidor, como as dispon\u00edveis na plataforma de <a href=\"https:\/\/sevalla.com\/application-hosting\/\">hospedagem de aplicativos da Kinsta<\/a>.<\/p>\n<p>As express\u00f5es do cron consistem em cinco campos, cada um controlando um aspecto espec\u00edfico de quando a tarefa deve ser executada. Uma express\u00e3o cron t\u00edpica tem a seguinte apar\u00eancia:<\/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>Vamos detalhar o que cada campo representa:<\/p>\n<ul>\n<li><strong>Minute<\/strong>: O minuto da hora em que a tarefa deve ser executada (0 &#8211; 59).<\/li>\n<li><strong>Hour<\/strong>: A hora do dia em que a tarefa deve ser executada (0 a 23).<\/li>\n<li><strong>Day of the month<\/strong>: O dia espec\u00edfico do m\u00eas em que a tarefa deve ser executada (1 a 31).<\/li>\n<li><strong>Month<\/strong>: O m\u00eas do ano em que voc\u00ea deve executar a tarefa (1 &#8211; 12).<\/li>\n<li><strong>Day of the week<\/strong>: O dia espec\u00edfico da semana para executar a tarefa (0 a 7, em que 0 e 7 representam domingo).<\/li>\n<\/ul>\n<p>Voc\u00ea pode usar valores espec\u00edficos, curingas (<code>*<\/code>) ou intervalos em cada campo para definir a agenda.<\/p>\n<p>Exemplos de express\u00f5es cron:<\/p>\n<ul>\n<li><code>0 0 * * *<\/code>: Todos os dias \u00e0 meia-noite (00:00)<\/li>\n<li><code>0 3 * * 1<\/code>: Toda segunda-feira \u00e0s 3h da manh\u00e3<\/li>\n<li><code>*\/10 * * * *<\/code>: A cada 10 minutos<\/li>\n<li><code>0 9-18 * * *<\/code>: A cada hora entre 9 e 18 horas.<\/li>\n<\/ul>\n<p>Com uma compreens\u00e3o s\u00f3lida das express\u00f5es cron, podemos agora avan\u00e7ar para diferentes m\u00e9todos de agendamento de backups para seus sites WordPress usando a API da Kinsta.<\/p>\n<h3>Abordagem 1: Agendamento local com node-cron<\/h3>\n<p>O pacote <a href=\"https:\/\/www.npmjs.com\/package\/node-cron\" target=\"_blank\" rel=\"noopener noreferrer\">node-cron<\/a> do Node.js pode executar tarefas agendadas com base em uma sintaxe semelhante \u00e0 do cron. \u00c9 ideal para executar tarefas autom\u00e1ticas em aplicativos locais ou independentes em Node.js, sendo uma escolha popular para agendar backups, enviar e-mails ou executar outras tarefas recorrentes.<\/p>\n<p>No node-cron, voc\u00ea define uma tarefa (como a fun\u00e7\u00e3o de backup) e usa uma express\u00e3o cron para especificar quando a tarefa deve ser executada. A express\u00e3o cron consiste em cinco campos que definem o minuto, a hora, o dia do m\u00eas, o m\u00eas e o dia da semana em que a tarefa deve ser executada.<\/p>\n<p>Primeiro, instale o node-cron em seu projeto:<\/p>\n<pre><code class=\"language-bash\">npm install node-cron<\/code><\/pre>\n<p>Digamos que voc\u00ea queira agendar um backup di\u00e1rio de todos os sites \u00e0 meia-noite usando o node-cron. Veja como voc\u00ea pode fazer isso:<\/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>Da mesma forma, se voc\u00ea quiser fazer o backup de ambientes selecionados \u00e0s 2h da manh\u00e3 todos os dias, poder\u00e1 program\u00e1-lo da seguinte forma:<\/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>Abordagem 2: Usando cron jobs em hospedagem na nuvem (como Kinsta)<\/h3>\n<p>Ao implantar seu aplicativo Node.js em uma plataforma como a Kinsta, voc\u00ea pode aproveitar a funcionalidade do <a href=\"https:\/\/docs.sevalla.com\/applications\/processes#cron-job-process\">Cron jobs<\/a> integrada para agendar tarefas como backups. No entanto, configurar cron jobs em ambientes de nuvem requer uma estrutura ligeiramente diferente das ferramentas de agendamento locais, como o node-cron.<\/p>\n<p>Quando voc\u00ea implanta seu aplicativo na Kinsta, ele precisa ter um processo web em execu\u00e7\u00e3o (mesmo que n\u00e3o esteja realmente atendendo ao tr\u00e1fego da web).<\/p>\n<p>Para garantir que seu projeto seja executado corretamente e n\u00e3o chame automaticamente as fun\u00e7\u00f5es de backup, voc\u00ea pode criar um arquivo que execute um servidor web simples. Esse arquivo atua como um processo web &#8220;fict\u00edcio&#8221;, enquanto os trabalhos do cron lidam com a l\u00f3gica de backup.<\/p>\n<p>Voc\u00ea pode adicionar este c\u00f3digo:<\/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>Dessa forma, voc\u00ea pode configurar o comando de script para distinguir entre o processo web (<code>start<\/code>) e o processo de cron jobs (<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>Por fim, configure o cron jobs na Kinsta para chamar a fun\u00e7\u00e3o de backup no hor\u00e1rio espec\u00edfico. Usando as configura\u00e7\u00f5es do cron job, voc\u00ea pode definir o comando para executar o backup.<\/p>\n<p>No painel MyKinsta, na aba <strong>Processos<\/strong> do aplicativo, configure o comando para o processo web como:<\/p>\n<pre><code class=\"language-bash\">npm run start<\/code><\/pre>\n<p>E defina o comando do Cron job para:<\/p>\n<pre><code class=\"language-bash\">npm run cron<\/code><\/pre>\n<p>Para executar o cron job em um hor\u00e1rio espec\u00edfico (todos os dias \u00e0s 11h30), defina a express\u00e3o cron assim:<\/p>\n<pre><code class=\"language-bash\">30 11 * * *<\/code><\/pre>\n<p>Este comando acionar\u00e1 a fun\u00e7\u00e3o <code>backupAllSites()<\/code> todos os dias \u00e0s 11:30 AM.<\/p>\n<figure style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2024\/10\/cron-job-app-hosting.png\" alt=\"Configura\u00e7\u00e3o de um cron job na hospedagem de aplicativos da Kinsta\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Configura\u00e7\u00e3o de um cron job na hospedagem de aplicativos da Kinsta<\/figcaption><\/figure>\n<p>Configurando um cron job na Hospedagem de Aplicativos da Kinsta.<\/p>\n<h3>Abordagem 3: Agendamento com node-schedule<\/h3>\n<p>Outra biblioteca Node.js, <a href=\"https:\/\/www.npmjs.com\/package\/node-schedule\" target=\"_blank\" rel=\"noopener noreferrer\">node-schedule<\/a>, pode agendar tarefas usando o formato cron e tamb\u00e9m suporta agendamentos mais complexos.<\/p>\n<p>Aqui est\u00e1 um exemplo que permite que os usu\u00e1rios agendem backups via Slack usando o formato cron do 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>Por exemplo, um usu\u00e1rio poderia executar o seguinte comando do Slack para agendar um backup para as 23h30:<\/p>\n<pre><code class=\"language-bash\">\/schedule_backup 23:30<\/code><\/pre>\n<p>Depois de executar esse comando, o backup ser\u00e1 programado para ser executado \u00e0s 23h30 todos os dias. A resposta do Slack pode ser semelhante a:<\/p>\n<pre><code class=\"language-bash\">Backup scheduled at 23:30 successfully.<\/code><\/pre>\n<p>Essa abordagem permite que os usu\u00e1rios agendem backups dinamicamente no Slack simplesmente especificando a hora sem precisar interagir com o servidor ou com o c\u00f3digo do aplicativo. \u00c9 uma maneira flex\u00edvel e poderosa de lidar com tarefas agendadas, como backups, de uma maneira f\u00e1cil de usar.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Se voc\u00ea gerencia sua equipe pelo Slack, pode clonar nosso <a href=\"https:\/\/github.com\/kinsta\/SlackBot-Kinsta-API\" target=\"_blank\" rel=\"noopener noreferrer\">projeto Slackbot<\/a>, que se integra \u00e0 API da Kinsta para lidar com v\u00e1rias opera\u00e7\u00f5es. Basta ajustar as <a href=\"https:\/\/github.com\/kinsta\/SlackBot-Kinsta-API?tab=readme-ov-file#environment-variables\" target=\"_blank\" rel=\"noopener noreferrer\">vari\u00e1veis de ambiente<\/a> para refletir seus segredos de API da Kinsta e do Slack, e voc\u00ea estar\u00e1 pronto para come\u00e7ar. Para obter instru\u00e7\u00f5es detalhadas de configura\u00e7\u00e3o e comandos dispon\u00edveis, consulte o <a href=\"https:\/\/github.com\/kinsta\/SlackBot-Kinsta-API\/blob\/main\/README.md\" target=\"_blank\" rel=\"noopener noreferrer\">arquivo README<\/a>.<\/p>\n<\/aside>\n\n<h2>Resumo<\/h2>\n<p>Agendar backups em v\u00e1rios sites WordPress \u00e9 bom para ag\u00eancias que gerenciam v\u00e1rios sites de clientes. Automatizar esses backups n\u00e3o apenas economiza tempo, mas tamb\u00e9m garante consist\u00eancia, reduz o risco de erro humano e proporciona tranquilidade.<\/p>\n<p><em>Essa solu\u00e7\u00e3o beneficiaria sua ag\u00eancia? Gostar\u00edamos muito de saber o que voc\u00ea pensa. Compartilhe-as na se\u00e7\u00e3o de coment\u00e1rios abaixo!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para as ag\u00eancias de WordPress que gerenciam v\u00e1rios sites de clientes, \u00e9 essencial ter uma estrat\u00e9gia de backup robusta. No caso de uma interrup\u00e7\u00e3o inesperada, falha &#8230;<\/p>\n","protected":false},"author":287,"featured_media":70144,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1073,951,983],"class_list":["post-70143","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-agencia","topic-api","topic-servicos-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>Agendamento de Backups para V\u00e1rios Sites com a API Kinsta<\/title>\n<meta name=\"description\" content=\"Este guia aborda v\u00e1rios m\u00e9todos, incluindo node-cron e cron jobs em nuvem, para simplificar o gerenciamento de backups para ag\u00eancias.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Agendamento de Backups para V\u00e1rios Sites com a API Kinsta\" \/>\n<meta property=\"og:description\" content=\"Este guia aborda v\u00e1rios m\u00e9todos, incluindo node-cron e cron jobs em nuvem, para simplificar o gerenciamento de backups para ag\u00eancias.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-04T08:06:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-10T14:24:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/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=\"Este guia aborda v\u00e1rios m\u00e9todos, incluindo node-cron e cron jobs em nuvem, para simplificar o gerenciamento de backups para ag\u00eancias.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/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_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinqsta.com\/pt\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Agendamento de Backups para V\u00e1rios Sites com a API Kinsta\",\"datePublished\":\"2024-11-04T08:06:46+00:00\",\"dateModified\":\"2024-12-10T14:24:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/\"},\"wordCount\":2466,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png\",\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/\",\"url\":\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/\",\"name\":\"Agendamento de Backups para V\u00e1rios Sites com a API Kinsta\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png\",\"datePublished\":\"2024-11-04T08:06:46+00:00\",\"dateModified\":\"2024-12-10T14:24:37+00:00\",\"description\":\"Este guia aborda v\u00e1rios m\u00e9todos, incluindo node-cron e cron jobs em nuvem, para simplificar o gerenciamento de backups para ag\u00eancias.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#primaryimage\",\"url\":\"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png\",\"contentUrl\":\"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png\",\"width\":1470,\"height\":735},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinqsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API\",\"item\":\"https:\/\/kinqsta.com\/pt\/topicos\/api\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Agendamento de Backups para V\u00e1rios Sites com a API Kinsta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinqsta.com\/pt\/#website\",\"url\":\"https:\/\/kinqsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinqsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinqsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinqsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinqsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"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:\/\/kinqsta.com\/pt\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinqsta.com\/pt\/#\/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:\/\/kinqsta.com\/pt\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Agendamento de Backups para V\u00e1rios Sites com a API Kinsta","description":"Este guia aborda v\u00e1rios m\u00e9todos, incluindo node-cron e cron jobs em nuvem, para simplificar o gerenciamento de backups para ag\u00eancias.","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:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/","og_locale":"pt_PT","og_type":"article","og_title":"Agendamento de Backups para V\u00e1rios Sites com a API Kinsta","og_description":"Este guia aborda v\u00e1rios m\u00e9todos, incluindo node-cron e cron jobs em nuvem, para simplificar o gerenciamento de backups para ag\u00eancias.","og_url":"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2024-11-04T08:06:46+00:00","article_modified_time":"2024-12-10T14:24:37+00:00","og_image":[{"width":1470,"height":735,"url":"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","type":"image\/png"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Este guia aborda v\u00e1rios m\u00e9todos, incluindo node-cron e cron jobs em nuvem, para simplificar o gerenciamento de backups para ag\u00eancias.","twitter_image":"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API-1024x512.png","twitter_creator":"@olawanle_joel","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Joel Olawanle","Tempo estimado de leitura":"15 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#article","isPartOf":{"@id":"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinqsta.com\/pt\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Agendamento de Backups para V\u00e1rios Sites com a API Kinsta","datePublished":"2024-11-04T08:06:46+00:00","dateModified":"2024-12-10T14:24:37+00:00","mainEntityOfPage":{"@id":"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/"},"wordCount":2466,"commentCount":0,"publisher":{"@id":"https:\/\/kinqsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/","url":"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/","name":"Agendamento de Backups para V\u00e1rios Sites com a API Kinsta","isPartOf":{"@id":"https:\/\/kinqsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#primaryimage"},"image":{"@id":"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","datePublished":"2024-11-04T08:06:46+00:00","dateModified":"2024-12-10T14:24:37+00:00","description":"Este guia aborda v\u00e1rios m\u00e9todos, incluindo node-cron e cron jobs em nuvem, para simplificar o gerenciamento de backups para ag\u00eancias.","breadcrumb":{"@id":"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#primaryimage","url":"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","contentUrl":"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","width":1470,"height":735},{"@type":"BreadcrumbList","@id":"https:\/\/kinqsta.com\/pt\/blog\/agendamento-backups-multiplos-sites-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinqsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"API","item":"https:\/\/kinqsta.com\/pt\/topicos\/api\/"},{"@type":"ListItem","position":3,"name":"Agendamento de Backups para V\u00e1rios Sites com a API Kinsta"}]},{"@type":"WebSite","@id":"https:\/\/kinqsta.com\/pt\/#website","url":"https:\/\/kinqsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinqsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinqsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinqsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinqsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinqsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinqsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinqsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","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:\/\/kinqsta.com\/pt\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinqsta.com\/pt\/#\/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:\/\/kinqsta.com\/pt\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinqsta.com\/pt\/wp-json\/wp\/v2\/posts\/70143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinqsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinqsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/pt\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/pt\/wp-json\/wp\/v2\/comments?post=70143"}],"version-history":[{"count":5,"href":"https:\/\/kinqsta.com\/pt\/wp-json\/wp\/v2\/posts\/70143\/revisions"}],"predecessor-version":[{"id":70170,"href":"https:\/\/kinqsta.com\/pt\/wp-json\/wp\/v2\/posts\/70143\/revisions\/70170"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinqsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/70143\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinqsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/70143\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinqsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/70143\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinqsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/70143\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinqsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/70143\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinqsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/70143\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinqsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/70143\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinqsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/70143\/translations\/es"},{"href":"https:\/\/kinqsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/70143\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/pt\/wp-json\/wp\/v2\/media\/70144"}],"wp:attachment":[{"href":"https:\/\/kinqsta.com\/pt\/wp-json\/wp\/v2\/media?parent=70143"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinqsta.com\/pt\/wp-json\/wp\/v2\/tags?post=70143"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinqsta.com\/pt\/wp-json\/wp\/v2\/topic?post=70143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}