﻿﻿{"id":1386,"date":"2025-10-15T11:14:36","date_gmt":"2025-10-15T09:14:36","guid":{"rendered":"https:\/\/elearningsamba.com\/index.php\/gobackup-pour-sauvegarder-vos-bases-de-donnees-facilement\/"},"modified":"2025-10-15T11:14:36","modified_gmt":"2025-10-15T09:14:36","slug":"gobackup-pour-sauvegarder-vos-bases-de-donnees-facilement","status":"publish","type":"page","link":"https:\/\/elearningsamba.com\/index.php\/gobackup-pour-sauvegarder-vos-bases-de-donnees-facilement\/","title":{"rendered":"GoBackup &#8211; Pour sauvegarder vos bases de donn\u00e9es facilement"},"content":{"rendered":"<p>Vous savez, ce script bash de backup que vous avez \u00e9crit en 2018 et que vous n\u2019osez plus toucher ? Celui avec les 150 lignes de mysqldump + tar + gzip + aws s3 cp qui marche \u00e0 moiti\u00e9 et que vous relancez manuellement quand il plante ?<\/p>\n<p>H\u00e9 bien vous allez pouvoir le foutre \u00e0 la poubelle parce que maintenant y\u2019a<br \/>\n<a href=\"https:\/\/github.com\/gobackup\/gobackup\">GoBackup<\/a><br \/>\n!<\/p>\n<p>GoBackup c\u2019est un binaire cod\u00e9 en Go qui remplace tous vos scripts de backup maison d\u2019un coup. MySQL, PostgreSQL, MongoDB, Redis, peu importe. Local, FTP, S3, Google Cloud, Azure, peu importe. Vous installez, vous configurez un fichier YAML, et c\u2019est fini.<\/p>\n<p>Ensuite, vous n\u2019aurez plus jamais besoin de retoucher \u00e0 tout ce bordel.<\/p>\n<p>Avant GoBackup y\u2019avait backup\/backup, une gem Ruby qui faisait exactement ce job avec de la sauvegarde automatique, multi-bases, multi-destinations et c\u2019\u00e9tait bien. Sauf que Ruby c\u2019est lourd et les d\u00e9pendances Ruby c\u2019est l\u2019enfer. Du coup le projet est mort tout doucement. Heureusement, huacnlee, un dev chinois, en a eu marre alors il a tout r\u00e9\u00e9crit en Go. Z\u00e9ro d\u00e9pendance externe et un seul binaire compil\u00e9 (installable aussi avec Brew pour ceux qui sont sous macOS).<\/p>\n<p>Vous pouvez l\u2019installer comme ceci (v\u00e9rifiez le script) :<\/p>\n<div class=\"highlight\">\n<pre class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">curl -sSL https:\/\/gobackup.github.io\/install | sh\n<\/span><\/span><\/code><\/pre>\n<p>Ou via homebrew comme ceci :<\/p>\n<div class=\"highlight\">\n<pre class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">brew install gobackup\n<\/span><\/span><\/code><\/pre>\n<p>Avec GoBackup, vous d\u00e9finissez vos bases de donn\u00e9es, vos fichiers \u00e0 archiver, vos destinations de stockage, votre planning, tout dans un fichier YAML propre et ensuite le binaire g\u00e8re tout : Compression, chiffrement, upload, rotation des backups, notifications si \u00e7a \u00e9choue\u2026etc. Bref, tout ce que vous faisiez \u00e0 la main avec vos scripts pourris.<\/p>\n<p>Et GoBackup est pas juste un CLI (Interface en ligne de commande). C\u2019est un CLI + un daemon + une Web UI + un scheduler. Comme \u00e7a vous lancez \u201c<em>gobackup start<\/em>\u201d et \u00e7a tourne en background.<\/p>\n<p>Le daemon surveille alors le planning d\u00e9fini dans votre config et lance les backups automatiquement. Et l\u2019interface web vous permet de voir l\u2019\u00e9tat des backups, les logs, les erreurs.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/installation\/installation-2.png\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Avec GoBackup, vous remplacez litt\u00e9ralement 5 outils en un : votre script bash + cron + un monitoring pourri + un truc pour lire les logs + l\u2019interface d\u2019admin que vous avez jamais eu le temps de faire.<\/p>\n<p>Votre config ressemble \u00e0 \u00e7a :<\/p>\n<div class=\"highlight\">\n<pre class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">models:\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> mon_app:\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> compress:\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> type: tgz\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> databases:\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> mon_mysql:\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> type: mysql\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> host: localhost\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> database: ma_base\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> username: user\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> password: $MYSQL_PASSWORD\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> storages:\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> mon_s3:\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> type: s3\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> bucket: mes-backups\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> region: eu-west-1\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> access_key_id: $AWS_KEY\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> secret_access_key: $AWS_SECRET\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> schedule:\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> every: 1day\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> at: \"04:05\"\n<\/span><\/span><\/code><\/pre>\n<p>Et c\u2019est tout. Avec ce fichier, GoBackup dump votre base MySQL tous les jours \u00e0 4h05, compresse en .tar.gz, chiffre si vous voulez, et upload sur S3. Et si \u00e7a \u00e9choue vous recevez une notif. Et si \u00e7a marche vous avez les logs comme \u00e7a, pas besoin de surveiller, ni de d\u00e9bugger \u00e0 3h du matin parce que le backup a plant\u00e9 et que vous avez perdu 6 mois de donn\u00e9es.<\/p>\n<p>Notez quand m\u00eame que GoBackup fait du backup classique, et pas du backup incr\u00e9mental intelligent \u00e0 la Restic ou \u00e0 la Borg donc si vous avez 500 GB de donn\u00e9es \u00e0 backup tous les jours vous allez peut-\u00eatre pr\u00e9f\u00e9rer un outil plus sophistiqu\u00e9 mais pour 90% des cas d\u2019usage sysadmin standard,<br \/>\n<a href=\"https:\/\/github.com\/gobackup\/gobackup\">GoBackup<\/a><br \/>\nsuffira largement.<\/p>\n<p>Votre script bash d\u00e9geu a eu une belle vie, il peut maintenant partir \u00e0 la retraite.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Vous savez, ce script bash de backup que vous avez \u00e9crit en 2018 et que vous n\u2019osez plus toucher ? Celui avec les 150 lignes de mysqldump + tar + gzip + aws s3 cp qui marche \u00e0 moiti\u00e9 et que vous relancez manuellement quand il plante ? H\u00e9 bien vous allez pouvoir le foutre \u00e0 la poubelle parce que maintenant y\u2019a GoBackup ! GoBackup c\u2019est un binaire cod\u00e9 en Go qui remplace tous vos scripts de backup maison d\u2019un coup. MySQL, PostgreSQL, MongoDB, Redis, peu importe. Local, FTP, S3, Google Cloud, Azure, peu importe. Vous installez, vous configurez un fichier YAML, et c\u2019est fini. Ensuite, vous n\u2019aurez plus jamais besoin de retoucher \u00e0 tout ce bordel. Avant GoBackup y\u2019avait backup\/backup, une gem Ruby qui faisait exactement ce job avec de la sauvegarde automatique, multi-bases, multi-destinations et c\u2019\u00e9tait bien. Sauf que Ruby c\u2019est lourd et les d\u00e9pendances Ruby c\u2019est l\u2019enfer. Du coup le projet est mort tout doucement. Heureusement, huacnlee, un dev chinois, en a eu marre alors il a tout r\u00e9\u00e9crit en Go. Z\u00e9ro d\u00e9pendance externe et un seul binaire compil\u00e9 (installable aussi avec Brew pour ceux qui sont sous macOS). Vous pouvez l\u2019installer comme ceci (v\u00e9rifiez le script) : curl -sSL https:\/\/gobackup.github.io\/install | sh Ou via homebrew comme ceci : brew install gobackup Avec GoBackup, vous d\u00e9finissez vos bases de donn\u00e9es, vos fichiers \u00e0 archiver, vos destinations de stockage, votre planning, tout dans un fichier YAML propre et ensuite le binaire g\u00e8re tout : Compression, chiffrement, upload, rotation des backups, notifications si \u00e7a \u00e9choue\u2026etc. Bref, tout ce que vous faisiez \u00e0 la main avec vos scripts pourris. Et GoBackup est pas juste un CLI (Interface en ligne de commande). C\u2019est un CLI + un daemon + une Web UI + un scheduler. Comme \u00e7a vous lancez \u201cgobackup start\u201d et \u00e7a tourne en background. Le daemon surveille alors le planning d\u00e9fini dans votre config et lance les backups automatiquement. Et l\u2019interface web vous permet de voir l\u2019\u00e9tat des backups, les logs, les erreurs. Avec GoBackup, vous remplacez litt\u00e9ralement 5 outils en un : votre script bash + cron + un monitoring pourri + un truc pour lire les logs + l\u2019interface d\u2019admin que vous avez jamais eu le temps de faire. Votre config ressemble \u00e0 \u00e7a : models: mon_app: compress: type: tgz databases: mon_mysql: type: mysql host: localhost database: ma_base username: user password: $MYSQL_PASSWORD storages: mon_s3: type: s3 bucket: mes-backups region: eu-west-1 access_key_id: $AWS_KEY secret_access_key: $AWS_SECRET schedule: every: 1day at: &#8220;04:05&#8221; Et c\u2019est tout. Avec ce fichier, GoBackup dump votre base MySQL tous les jours \u00e0 4h05, compresse en .tar.gz, chiffre si vous voulez, et upload sur S3. Et si \u00e7a \u00e9choue vous recevez une notif. Et si \u00e7a marche vous avez les logs comme \u00e7a, pas besoin de surveiller, ni de d\u00e9bugger \u00e0 3h du matin parce que le backup a plant\u00e9 et que vous avez perdu 6 mois de donn\u00e9es. Notez quand m\u00eame que GoBackup fait du backup classique, et pas du backup incr\u00e9mental intelligent \u00e0 la Restic ou \u00e0 la Borg donc si vous avez 500 GB de donn\u00e9es \u00e0 backup tous les jours vous allez peut-\u00eatre pr\u00e9f\u00e9rer un outil plus sophistiqu\u00e9 mais pour 90% des cas d\u2019usage sysadmin standard, GoBackup suffira largement. Votre script bash d\u00e9geu a eu une belle vie, il peut maintenant partir \u00e0 la retraite.<\/p>\n","protected":false},"author":1,"featured_media":1387,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kadence_starter_templates_imported_post":false,"footnotes":""},"class_list":["post-1386","page","type-page","status-publish","has-post-thumbnail","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/1386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/comments?post=1386"}],"version-history":[{"count":0,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/1386\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media\/1387"}],"wp:attachment":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media?parent=1386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}