{"id":7217,"date":"2020-05-15T20:36:36","date_gmt":"2020-05-15T18:36:36","guid":{"rendered":"https:\/\/monodes.com\/predaelli\/?p=7217"},"modified":"2020-05-15T09:53:12","modified_gmt":"2020-05-15T07:53:12","slug":"copie-intelligenti","status":"publish","type":"post","link":"https:\/\/monodes.com\/predaelli\/2020\/05\/15\/copie-intelligenti\/","title":{"rendered":"Copie intelligenti"},"content":{"rendered":"\n<p>Mi \u00e8 sempre piaciuta l&#8217;idea di avere copie &#8220;intelligenti&#8221;, ossia<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>una copia al giorno per una settimana <\/li><li>una copia alla settimana per un mese<\/li><li>una copia al mese per un anno<\/li><li>una copia all&#8217;anno per la parte vecchia.<\/li><\/ul>\n\n\n\n<p>E mi son sempre arrovellato su come implementarlo nel mio umile scriptino bash con cui facevo alcune copie di sicurezza. <sup class=\"modern-footnotes-footnote \" data-mfn=\"1\" data-mfn-post-scope=\"00000000000007bc0000000000000000_7217\"><a href=\"javascript:void(0)\"  role=\"button\" aria-pressed=\"false\" aria-describedby=\"mfn-content-00000000000007bc0000000000000000_7217-1\">1<\/a><\/sup><span id=\"mfn-content-00000000000007bc0000000000000000_7217-1\" role=\"tooltip\" class=\"modern-footnotes-footnote__note\" tabindex=\"0\" data-mfn=\"1\">(che poi nemmeno era uno scriptino, ma addirittura una riga di cron! <code class=\"\" data-line=\"\">mount $QNAP; if cd $QNAP\/Calcestruzzo\/;then mv qualita.tar.bz2 qualita.old.tar.bz2; tar -acf qualita.tar.bz2 $QUALITA\/*; else echo Errore;fi<\/code> )<\/span><\/p>\n\n\n\n<!--more-->\n\n\n\n<p>E la pigrizia vinceva e mi tenevo solo gli ultimi due. Poi, complice una quasi perdita di dati <sup class=\"modern-footnotes-footnote \" data-mfn=\"2\" data-mfn-post-scope=\"00000000000007bc0000000000000000_7217\"><a href=\"javascript:void(0)\"  role=\"button\" aria-pressed=\"false\" aria-describedby=\"mfn-content-00000000000007bc0000000000000000_7217-2\">2<\/a><\/sup><span id=\"mfn-content-00000000000007bc0000000000000000_7217-2\" role=\"tooltip\" class=\"modern-footnotes-footnote__note\" tabindex=\"0\" data-mfn=\"2\">(una pirlata da pivello totale da cui mi son salvato solo perch\u00e9 prima della serrata ho fatto su un disco esterno delle copie manuali del tutto) <\/span>durante la serrata per l&#8217;emergenza sanitaria mi sono accorto che esistono arnesi (strumenti, o &#8220;tool&#8221;) come <a href=\"https:\/\/monodes.com\/predaelli\/2020\/05\/04\/7161\/\">rdiff-backup<\/a> che offrono contemporaneamente una copia intera dell&#8217;ultima versione dei dati e retrodifferenze che permettono di ricostruire la storia dei backup. <\/p>\n\n\n\n<p>E non so pi\u00f9 cosa usare, tipo asino di buridano. Perch\u00e9 l&#8217;idea di rdiff-backup \u00e8 davvero valida, ma non ti permette di mantere uno storico &#8220;selettivo&#8221; come piacerebbe a me. Tanto pi\u00f9 che c&#8217;\u00e8 un modo facilissimo per ottenere quelle copie intelligenti (vedi <a href=\"https:\/\/serverfault.com\/questions\/575163\/how-to-keep-daily-backups-for-a-week-weekly-for-a-month-monthly-for-a-year-a\">How to keep: daily backups for a week, weekly for a month, monthly for a year, and yearly after that<\/a> ): basta tenere separata in una cartella diversa ogni categoria (quotidiana, settimanale, mensile, annuale). Cos\u00ec:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Every day:<ul><li>make a backup, put into <code class=\"\" data-line=\"\">daily<\/code> directory<\/li><li>remove everything but the last 7 <code class=\"\" data-line=\"\">daily<\/code> backups<\/li><\/ul><\/li><li>Every week:<ul><li>make a backup, put into <code class=\"\" data-line=\"\">weekly<\/code> directory<\/li><li>remove everything but the last 5 <code class=\"\" data-line=\"\">weekly<\/code> backups<\/li><\/ul><\/li><li>Every month:<ul><li>make a backup, put into <code class=\"\" data-line=\"\">monthly<\/code> directory<\/li><li>remove everything but the last 12 <code class=\"\" data-line=\"\">monthly<\/code> backups<\/li><\/ul><\/li><li>Every year:<ul><li>make a backup, put into <code class=\"\" data-line=\"\">yearly<\/code> directory<\/li><\/ul><\/li><\/ul>\n\n\n\n<p>Cavolo, \u00e8 l&#8217;uovo di Colombo! Roba che si implementa con un cronjob da 4 righe ed uno script bash che si fa prima a leggerlo che a spiegarlo!<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">@daily \/home\/paolo\/bin\/copie-qualita.sh quotidiane\n@weekly \/home\/paolo\/bin\/copie-qualita.sh settimanali\n@monthly \/home\/paolo\/bin\/copie-qualita.sh mensili\n@yearly \/home\/paolo\/bin\/copie-qualita.sh annuali<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">#!\/bin\/bash\n\nQUALITA=\/home\/qualita\nQNAP=\/mnt\/qnap\/Public\n\nQUOTIDIANE=$QNAP\/Calcestruzzo\/qualita\/quotidiane\nSETTIMANALI=$QNAP\/Calcestruzzo\/qualita\/settimanali\nMENSILI=$QNAP\/Calcestruzzo\/qualita\/mensili\nANNUALI=$QNAP\/Calcestruzzo\/qualita\/annuali\n\ncase $FREQUENZA in\n  quotidiane)\n    DESTINAZIONE=$QUOTIDIANE\/qualita-$( date +%F ).tar.bz2 \n    DELENDA=$QUOTIDIANE\n    MANTENENDA=7\n    ;;\n  settimanali)\n    DESTINAZIONE=$SETTIMANALI\/qualita-$(date +%F).tar.bz2 \n    DELENDA=$SETTIMANALI\n    MANTENENDA=4\n     ;;\n  mensili)\n    DESTINAZIONE=$MENSILI\/qualita-$(date +%F).tar.bz2 \n    DELENDA=$MENSILI\n    MANTENENDA=12\n     ;;\n  annuali)\n    DESTINAZIONE=$ANNUALI\/qualita-$(date +%F).tar.bz2 \n    ;;\n  *)\n    echo &quot;Usage: $0 (quotidiane|settimanali|mensili|annuali)&quot;\n    exit 5\nesac\n\necho Copie $FREQUENZA da $QUALITA a $DESTINAZIONE\nmount $QNAP &amp;&amp; \n  tar --auto-compress --create --file $DESTINAZIONE $QUALITA\/* &amp;&amp;\n  if [[ $FREQUENZA != &quot;annuali&quot; ]]\n  then\n    echo In $DELENDA conservo gli ultimi $MANTENENDA file\n    rm --verbose --force $( ls $DELENDA | head --lines=-$MANTENENDA )\n  fi\n<\/code><\/pre>\n\n\n\n<p>Poi Va bene, va bene, i percorsi sono codificati nello script e non in un file di configurazione. Ma accipuffa, in prima battuta l&#8217;avevo scritta in <strong>una<\/strong> riga!<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"\" data-line=\"\">mount $QNAP &amp;&amp;  tar --auto-compress --create --file $DESTINAZIONE $QUALITA\/* &amp;&amp;  rm --verbose --force $( ls $DELENDA | head --lines=-$MANTENENDA )<\/code><\/pre>\n\n\n\n<p>Credo che per un po&#8217; lo affiancher\u00f2 a rdiff-backup<\/p>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">Mi \u00e8 sempre piaciuta l&#8217;idea di avere copie &#8220;intelligenti&#8221;, ossia una copia al giorno per una settimana una copia alla settimana per un mese una copia al mese per un anno una copia all&#8217;anno per la parte vecchia. E mi son sempre arrovellato su come implementarlo nel mio umile scriptino bash con cui facevo alcune&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/monodes.com\/predaelli\/2020\/05\/15\/copie-intelligenti\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[72],"tags":[254,260,273,274],"class_list":["post-7217","post","type-post","status-publish","format-standard","hentry","category-documentations","tag-backup","tag-bash","tag-cronjob","tag-rdiff-backup"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6daft-1Sp","jetpack-related-posts":[{"id":3976,"url":"https:\/\/monodes.com\/predaelli\/2018\/04\/02\/fulmine-rosso\/","url_meta":{"origin":7217,"position":0},"title":"Fulmine rosso!","author":"Paolo Redaelli","date":"2018-04-02","format":false,"excerpt":"Fulmine Rosso! \"E' pi\u00f9 oscuro del crepuscolo, \u00e9 pi\u00f9 rosso del sangue, \u00e9 sepolto sotto la marea del tempo... In nome della pace e della giustizia Io voglio fare appello a tutti i poteri pi\u00f9 remoti dell'oscurit\u00e0. Ho bisogno di loro perch\u00e9 mi aiutino a distruggere per sempre i miei\u2026","rel":"","context":"In &quot;Copyright&quot;","block_context":{"text":"Copyright","link":"https:\/\/monodes.com\/predaelli\/category\/copyright\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/04\/img_20171119_1552001864396266.jpg?fit=1200%2C900&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/04\/img_20171119_1552001864396266.jpg?fit=1200%2C900&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/04\/img_20171119_1552001864396266.jpg?fit=1200%2C900&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/04\/img_20171119_1552001864396266.jpg?fit=1200%2C900&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2018\/04\/img_20171119_1552001864396266.jpg?fit=1200%2C900&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3949,"url":"https:\/\/monodes.com\/predaelli\/2018\/03\/31\/piccole-magie\/","url_meta":{"origin":7217,"position":1},"title":"Piccole magie","author":"Paolo Redaelli","date":"2018-03-31","format":false,"excerpt":"Trasformare un sito Wordpress in un sito HTML statico Dovevo fare una copia di un sito Wordpress e archiviarlo, ma volevo qualcosa che all\u2019eventuale ripristino non mi costringesse ad installare un database server (alla MySQL) e un server web. Ci sono tanti modi per farlo; l\u2019ho fatto con Wget, una\u2026","rel":"","context":"In &quot;Documentations&quot;","block_context":{"text":"Documentations","link":"https:\/\/monodes.com\/predaelli\/category\/documentations\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":6326,"url":"https:\/\/monodes.com\/predaelli\/2019\/12\/25\/un-pensierino\/","url_meta":{"origin":7217,"position":2},"title":"Un pensierino","author":"Paolo Redaelli","date":"2019-12-25","format":false,"excerpt":"Tutti amano Thunderbird, anche chi lo usa su Windows. Anzi soprattutto chi lo usa sul famigerato sistema operativo proprietario perch\u00e9 l'altrettanto famigerato Outlook sembra rendere impossibili cose che con Thunderbird son semplicissime, come per esempio cercare qualcosa in pi\u00f9 cartelle ed account contemporaneamente. Ora magari si potr\u00e0 fare anche con\u2026","rel":"","context":"In &quot;Software&quot;","block_context":{"text":"Software","link":"https:\/\/monodes.com\/predaelli\/category\/software\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2019\/12\/LocalFolders-win.png?fit=1062%2C742&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2019\/12\/LocalFolders-win.png?fit=1062%2C742&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2019\/12\/LocalFolders-win.png?fit=1062%2C742&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2019\/12\/LocalFolders-win.png?fit=1062%2C742&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2019\/12\/LocalFolders-win.png?fit=1062%2C742&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":5191,"url":"https:\/\/monodes.com\/predaelli\/2019\/02\/11\/5191\/","url_meta":{"origin":7217,"position":3},"title":"Quale ambientazione?","author":"Paolo Redaelli","date":"2019-02-11","format":false,"excerpt":"Cari Cattonerd, vi ho scoperto da poco, ma vi ammiro per la passione con cui presentate la bellezza della Vera Fede alle nuove generazioni! Mi raccomando continuate a seguire le orme di San Filippo Neri e San Giovanni Bosco nel CyberSpazio! Sono un pap\u00e0 fuori, nerd dentro che chiede il\u2026","rel":"","context":"In &quot;Games&quot;","block_context":{"text":"Games","link":"https:\/\/monodes.com\/predaelli\/category\/games\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2019\/02\/cattonerd-logo-2014-1.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":5344,"url":"https:\/\/monodes.com\/predaelli\/2019\/03\/12\/perche-prima-a-chiunque-e-poi-a-nessuno\/","url_meta":{"origin":7217,"position":4},"title":"Perch\u00e9 prima a chiunque e poi a nessuno?","author":"Paolo Redaelli","date":"2019-03-12","format":false,"excerpt":"Non riesco a capire perch\u00e9 non hanno semplicemente iniziato a distribuire i sorgenti solo ai clienti paganti e\/o rilasciare sotto AGPLv3... Perch\u00e9 prima a chiunque e poi a nessuno? La GPL non \"obbliga\" a rilasciare i sorgenti indiscriminatamente ma a rilasciarli solo a chi usa il programma o riceve una\u2026","rel":"","context":"In &quot;Proprietary software&quot;","block_context":{"text":"Proprietary software","link":"https:\/\/monodes.com\/predaelli\/category\/software\/proprietary-software\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2019\/03\/invoicex-su-fb.jpeg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2019\/03\/invoicex-su-fb.jpeg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2019\/03\/invoicex-su-fb.jpeg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":8053,"url":"https:\/\/monodes.com\/predaelli\/2021\/01\/13\/lvm-cache-su-ssd\/","url_meta":{"origin":7217,"position":5},"title":"LVM Cache su SSD","author":"Paolo Redaelli","date":"2021-01-13","format":false,"excerpt":"24 Maggio 2020 giomba ha pubblicato la guida LVM Cache su SSD. La mia macchina principale \u00e8 configurata esattamente come la sua all'inizio, anche se io ne sono abbastanza soddisfatto. In fin dei conti \u00e8 un towerone pensato per poter essere aggiornato a pezzi man mano. Per\u00f2 l'idea di mettere\u2026","rel":"","context":"In &quot;Documentations&quot;","block_context":{"text":"Documentations","link":"https:\/\/monodes.com\/predaelli\/category\/documentations\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2021\/01\/lvmcache4-2.png?fit=477%2C221&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/7217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/comments?post=7217"}],"version-history":[{"count":0,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/7217\/revisions"}],"wp:attachment":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/media?parent=7217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/categories?post=7217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/tags?post=7217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}