{"id":78429,"date":"2024-11-04T09:03:37","date_gmt":"2024-11-04T08:03:37","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=78429&#038;preview=true&#038;preview_id=78429"},"modified":"2024-12-10T15:23:47","modified_gmt":"2024-12-10T14:23:47","slug":"planifier-sauvegardes-kinsta-api","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/","title":{"rendered":"Planifier des sauvegardes pour plusieurs sites avec l&rsquo;API Kinsta"},"content":{"rendered":"<p>Pour les <a href=\"https:\/\/kinsta.com\/fr\/blog\/creer-agence-wordpress\/\">agences WordPress<\/a> qui g\u00e8rent plusieurs sites web de clients, il est essentiel d&rsquo;avoir une <a href=\"https:\/\/kinsta.com\/fr\/blog\/fonctionnalites-sauvegardes-kinsta\/\">strat\u00e9gie de sauvegarde<\/a> solide. En cas de panne inattendue, de d\u00e9faillance d&rsquo;une extension ou d&rsquo;erreur humaine, les sauvegardes garantissent que les donn\u00e9es peuvent \u00eatre rapidement restaur\u00e9es &#8211; minimisant ainsi les temps d&rsquo;arr\u00eat et r\u00e9duisant les risques pour les clients.<\/p>\n<p>Chez Kinsta, nous comprenons le r\u00f4le critique que jouent les sauvegardes, c&rsquo;est pourquoi nous offrons <a href=\"https:\/\/kinsta.com\/fr\/docs\/hebergement-wordpress\/sauvegardes-wordpress\/\">six options de sauvegarde<\/a> : automatique quotidienne, optionnelle horaire (et toutes les six heures), manuelle, g\u00e9n\u00e9r\u00e9e par le syst\u00e8me, t\u00e9l\u00e9chargeable, et sauvegardes externes envoy\u00e9es directement \u00e0 Amazon S3 ou Google Cloud Storage.<\/p>\n<p>Bien que la gestion de ces sauvegardes soit simple via le tableau de bord <a href=\"https:\/\/kinsta.com\/fr\/mykinsta\/\">MyKinsta<\/a>, l&rsquo;<a href=\"https:\/\/kinsta.com\/fr\/docs\/api-kinsta\/\">API de Kinsta<\/a> offre de grandes possibilit\u00e9s d&rsquo;automatisation des processus r\u00e9p\u00e9titifs.<\/p>\n<p>Imaginez qu&rsquo;il vous suffise de saisir une commande dans Slack ou de configurer une t\u00e2che cron pour d\u00e9clencher des sauvegardes pour tous vos sites WordPress dans votre compte d&rsquo;agence Kinsta sans avoir \u00e0 naviguer manuellement dans des dizaines, voire des centaines de tableaux de bord de sites.<\/p>\n<p>Cette flexibilit\u00e9 est l&rsquo;un des nombreux avantages d&rsquo;utiliser un h\u00e9bergeur qui donne la priorit\u00e9 aux besoins de ses clients en leur fournissant les outils n\u00e9cessaires pour cr\u00e9er des solutions personnalis\u00e9es qui permettent de gagner du temps.<\/p>\n<p>Ce guide explique comment exploiter l&rsquo;API de Kinsta pour automatiser les sauvegardes sur plusieurs sites. Que vous int\u00e9griez votre pile pr\u00e9f\u00e9r\u00e9e, que vous utilisiez des outils comme Slack ou que vous mettiez en place des calendriers automatis\u00e9s, ce guide vous fournit les connaissances n\u00e9cessaires pour rationaliser votre processus de sauvegarde et am\u00e9liorer votre flux de travail.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Si vous n&rsquo;\u00eates pas familier avec les diff\u00e9rents points de terminaison de sauvegarde disponibles via l&rsquo;API Kinsta, assurez-vous de consulter notre guide d\u00e9taill\u00e9 sur la <a href=\"https:\/\/kinsta.com\/fr\/blog\/sauvegardes-wordpress-api\/\">gestion des sauvegardes WordPress dans Slack avec l&rsquo;API Kinsta<\/a>. Il explique comment utiliser efficacement les diff\u00e9rents points de terminaison de sauvegarde.<\/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>Mettre en place des sauvegardes pour tous les sites et les sites s\u00e9lectionn\u00e9s<\/h2>\n<p>Avant de plonger dans la planification, il est important de comprendre comment d\u00e9clencher des sauvegardes pour tous les sites de votre compte Kinsta et comment cibler des sites ou des environnements sp\u00e9cifiques en utilisant l&rsquo;API Kinsta.<\/p>\n<p>Une fois que nous avons les bases pour cr\u00e9er des sauvegardes, nous pouvons facilement int\u00e9grer la planification pour automatiser le processus.<\/p>\n<h3>D\u00e9clencher des sauvegardes pour tous les sites d&rsquo;un compte Kinsta<\/h3>\n<p>Comme pour toutes les API, il n&rsquo;y a pas toujours un seul point de terminaison pour faire tout ce dont vous avez besoin &#8211; vous devez souvent combiner plusieurs points de terminaison pour obtenir le r\u00e9sultat souhait\u00e9.<\/p>\n<p>L&rsquo;API Kinsta n&rsquo;est pas diff\u00e9rente. Bien qu&rsquo;il existe des points de terminaison sp\u00e9cifiques pour la gestion des sauvegardes, ces points de terminaison n\u00e9cessitent certains param\u00e8tres, tels que les ID d&rsquo;environnement, que vous obtenez en effectuant des requ\u00eates suppl\u00e9mentaires \u00e0 d&rsquo;autres points de terminaison.<\/p>\n<p>Par exemple, pour d\u00e9clencher une sauvegarde manuelle d&rsquo;un site, vous avez besoin de l&rsquo;identifiant de l&rsquo;environnement en question. Pour obtenir l&rsquo;ID de l&rsquo;environnement, vous devez d&rsquo;abord obtenir l&rsquo;ID du site. Cela signifie que vous devez effectuer plusieurs appels \u00e0 l&rsquo;API : un pour obtenir l&rsquo;ID du site, un autre pour r\u00e9cup\u00e9rer l&rsquo;ID de l&rsquo;environnement et, enfin, une requ\u00eate pour d\u00e9clencher la sauvegarde.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Bien que les exemples de ce guide soient bas\u00e9s sur <a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-javascript\/\">JavaScript<\/a>, la logique peut facilement \u00eatre appliqu\u00e9e \u00e0 d&rsquo;autres <a href=\"https:\/\/kinsta.com\/fr\/blog\/meilleur-langage-programmation-apprendre\/\">langages de programmation<\/a>, tels que <a href=\"https:\/\/kinsta.com\/fr\/blog\/installer-python\/\">Python<\/a>, selon vos pr\u00e9f\u00e9rences.<\/p>\n<p>Si vous utilisez l&rsquo;API Kinsta pour la premi\u00e8re fois, vous devez cr\u00e9er une cl\u00e9 API. Consultez <a href=\"https:\/\/kinsta.com\/fr\/blog\/cle-api-kinsta\/\">ce guide sur la cr\u00e9ation et l&rsquo;utilisation de la cl\u00e9 API Kinsta<\/a> pour commencer.<\/p>\n<\/aside>\n\n<h4>\u00c9tape 1 : R\u00e9cup\u00e9rer tous les sites WordPress avec l&rsquo;API Kinsta<\/h4>\n<p>La premi\u00e8re \u00e9tape consiste \u00e0 r\u00e9cup\u00e9rer une liste de tous les sites associ\u00e9s \u00e0 votre compte Kinsta. L&rsquo;API de Kinsta fournit un point de terminaison pour r\u00e9cup\u00e9rer ces donn\u00e9es, qui comprennent les ID des sites, les noms et d&rsquo;autres d\u00e9tails pertinents. En utilisant le point de terminaison <code>GET \/sites<\/code>, vous pouvez obtenir une liste de tous les sites sous le compte de votre entreprise.<\/p>\n<p>Voici un exemple utilisant Node.js et <a href=\"https:\/\/kinsta.com\/fr\/blog\/requetes-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>Cette fonction renvoie un tableau de tous les sites de votre compte. Chaque site contient des informations telles que l&rsquo;identifiant, le nom et l&rsquo;environnement du site.<\/p>\n<h4>\u00c9tape 2 : R\u00e9cup\u00e9rer les identifiants d&rsquo;environnement pour chaque site WordPress<\/h4>\n<p>Chaque site peut avoir plusieurs environnements (comme production ou staging), et les sauvegardes sont d\u00e9clench\u00e9es par environnement. Pour r\u00e9cup\u00e9rer les identifiants d&rsquo;environnement pour chaque site, vous faites un autre appel API au point de terminaison <code>GET \/sites\/{site_id}\/environments<\/code>.<\/p>\n<p>Voici un exemple de fonction qui r\u00e9cup\u00e8re les environnements pour un site sp\u00e9cifique :<\/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>\u00c9tape 3 : D\u00e9clencher des sauvegardes pour chaque environnement<\/h4>\n<p>Une fois que vous avez les identifiants d&rsquo;environnement, vous pouvez d\u00e9clencher des sauvegardes pour chaque environnement \u00e0 l&rsquo;aide du point de terminaison <code>POST \/sites\/environments\/{env_id}\/manual-backups<\/code>. L&rsquo;API vous permet de cr\u00e9er une sauvegarde manuelle en fournissant un identifiant d&rsquo;environnement et un libell\u00e9 facultatif pour identifier la sauvegarde.<\/p>\n<p>Voici comment d\u00e9clencher une sauvegarde pour un environnement donn\u00e9 :<\/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>Cette fonction d\u00e9clenche une sauvegarde manuelle pour l&rsquo;identifiant d&rsquo;environnement donn\u00e9. Vous pouvez \u00e9galement labelliser votre sauvegarde pour faciliter son identification.<\/p>\n<h4>\u00c9tape 4 : Automatiser les sauvegardes pour tous les sites<\/h4>\n<p>Maintenant que vous disposez de fonctions pour rechercher tous les sites, r\u00e9cup\u00e9rer les identifiants d&rsquo;environnement et d\u00e9clencher des sauvegardes, vous pouvez les combiner pour cr\u00e9er un script qui automatise les sauvegardes pour chaque site de votre compte Kinsta.<\/p>\n<p>Voici comment vous pouvez lier le tout :<\/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>Cette fonction parcourt tous les sites, r\u00e9cup\u00e8re leurs environnements et d\u00e9clenche des sauvegardes pour chaque environnement avec une balise horodat\u00e9e.<\/p>\n<p>Maintenant, lorsque vous ex\u00e9cutez <code>backupAllSites()<\/code>, cela d\u00e9clenche une sauvegarde pour chaque environnement dans votre compte Kinsta.<\/p>\n<h4>Exemple de commande Slack<\/h4>\n<p>Vous pouvez int\u00e9grer ce processus de sauvegarde dans une commande Slack pour une gestion encore plus facile. Avec une <a href=\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/\">application Slack configur\u00e9e<\/a>, les utilisateurs peuvent d\u00e9clencher des sauvegardes sur tous les sites avec une seule commande comme <code>\/backup_all_sites<\/code>.<\/p>\n<p>Voici un exemple rapide de la fa\u00e7on dont cela pourrait fonctionner :<\/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>D\u00e9clencher des sauvegardes pour des sites s\u00e9lectionn\u00e9s \u00e0 l&rsquo;aide d&rsquo;identifiants d&rsquo;environnement<\/h3>\n<p>Dans certains cas, vous pouvez vouloir d\u00e9clencher des sauvegardes pour des sites ou des environnements sp\u00e9cifiques plut\u00f4t que pour tous les sites de votre compte Kinsta. Cela peut \u00eatre utile si vous souhaitez sauvegarder uniquement des environnements de production ou certains sites prioritaires.<\/p>\n<p>En utilisant l&rsquo;API Kinsta, nous pouvons automatiser les sauvegardes pour des environnements s\u00e9lectionn\u00e9s en passant un tableau d&rsquo;ID d&rsquo;environnement. Voyons comment mettre cela en \u0153uvre.<\/p>\n<h4>\u00c9tape 1 : Transmettre les ID d&rsquo;environnement<\/h4>\n<p>Lorsque vous souhaitez d\u00e9clencher des sauvegardes pour des sites s\u00e9lectionn\u00e9s, vous avez besoin des ID d&rsquo;environnement pour ces sites. Vous pouvez soit coder ces ID en dur, soit les r\u00e9cup\u00e9rer depuis l&rsquo;API Kinsta, soit les passer dynamiquement (comme par un argument de ligne de commande, une commande Slack, etc.)<\/p>\n<p>Voici une fonction qui accepte un tableau d&rsquo;ID d&rsquo;environnement et d\u00e9clenche des sauvegardes pour chacun d&rsquo;entre eux :<\/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 fonction ci-dessus re\u00e7oit un tableau d&rsquo;identifiants d&rsquo;environnement que vous souhaitez sauvegarder (<code>environmentIds<\/code>). La fonction <code>createBackup(envId, tag)<\/code> d\u00e9clenche la sauvegarde pour chaque environnement du tableau \u00e0 l&rsquo;aide de la fonction <code>createBackup()<\/code> (expliqu\u00e9e \u00e0 l&rsquo;\u00e9tape 2).<\/p>\n<h4>\u00c9tape 2 : D\u00e9clencher la sauvegarde<\/h4>\n<p>Pour d\u00e9clencher la sauvegarde pour chaque environnement, utilisez le point de terminaison <code>POST \/sites\/environments\/{env_id}\/manual-backups<\/code> de l&rsquo;API Kinsta comme nous l&rsquo;avons fait pour tous les sites. Voici comment cela fonctionne :<\/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>\u00c9tape 3 : Ex\u00e9cuter les sauvegardes pour les environnements s\u00e9lectionn\u00e9s<\/h4>\n<p>Maintenant que nous avons des fonctions pour d\u00e9clencher des sauvegardes et g\u00e9rer des environnements multiples, nous pouvons les combiner pour sauvegarder des environnements sp\u00e9cifiques. Cet exemple suppose que nous disposons d\u00e9j\u00e0 des identifiants d&rsquo;environnement que nous souhaitons sauvegarder.<\/p>\n<pre><code class=\"language-js\">const selectedEnvironments = ['12345', '67890']; \/\/ Replace with actual environment IDs\nbackupSelectedEnvironments(selectedEnvironments, 'Manual Backup');<\/code><\/pre>\n<p>Dans ce cas :<\/p>\n<ul>\n<li>Le tableau <code>selectedEnvironments<\/code> contient les identifiants de l&rsquo;environnement que vous souhaitez sauvegarder.<\/li>\n<li>La fonction <code>backupSelectedEnvironments()<\/code> parcourt en boucle chaque ID et d\u00e9clenche la sauvegarde avec le label \u00ab Mnual Backup \u00bb.<\/li>\n<\/ul>\n<h4>Exemple de commande Slack<\/h4>\n<p>Si vous utilisez une application Slack ou une interface de ligne de commande, vous pouvez \u00e9galement permettre aux utilisateurs de sp\u00e9cifier les environnements \u00e0 sauvegarder.<\/p>\n<p>Voici comment vous pourriez mettre cela en \u0153uvre dans une application 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&rsquo;utilisateur saisit une commande telle que <code>\/backup_selected_envs Backup-Tag 12345 67890<\/code>, o\u00f9 <code>Backup-Tag<\/code> est la balise et <code>12345, 67890<\/code> les identifiants de l&rsquo;environnement.<\/p>\n<p>Le texte de la commande est scind\u00e9 et les identifiants d&rsquo;environnement sont transmis \u00e0 la fonction <code>backupSelectedEnvironments()<\/code>.<\/p>\n<p>Apr\u00e8s avoir d\u00e9clench\u00e9 les sauvegardes, l&rsquo;application r\u00e9pond \u00e0 l&rsquo;utilisateur en confirmant la sauvegarde.<\/p>\n<h2>Planifier des sauvegardes pour vos sites WordPress<\/h2>\n<p>L&rsquo;un des aspects les plus puissants de l&rsquo;automatisation est la possibilit\u00e9 de programmer des t\u00e2ches \u00e0 des moments pr\u00e9cis sans intervention manuelle.<\/p>\n<p>Maintenant que nous avons vu comment d\u00e9clencher des sauvegardes pour tous les sites et les sites s\u00e9lectionn\u00e9s, la prochaine \u00e9tape est d&rsquo;automatiser ces processus en ajoutant la planification.<\/p>\n<p>Que vous souhaitiez planifier des sauvegardes localement, sur une plateforme h\u00e9berg\u00e9e comme Kinsta, ou dynamiquement via Slack, il existe plusieurs fa\u00e7ons de mettre cela en \u0153uvre.<\/p>\n<h3>Comprendre les expressions cron<\/h3>\n<p>Avant d&rsquo;explorer les diff\u00e9rentes approches de la planification des sauvegardes, il est important de comprendre les expressions cron, qui sont utilis\u00e9es pour sp\u00e9cifier le calendrier des t\u00e2ches planifi\u00e9es sur diverses plateformes et outils.<\/p>\n<p>Les expressions cron d\u00e9finissent le moment o\u00f9 une t\u00e2che doit \u00eatre ex\u00e9cut\u00e9e. Elles sont utilis\u00e9es dans de nombreuses biblioth\u00e8ques et services de planification, tels que <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>, et m\u00eame les travaux cron c\u00f4t\u00e9 serveur comme ceux disponibles dans la plateforme d&rsquo;<a href=\"https:\/\/sevalla.com\/application-hosting\/\">h\u00e9bergement d&rsquo;applications de Kinsta<\/a>.<\/p>\n<p>Les expressions cron se composent de cinq champs, chacun contr\u00f4lant un aspect sp\u00e9cifique du moment o\u00f9 la t\u00e2che doit \u00eatre ex\u00e9cut\u00e9e. Une expression cron typique ressemble \u00e0 ceci :<\/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>Voyons ce que chaque champ repr\u00e9sente :<\/p>\n<ul>\n<li><strong>Minute <\/strong>: La minute de l&rsquo;heure \u00e0 laquelle la t\u00e2che doit \u00eatre ex\u00e9cut\u00e9e (0 &#8211; 59).<\/li>\n<li><strong>Hour <\/strong>: L&rsquo;heure de la journ\u00e9e \u00e0 laquelle la t\u00e2che doit \u00eatre ex\u00e9cut\u00e9e (0 &#8211; 23).<\/li>\n<li><strong>Day of the month <\/strong>: Le jour sp\u00e9cifique du mois o\u00f9 la t\u00e2che doit \u00eatre ex\u00e9cut\u00e9e (1 &#8211; 31).<\/li>\n<li><strong>Month <\/strong>: Le mois de l&rsquo;ann\u00e9e au cours duquel la t\u00e2che doit \u00eatre ex\u00e9cut\u00e9e (1 &#8211; 12).<\/li>\n<li><strong>Day of the week <\/strong>: Le jour sp\u00e9cifique de la semaine o\u00f9 la t\u00e2che doit \u00eatre ex\u00e9cut\u00e9e (0 &#8211; 7, o\u00f9 0 et 7 repr\u00e9sentent tous deux le dimanche).<\/li>\n<\/ul>\n<p>Vous pouvez utiliser des valeurs sp\u00e9cifiques, des caract\u00e8res g\u00e9n\u00e9riques (<code>*<\/code>) ou des plages dans chaque champ pour d\u00e9finir la planification.<\/p>\n<p>Exemples d&rsquo;expressions cron :<\/p>\n<ul>\n<li><code>0 0 * * *<\/code>: Tous les jours \u00e0 minuit (00:00)<\/li>\n<li><code>0 3 * * 1<\/code>: Tous les lundis \u00e0 3 heures du matin<\/li>\n<li><code>*\/10 * * * *<\/code>: Toutes les 10 minutes<\/li>\n<li><code>0 9-18 * * *<\/code>: Toutes les heures entre 9 heures et 18 heures.<\/li>\n<\/ul>\n<p>Avec une solide compr\u00e9hension des expressions cron, nous pouvons maintenant passer aux diff\u00e9rentes m\u00e9thodes de planification des sauvegardes pour vos sites WordPress en utilisant l&rsquo;API Kinsta.<\/p>\n<h3>Approche 1 : Planification locale avec node-cron<\/h3>\n<p>Le paquetage Node.js <a href=\"https:\/\/www.npmjs.com\/package\/node-cron\" target=\"_blank\" rel=\"noopener noreferrer\">node-cron<\/a> permet d&rsquo;ex\u00e9cuter des t\u00e2ches planifi\u00e9es bas\u00e9es sur une syntaxe de type cron. Il est id\u00e9al pour ex\u00e9cuter des t\u00e2ches automatis\u00e9es dans des applications Node.js locales ou autonomes, et c&rsquo;est un choix populaire pour programmer des sauvegardes, envoyer des e-mails ou ex\u00e9cuter d&rsquo;autres t\u00e2ches r\u00e9currentes.<\/p>\n<p>Dans node-cron, vous d\u00e9finissez une t\u00e2che (comme votre fonction de sauvegarde) et utilisez une expression cron pour sp\u00e9cifier quand la t\u00e2che doit s&rsquo;ex\u00e9cuter. L&rsquo;expression cron se compose de cinq champs qui d\u00e9finissent la minute, l&rsquo;heure, le jour du mois, le mois et le jour de la semaine o\u00f9 la t\u00e2che doit \u00eatre ex\u00e9cut\u00e9e.<\/p>\n<p>Tout d&rsquo;abord, installez node-cron dans votre projet :<\/p>\n<pre><code class=\"language-bash\">npm install node-cron<\/code><\/pre>\n<p>Supposons que vous souhaitiez planifier une sauvegarde quotidienne de tous les sites \u00e0 minuit \u00e0 l&rsquo;aide de node-cron. Voici comment vous pouvez le faire :<\/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>De m\u00eame, si vous souhaitez sauvegarder des environnements s\u00e9lectionn\u00e9s \u00e0 2 heures du matin tous les jours, vous pouvez le programmer comme ceci :<\/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>Approche 2 : Utilisation de t\u00e2ches cron dans l&rsquo;h\u00e9bergement cloud (comme Kinsta)<\/h3>\n<p>Lorsque vous d\u00e9ployez votre application Node.js sur une plateforme comme celle de Kinsta, vous pouvez exploiter la fonctionnalit\u00e9 de <a href=\"https:\/\/docs.sevalla.com\/applications\/processes#cron-job-process\">t\u00e2ches cron<\/a> int\u00e9gr\u00e9e \u00e0 la plateforme pour planifier des t\u00e2ches telles que les sauvegardes. Cependant, la configuration des t\u00e2ches cron dans les environnements cloud n\u00e9cessite une structure l\u00e9g\u00e8rement diff\u00e9rente des outils de planification locaux comme node-cron.<\/p>\n<p>Lorsque vous d\u00e9ployez votre application sur Kinsta, elle doit avoir un processus web en cours d&rsquo;ex\u00e9cution (m\u00eame si elle ne sert pas r\u00e9ellement le trafic web).<\/p>\n<p>Pour vous assurer que votre projet fonctionne correctement et n&rsquo;appelle pas automatiquement des fonctions de sauvegarde, vous pouvez cr\u00e9er un fichier qui ex\u00e9cute un simple serveur web. Ce fichier agit comme un processus web \u00ab factice \u00bb, tandis que les t\u00e2ches cron g\u00e8rent la logique de sauvegarde.<\/p>\n<p>Vous pouvez ajouter ce code :<\/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>De cette mani\u00e8re, vous pouvez mettre en place une commande de script pour distinguer le processus web (<code>start<\/code>) du processus de la t\u00e2che cron (<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>Enfin, configurez la t\u00e2che cron dans Kinsta pour appeler votre fonction de sauvegarde \u00e0 l&rsquo;heure sp\u00e9cifi\u00e9e. En utilisant les param\u00e8tres de la t\u00e2che cron, vous pouvez d\u00e9finir la commande pour ex\u00e9cuter la sauvegarde.<\/p>\n<p>Dans l&rsquo;onglet <strong>Processus<\/strong> des applications du tableau de bord MyKinsta, d\u00e9finissez la commande pour le processus web :<\/p>\n<pre><code class=\"language-bash\">npm run start<\/code><\/pre>\n<p>Et d\u00e9finissez la commande de la t\u00e2che cron comme ceci :<\/p>\n<pre><code class=\"language-bash\">npm run cron<\/code><\/pre>\n<p>Pour ex\u00e9cuter le travail cron \u00e0 une heure pr\u00e9cise (tous les jours \u00e0 11h30), d\u00e9finissez l&rsquo;expression cron comme suit :<\/p>\n<pre><code class=\"language-bash\">30 11 * * *<\/code><\/pre>\n<p>Cette commande d\u00e9clenchera la fonction <code>backupAllSites()<\/code> tous les jours \u00e0 11h30.<\/p>\n<figure 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=\"Configurer une t\u00e2che cron dans l'h\u00e9bergement d'applications de Kinsta.\" width=\"1001\" height=\"471\"><figcaption class=\"wp-caption-text\">Configurer une t\u00e2che cron dans l&rsquo;h\u00e9bergement d&rsquo;applications de Kinsta.<\/figcaption><\/figure>\n<p>Configuration d&rsquo;une t\u00e2che cron dans l&rsquo;h\u00e9bergement d&rsquo;applications de Kinsta.<\/p>\n<h3>Approche 3 : Planification avec node-schedule<\/h3>\n<p>Une autre biblioth\u00e8que Node.js, <a href=\"https:\/\/www.npmjs.com\/package\/node-schedule\" target=\"_blank\" rel=\"noopener noreferrer\">node-schedule<\/a>, peut planifier des t\u00e2ches en utilisant le format cron et prend \u00e9galement en charge des planifications plus complexes.<\/p>\n<p>Voici un exemple qui permet aux utilisateurs de planifier des sauvegardes via Slack en utilisant le format cron de 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>Par exemple, un utilisateur peut ex\u00e9cuter la commande Slack suivante pour planifier une sauvegarde \u00e0 23 h 30 :<\/p>\n<pre><code class=\"language-bash\">\/schedule_backup 23:30<\/code><\/pre>\n<p>Apr\u00e8s avoir ex\u00e9cut\u00e9 cette commande, la sauvegarde sera programm\u00e9e pour s&rsquo;ex\u00e9cuter \u00e0 23h30 tous les jours. La r\u00e9ponse de Slack pourrait ressembler \u00e0 ceci :<\/p>\n<pre><code class=\"language-bash\">Backup scheduled at 23:30 successfully.<\/code><\/pre>\n<p>Cette approche permet aux utilisateurs de planifier dynamiquement des sauvegardes \u00e0 partir de Slack en sp\u00e9cifiant simplement l&rsquo;heure sans avoir besoin d&rsquo;interagir avec le serveur ou le code de l&rsquo;application. Il s&rsquo;agit d&rsquo;un moyen flexible et puissant de g\u00e9rer des t\u00e2ches planifi\u00e9es telles que les sauvegardes de mani\u00e8re conviviale.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Si vous g\u00e9rez votre \u00e9quipe via Slack, vous pouvez cloner notre <a href=\"https:\/\/github.com\/kinsta\/SlackBot-Kinsta-API\" target=\"_blank\" rel=\"noopener noreferrer\">projet Slackbot<\/a>, qui s&rsquo;int\u00e8gre \u00e0 l&rsquo;API Kinsta pour g\u00e9rer diverses op\u00e9rations. Ajustez simplement les <a href=\"https:\/\/github.com\/kinsta\/SlackBot-Kinsta-API?tab=readme-ov-file#environment-variables\" target=\"_blank\" rel=\"noopener noreferrer\">variables d&rsquo;environnement<\/a> pour refl\u00e9ter vos secrets d&rsquo;API Kinsta et Slack, et vous serez pr\u00eat \u00e0 partir. Pour des instructions d&rsquo;installation d\u00e9taill\u00e9es et les commandes disponibles, consultez le <a href=\"https:\/\/github.com\/kinsta\/SlackBot-Kinsta-API\/blob\/main\/README.md\" target=\"_blank\" rel=\"noopener noreferrer\">fichier README<\/a>.<\/p>\n<\/aside>\n\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Planifier des sauvegardes sur plusieurs sites WordPress est int\u00e9ressant pour les agences qui g\u00e8rent de nombreux sites web de clients. Automatiser ces sauvegardes permet non seulement de gagner du temps, mais aussi d&rsquo;assurer la coh\u00e9rence, de r\u00e9duire le risque d&rsquo;erreur humaine et d&rsquo;assurer la tranquillit\u00e9 d&rsquo;esprit.<\/p>\n<p><em>Cette solution serait-elle utile \u00e0 votre agence ? Nous aimerions savoir ce que vous en pensez. Partagez-les dans la section des commentaires ci-dessous !<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pour les agences WordPress qui g\u00e8rent plusieurs sites web de clients, il est essentiel d&rsquo;avoir une strat\u00e9gie de sauvegarde solide. En cas de panne inattendue, de &#8230;<\/p>\n","protected":false},"author":287,"featured_media":78430,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1070,953,985],"class_list":["post-78429","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-agence","topic-api","topic-services-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>Planifier des sauvegardes pour plusieurs sites avec l&#039;API de Kinsta<\/title>\n<meta name=\"description\" content=\"Ce guide aborde diff\u00e9rents moyens, notamment node-cron, des t\u00e2ches cron bas\u00e9es sur le cloud pour rationaliser la gestion des sauvegardes pour les agences.\" \/>\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\/fr\/blog\/planifier-sauvegardes-kinsta-api\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Planifier des sauvegardes pour plusieurs sites avec l&#039;API Kinsta\" \/>\n<meta property=\"og:description\" content=\"Ce guide aborde diff\u00e9rents moyens, notamment node-cron, des t\u00e2ches cron bas\u00e9es sur le cloud pour rationaliser la gestion des sauvegardes pour les agences.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-04T08:03:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-10T14:23:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/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=\"Ce guide aborde diff\u00e9rents moyens, notamment node-cron, des t\u00e2ches cron bas\u00e9es sur le cloud pour rationaliser la gestion des sauvegardes pour les agences.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/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_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Planifier des sauvegardes pour plusieurs sites avec l&rsquo;API Kinsta\",\"datePublished\":\"2024-11-04T08:03:37+00:00\",\"dateModified\":\"2024-12-10T14:23:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/\"},\"wordCount\":2777,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/\",\"name\":\"Planifier des sauvegardes pour plusieurs sites avec l'API de Kinsta\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png\",\"datePublished\":\"2024-11-04T08:03:37+00:00\",\"dateModified\":\"2024-12-10T14:23:47+00:00\",\"description\":\"Ce guide aborde diff\u00e9rents moyens, notamment node-cron, des t\u00e2ches cron bas\u00e9es sur le cloud pour rationaliser la gestion des sauvegardes pour les agences.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png\",\"width\":1470,\"height\":735},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API\",\"item\":\"https:\/\/kinsta.com\/fr\/sujets\/api\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Planifier des sauvegardes pour plusieurs sites avec l&#8217;API Kinsta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/fr\/#website\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"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\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/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\/fr\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Planifier des sauvegardes pour plusieurs sites avec l'API de Kinsta","description":"Ce guide aborde diff\u00e9rents moyens, notamment node-cron, des t\u00e2ches cron bas\u00e9es sur le cloud pour rationaliser la gestion des sauvegardes pour les agences.","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\/fr\/blog\/planifier-sauvegardes-kinsta-api\/","og_locale":"fr_FR","og_type":"article","og_title":"Planifier des sauvegardes pour plusieurs sites avec l'API Kinsta","og_description":"Ce guide aborde diff\u00e9rents moyens, notamment node-cron, des t\u00e2ches cron bas\u00e9es sur le cloud pour rationaliser la gestion des sauvegardes pour les agences.","og_url":"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2024-11-04T08:03:37+00:00","article_modified_time":"2024-12-10T14:23:47+00:00","og_image":[{"width":1470,"height":735,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","type":"image\/png"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Ce guide aborde diff\u00e9rents moyens, notamment node-cron, des t\u00e2ches cron bas\u00e9es sur le cloud pour rationaliser la gestion des sauvegardes pour les agences.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API-1024x512.png","twitter_creator":"@olawanle_joel","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Joel Olawanle","Dur\u00e9e de lecture estim\u00e9e":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Planifier des sauvegardes pour plusieurs sites avec l&rsquo;API Kinsta","datePublished":"2024-11-04T08:03:37+00:00","dateModified":"2024-12-10T14:23:47+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/"},"wordCount":2777,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/","url":"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/","name":"Planifier des sauvegardes pour plusieurs sites avec l'API de Kinsta","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","datePublished":"2024-11-04T08:03:37+00:00","dateModified":"2024-12-10T14:23:47+00:00","description":"Ce guide aborde diff\u00e9rents moyens, notamment node-cron, des t\u00e2ches cron bas\u00e9es sur le cloud pour rationaliser la gestion des sauvegardes pour les agences.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2024\/11\/schedule-backup-for-multiple-sites-with-kinsta-API.png","width":1470,"height":735},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/planifier-sauvegardes-kinsta-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"API","item":"https:\/\/kinsta.com\/fr\/sujets\/api\/"},{"@type":"ListItem","position":3,"name":"Planifier des sauvegardes pour plusieurs sites avec l&#8217;API Kinsta"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/fr\/#website","url":"https:\/\/kinsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","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\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/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\/fr\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/78429","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=78429"}],"version-history":[{"count":7,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/78429\/revisions"}],"predecessor-version":[{"id":78450,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/78429\/revisions\/78450"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/78429\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/78429\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/78429\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/78429\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/78429\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/78429\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/78429\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/78429\/translations\/es"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/78429\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/78430"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=78429"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=78429"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=78429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}