{"id":482,"date":"2010-08-12T10:33:18","date_gmt":"2010-08-12T08:33:18","guid":{"rendered":"http:\/\/www.netexpertise.eu\/fr\/?p=482"},"modified":"2021-10-16T07:31:54","modified_gmt":"2021-10-16T06:31:54","slug":"sauvegarder-repertoire-smodifie","status":"publish","type":"post","link":"http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html","title":{"rendered":"Sauvegarder un r\u00e9pertoire si modifi\u00e9"},"content":{"rendered":"\n<p>J&rsquo;utilise ce script afin de garder une copie locale de mon r\u00e9pertoire tftp sur <a href=\"\/fr\/category\/systeme\/linux\">Linux<\/a>. Il conserve l&rsquo;archive seulement si des modifications ont \u00e9t\u00e9 apport\u00e9es. Il me permet de restaurer plus rapidement qu&rsquo;un logiciel de <a href=\"\/fr\/category\/systeme\/sauvegarde\">sauvegarde<\/a> traditionnel, qui peut \u00eatre utilis\u00e9 en compl\u00e9ment pour s\u00e9curiser les sauvegardes ailleurs.<br>Le script peut \u00eatre employ\u00e9 sur tout autre r\u00e9pertoire \u00e9videmment. Voici un exemple de fichiers g\u00e9n\u00e9r\u00e9s sur un serveur TFTP:<br>&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">[root@serveur_tftp backup]$ ls -l\n-rw-r----- 1 tftp tftp   124200 May  1 04:04 tftp-20100501.tgz\n-rw-r----- 1 tftp tftp  2108159 May 13 04:04 tftp-20100513.tgz\n-rw-r----- 1 tftp tftp  2108165 May 18 04:04 tftp-20100518.tgz\n-rw-r----- 1 tftp tftp  2108442 May 20 04:04 tftp-20100520.tgz\n-rw-r----- 1 tftp tftp  2108545 Jun  1 04:04 tftp-20100601.tgz\n-rw-r----- 1 tftp tftp   126382 Jun  3 04:04 tftp-20100603.tgz\n-rw-r----- 1 tftp tftp   126426 Aug  5 04:04 tftp-20100805.tgz\n-rw-r----- 1 tftp tftp   126485 Aug  7 04:04 tftp-20100807.tgz\n-rw-r----- 1 tftp tftp   126486 Aug 11 04:04 tftp-20100811.tgz<\/code><\/pre>\n\n\n\n<p>&nbsp;<br>Cr\u00e9ez une t\u00e2che sous cron pour l&rsquo;automatiser compl\u00e8tement chaque jour<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">#!\/bin\/bash\n\n# Changer ces param\u00e8tres selon ses besoins\ndir_to_backup=\/tftpboot\n# Noms du fichier et chemin du r\u00e9pertoire de sauvegarde\nbackup_dir=\/tmp\/backup\nbackup_file=tftp\n# Nom du fichier d'archive zipp\u00e9 en sortie\nof=$backup_dir\/$backup_file-$(date +%Y%m%d).tgz\n# propri\u00e9taire et groupe du fichier de sauvegarde\nowner=tftp\ngowner=tftp\ntmpfile=\/tmp\/$backup_file.tar\n# Nombre de versions de sauvegarde \u00e0 conserver\nbackup_number=24\n\n# Sauvegarde\ncd $dir_to_backup\n# Les commandes tar et zip ont \u00e9t\u00e9 s\u00e9par\u00e9es\n# pour cr\u00e9er des fichiers au checksum identique\n# au cas o\u00f9 auncun changement n'a eu lieu\ntar cf $tmpfile .\n# L'archive est supprim\u00e9e si le checksum est identique \u00e0 celui du dernier fichier\n# On ne sauvegarde pas le timestamp pour garder un checksum consistant sur des jours diff\u00e9rents\ngzip -cn $tmpfile &gt; $of\nrm -f $tmpfile\nchmod 640 $of\nchown $owner:$gowner $of\n\n# La nouvelle archive est effac\u00e9e si le checksum de la derni\u00e8re sauvegarde est identique\n[ `ls -1t $backup_dir\/$backup_file-*.tgz \\\n  | head -2 \\\n  | xargs md5sum \\\n  | awk '{print $1}' \\\n  | uniq \\\n  | wc -l` -eq 1 ] \\\n&amp;&amp; rm -f $of\n\n# Supprime les anciennes versions\n# Conserve les 30 derni\u00e8res sauvegardes\nls -1rt $backup_dir\/$backup_file-*.tgz \\\n  | head -n -$backup_number \\\n  | xargs rm -f<\/code><\/pre>\n\n\n\n<p><br>Une solution alternative consisterait \u00e0 r\u00e9cup\u00e9rer la date de la derni\u00e8re sauvegarde, chercher dans le r\u00e9pertoire s&rsquo;il existe des fichiers modifi\u00e9s depuis, et ne cr\u00e9er le zip que dans ce cas pr\u00e9cis.<br><br>Le script n\u00e9cessite des ajustements mineurs pour s&rsquo;ex\u00e9cuter sur MacOS sur lequel la commande checksum md5sum est remplac\u00e9e par md5. md5 de MacOS retourne un output diff\u00e9rent.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>J&rsquo;utilise ce script afin de garder une copie locale de mon r\u00e9pertoire tftp sur Linux. Il conserve l&rsquo;archive seulement si des modifications ont \u00e9t\u00e9 apport\u00e9es. Il me permet de restaurer plus rapidement qu&rsquo;un logiciel de sauvegarde traditionnel, qui peut \u00eatre utilis\u00e9 en compl\u00e9ment pour s\u00e9curiser les sauvegardes ailleurs.Le script peut \u00eatre employ\u00e9 sur tout autre [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false},"categories":[10,360],"tags":[126,407,133],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Netexpertise - Sauvegarder un r\u00e9pertoire si modifi\u00e9<\/title>\n<meta name=\"description\" content=\"Sauvegardez un r\u00e9pertoire chaque jour seulement si ses fichiers ont \u00e9t\u00e9 modifi\u00e9ss, puis conservez les x derni\u00e8res versions zipp\u00e9es\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Netexpertise - Sauvegarder un r\u00e9pertoire si modifi\u00e9\" \/>\n<meta property=\"og:description\" content=\"Sauvegardez un r\u00e9pertoire chaque jour seulement si ses fichiers ont \u00e9t\u00e9 modifi\u00e9ss, puis conservez les x derni\u00e8res versions zipp\u00e9es\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html\" \/>\n<meta property=\"og:site_name\" content=\"Netexpertise\" \/>\n<meta property=\"article:published_time\" content=\"2010-08-12T08:33:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-10-16T06:31:54+00:00\" \/>\n<meta name=\"author\" content=\"dave\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@netexpertise\" \/>\n<meta name=\"twitter:site\" content=\"@netexpertise\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html\",\"url\":\"http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html\",\"name\":\"Netexpertise - Sauvegarder un r\u00e9pertoire si modifi\u00e9\",\"isPartOf\":{\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/#website\"},\"datePublished\":\"2010-08-12T08:33:18+00:00\",\"dateModified\":\"2021-10-16T06:31:54+00:00\",\"author\":{\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632\"},\"description\":\"Sauvegardez un r\u00e9pertoire chaque jour seulement si ses fichiers ont \u00e9t\u00e9 modifi\u00e9ss, puis conservez les x derni\u00e8res versions zipp\u00e9es\",\"breadcrumb\":{\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"http:\/\/www.netexpertise.eu\/fr\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sauvegarder un r\u00e9pertoire si modifi\u00e9\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/#website\",\"url\":\"http:\/\/www.netexpertise.eu\/fr\/\",\"name\":\"Netexpertise\",\"description\":\"Syst\u00e8mes \/ R\u00e9seaux \/ DevOps\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.netexpertise.eu\/fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632\",\"name\":\"dave\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g\",\"contentUrl\":\"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g\",\"caption\":\"dave\"},\"sameAs\":[\"http:\/\/www.netexpertise.eu\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Netexpertise - Sauvegarder un r\u00e9pertoire si modifi\u00e9","description":"Sauvegardez un r\u00e9pertoire chaque jour seulement si ses fichiers ont \u00e9t\u00e9 modifi\u00e9ss, puis conservez les x derni\u00e8res versions zipp\u00e9es","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":"http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html","og_locale":"fr_FR","og_type":"article","og_title":"Netexpertise - Sauvegarder un r\u00e9pertoire si modifi\u00e9","og_description":"Sauvegardez un r\u00e9pertoire chaque jour seulement si ses fichiers ont \u00e9t\u00e9 modifi\u00e9ss, puis conservez les x derni\u00e8res versions zipp\u00e9es","og_url":"http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html","og_site_name":"Netexpertise","article_published_time":"2010-08-12T08:33:18+00:00","article_modified_time":"2021-10-16T06:31:54+00:00","author":"dave","twitter_card":"summary_large_image","twitter_creator":"@netexpertise","twitter_site":"@netexpertise","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html","url":"http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html","name":"Netexpertise - Sauvegarder un r\u00e9pertoire si modifi\u00e9","isPartOf":{"@id":"http:\/\/www.netexpertise.eu\/fr\/#website"},"datePublished":"2010-08-12T08:33:18+00:00","dateModified":"2021-10-16T06:31:54+00:00","author":{"@id":"http:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632"},"description":"Sauvegardez un r\u00e9pertoire chaque jour seulement si ses fichiers ont \u00e9t\u00e9 modifi\u00e9ss, puis conservez les x derni\u00e8res versions zipp\u00e9es","breadcrumb":{"@id":"http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/www.netexpertise.eu\/fr\/systeme\/linux\/sauvegarder-repertoire-smodifie.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"http:\/\/www.netexpertise.eu\/fr"},{"@type":"ListItem","position":2,"name":"Sauvegarder un r\u00e9pertoire si modifi\u00e9"}]},{"@type":"WebSite","@id":"http:\/\/www.netexpertise.eu\/fr\/#website","url":"http:\/\/www.netexpertise.eu\/fr\/","name":"Netexpertise","description":"Syst\u00e8mes \/ R\u00e9seaux \/ DevOps","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.netexpertise.eu\/fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"http:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632","name":"dave","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"http:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/image\/","url":"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g","contentUrl":"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g","caption":"dave"},"sameAs":["http:\/\/www.netexpertise.eu"]}]}},"_links":{"self":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/posts\/482"}],"collection":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/comments?post=482"}],"version-history":[{"count":0,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/posts\/482\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/media?parent=482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/categories?post=482"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/tags?post=482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}