Archives For 2BrightSparks SyncBack

Quando si parla di backup lo scopo principale del gioco è sempre e solo uno: cercare di non perdere i propri file. Che tu li voglia salvare in copia singola o doppia poco importa, ciò che spesso serve è la delocalizzazione dei file per evitare che il Single Point of Failure sia dietro l’angolo (ho i file sul disco in casa! Ok, e se ti entrano in casa?). Per fare questo mestiere esistono già diverse soluzioni NAS in grado di replicarsi tra loro anche su differenti reti fisiche e in Cloud, ma se volessimo farlo tramite RPi?

Dato che ci stiamo per addentrare un po’ più nella ciccia, è il momento giusto per il doveroso (e assente da un po’) …

Attenzione: articolo ad alto tasso di tecnicismi lavorativi, nerditudine, viaggi mentali che potrebbero non interessare ai più, comunque vada perdete ogni speranza o voi che leggete.
RPi3 e rclone: sincronizzazione dei file tra locale e Cloud

source: unsplash.com / author: Fredy Jacob

rclone

Si chiama rclone e permette di sincronizzare file (in più modi / vie) tra locale e Cloud, non necessariamente con ambo i protagonisti presi in causa. Cosa vuol dire? Vuol dire che nessuno ti vieta di utilizzare rclone per scambiare dati tra due punti in locale (forse poco utile) o tra due punti in Cloud (e qui torna utile in caso di migrazioni), o locale misto Cloud che riguarda forse la maggior parte dei casi. Si tratta di una soluzione completamente open, trovi tutto il progetto su GitHub.

rclone è in grado di dialogare con una quantità molto elevata di servizi di Cloud Storage, è un po’ un coltellino svizzero da tenere a portata di mano (anche sotto forma di soluzione portable). Esistono alcune interfacce grafiche per Windows o macOS ma alcune di queste non vengono più sviluppate e supportate, quindi ti consiglio caldamente di imparare a utilizzare la sua riga di comando: rclone.org/docs.

Qualche esempio pratico

Con l’arrivo di RPi3 B+ in casa, ho scelto di iniziare a giocare con rclone e migrare (in test) quei backup oggi portati a termine da Windows e SyncBack Free. Ti faccio quindi qualche esempio pratico di come sia possibile ottenere lo stesso risultato passando da tutt’altro Sistema Operativo e relativo software di copia dati.

Partendo dal presupposto che tu abbia già configurato rclone e inserito quindi i vari connettori che ti servono (in questo caso parliamo di puro SFTP e nulla più), ti basterà realizzare un piccolo script bash contenente poche e semplici istruzioni, come questo:

rclone sync "gioxx_org:html/wp-content/backupwordpress" "Dropbox:DBBackup/gioxx.org" -P --transfers 9 --include *.zip

La stringa si traduce in questa maniera:

  • gioxx_org è il nome che ho dato al connettore rclone che si occupa di collegarsi a questo blog, dopo i due punti occorre inserire il percorso della cartella che si intende raggiungere. Per arrivare alla backupwordpress mi servirà attraversare prima html/wp-content. Questo percorso è lo stesso che vedresti utilizzando un qualsiasi client FTP per collegarti al tuo spazio web.
  • Dropbox è il nome (molto banale, ne sono consapevole) che ho dato al connettore rclone che si collega al mio account Dropbox. All’interno della home del mio Dropbox esiste una cartella chiamata DBBackup e al suo interno un’ulteriore cartella chiamata gioxx.org, è qui che finiscono tutti i file zip contenenti i backup del mio database MySQL (nota infatti il --include *.zip finale nella riga di comando, che obbliga rclone a scaricare solo file di tipo ZIP).
  • Il parametro -P equivale al “Progress“, rclone mi mostrerà a video l’avanzamento delle operazioni.
  • Il parametro --transfers 9 serve a forzare rclone a trasferire fino a 9 file alla volta, contemporaneamente, perché la mia macchina e la connettività possono sopportarlo. Più è alto il numero, più consumerai RAM e CPU della tua macchina (e occuperai banda internet in download e upload dato che il trasferimento viene eseguito dallo spazio FTP a Dropbox).

Tutto chiaro? Vuoi un altro esempio?

rclone sync "fuorigioco:html" "Dropbox:WebBackup/fuorigio.co" -P --transfers 9 --filter-from /home/pi/exclude-fCo.txt

Cosa è cambiato?

  • Nulla cambia per il sync in sé. Sto chiedendo a rclone di tenere sincronizzati tutti i file della cartella html di fuorigioco (connettore che si collega al buon vecchio fuorigio.co) con una apposita cartella sull’account Dropbox. Restano i 9 trasferimenti contemporanei e la visualizzazione dei progressi, ma.
  • Ma in questo caso utilizzo il filtering messo a disposizione da rclone per escludere una lista di file e cartelle che non mi interessano (vedi: rclone.org/filtering). Sto chiedendo a rclone di aprire il file di testo exclude-fCo.txt e leggere cosa non voglio che venga sottoposto a sincronizzazione, per capirci:
# Esclusioni Fuorigio.co
- /wp-admin/**
- /wp-includes/**

Salta la prima riga, un commento per capire di che lista stiamo parlando nel momento in cui apro il file di testo. Da lì in poi potrai notare un elenco fatto di cartelle che voglio saltare a piè pari, che rclone quindi ignorerà passando oltre. Nessuno ti vieta, come specificato nella documentazione ufficiale, di inserire ulteriori cartelle o singoli file, anche utilizzando delle wildcard che possono quindi fare match con più dati contemporaneamente.

Non ti resta che il crontab

Se non sai di cosa stiamo parlando (sei serio? E hai avuto la pazienza di leggere fino a qua? Fatti abbracciare!), trovi tutto ciò che c’è da sapere riguardo crontab su Raspbian (ma non solo) all’indirizzo raspberrypi.org/documentation/linux/usage/cron.md.

L’attività via rclone la sappiamo padroneggiare e lo script bash è pronto. Lo hai già reso eseguibile, non ti resta che programmarne l’esecuzione secondo esigenza. In questo momento possono quindi tornarti utili un paio di siti web dedicati alla generazione di righe crontab da copiare e riportare facilmente nel file di sistema (sudo crontab -e):

Io utilizzo un pelo più il primo che il secondo (quest’ultimo è molto utile quando vuoi immediatamente leggere in maniera più sensata una riga di Crontab più che crearla da zero). Specifica l’intervallo di esecuzione del tuo script e fornisci ogni dettaglio richiesto, così arriverai a un risultato che potrebbe essere simile a questo:

0 2 * * * /home/pi/DBBackup.sh

Come lo si legge? Ecco: lo script di backup verrà eseguito alle ore 2 del mattino (il 2) in punto (lo 0, che diversamente avrebbe dovuto riportare un altro numero da 1 a 59 se avessi voluto un diverso orario più “esotico“), di ogni giorno (il primo asterisco, avrebbe potuto avere valore da 1 a 31), di ogni mese (il secondo asterisco, avrebbe potuto avere valore da 1 a 12), di ogni giorno della settimana (l’ultimo asterisco, e questo sta a indicare che l’esecuzione deve essere quotidiana, altrimenti avrebbe potuto avere valore da 0 a 6). Ti sembra difficile? Inizialmente lo è, ma poi si entra nell’ottica e lo si capisce immediatamente, ti ho fornito quei due siti web poco sopra proprio per iniziare a fare pratica.

Salva la modifica al crontab e attendi fiducioso che i tuoi file finiscano correttamente nella cartella di backup (ovviamente controlla che vada tutto liscio).

L’articolo si conclude qui (per la tua certa felicità), in caso di problemi o dubbi puoi sempre lasciare un commento. Utilizzi già rclone? Se sì, come gestisci i tuoi backup? Sono curioso di confrontarmi con altre persone nella mia stessa situazione e voglia di sperimentare 🙂

Condividi l'articolo con i tuoi contatti:

Questo perché, nonostante tu abbia fatto tutto come al solito, se sei utente standard (di dominio o locale senza però permessi amministrativi), non basta più schedulare l’evento tra quelli portati a termine da Windows (e vale anche se ereditati da Windows 7, magari durante un upgrade in-place). È questo ciò che mi è capitato su una macchina controllata, la quale con Windows 10 ha smesso di eseguire il suo lavoro durante la pausa pranzo (una semplice copia di file da disco locale a disco di rete, quest’ultimo sotto backup contrariamente al primo).

La spiegazione c’è ed è abbastanza semplice.

SyncBack: i backup programmati non partono su Windows 10

Il riferimento da tenere sotto mano è quello proposto dalla documentazione ufficiale di programma: 2brightsparks.com/syncback/help/creatingaschedule.htm

In particolare, alcuni passaggi riferiti al Sistema Operativo più recente di Microsoft:

Starting with Windows 10, you cannot create a schedule with the Do not store password setting unless you are an administrator. This is a security restriction implemented by Microsoft with Windows 10.

E anche:

You should also make sure the user account has the necessary Windows user rights. To do this, run the Local Security Policy control panel applet (in the Administrative Tools section of the control panel). If you are using the home version of Windows then you may not have access to the Local Security Policy control panel applet (Microsoft have removed the feature from home versions of Windows).

Make sure that the user account has the following user rights:

  • Act as part of the operating system
  • Log on as a batch job
  • Log on as a service

Make sure the user account is not listed in the following user rights:

  • Deny logon as a batch job
  • Deny logon as a service

Volendola fare più semplice rispetto alle tante proposte trovate online e nelle GPO di Windows, vuol dire inserire l’utente proprietario di quel backup (l’utilizzatore comune della macchina, nda) all’interno del gruppo Backup Operators locali di Windows 10. Puoi anche scegliere di evitare futuri problemi e inserire il gruppo Authenticated Users all’interno di Backup Operators, così da permettere a tutti gli utenti della macchina (locali, ma anche di dominio) di utilizzare correttamente SyncBack.

Per farlo, ti basterà lanciare (Start → Esegui) compmgmt.msc (si tratta del pannello di Gestione computer), spostarti sotto Utenti e gruppi localiGruppi e aprire Backup Operators. Aggiungi l’utente che ti interessa far funzionare all’interno di questo gruppo, il gioco è già fatto.

SyncBack: i backup programmati non partono su Windows 10 1

Attendi ora che arrivi l’ora stabilita per la partenza dell’evento programmato e verifica che tutto torni a funzionare come un tempo.

Buon lavoro.


immagine di copertina: unsplash.com / author: Erda Estremera

Condividi l'articolo con i tuoi contatti:

Quando hai bisogno dell’Utilità di pianificazione di Windows e questa decide che non è d’accordo con il farsi utilizzare, hai un problema. Sì perché quell’utilità gestisce ogni attività che viene fatta partire in maniera autonoma dal sistema (processi impostati direttamente da Windows o da un prodotto di terza parte), e che non serve a nulla se non funziona. Mi sono accorto che il mio Task Scheduler aveva qualche problemino solo quando l’ho aperto per verificare perché un processo non fosse partito nell’ultima settimana:

Windows 10 e Task Scheduler danneggiato: come risolvere 1

Provando ad approfondire e leggendo quindi i dettagli dell’errore, la situazione non migliora affatto, tutt’altro:

Windows 10 e Task Scheduler danneggiato: come risolvere

È per questo motivo che ho deciso di informarmi sul web per capire se altri come me avessero avuto prima questo tipo di problemi. Ho trovato diverse lamentele e qualche possibile soluzione, ma solo una ha realmente risolto l’arcano e mi ha permesso di tornare in possesso della console delle operazioni programmate. La colpa era di un paio di voci che non sono riuscito a ricollegare ai relativi job (poco importa, se me ne accorgerò in futuro sarà mia cura rimetterli in piedi), e di una “CreateChoiceProcessTask” che mi ha portato sulla giusta via della risoluzione.

Il problema viene generalmente rilevato su Windows 8 e superiori, Windows 10 compreso. Mi è bastato gironzolare ancora un po’ per arrivare a un progetto di CodePlex chiamato Repair Tasks: repairtasks.codeplex.com. Piccola utility gratuita e immediatamente utilizzabile senza installazione, è stato un giusto toccasana che ho voluto salvare anche nel mio spazio su box.com in vista della chiusura di CodePlex, puoi trovarla quindi anche all’indirizzo app.box.com/s/yi1g04ccquyytov7fm0g3j27r8myr7tz.

Una volta lanciata, falle fare uno Scan dei tuoi processi e dei possibili problemi, probabilmente vedrai comparirne qualcuno come nel mio caso:

Windows 10 e Task Scheduler danneggiato: come risolvere 2

Nonostante esista la possibilità di selezionare e riparare gli errori, probabilmente questo non ti porterà all’uscita del tunnel e quindi alla risoluzione del problema. Non ti abbattere. Seleziona uno a uno i processi problematici e fai clic su “Unplug Task“. Questo permetterà a te di sganciarli dall’Utilità di pianificazione, e a Windows di darti nuovamente accesso completo alla console. Da qui potrai finalmente modificare i job schedulati e lanciarne di manuali per riprendere le attività precedentemente non andate a buon fine (perché mai partite!).

Cos’altro c’è da sapere

Che in caso di emergenza, il Registro di Windows può darti accesso alle tue schedulazioni navigando la chiave di registro:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\

e che se anche tu utilizzi SyncBack, dovrai dare un’occhiata a questo loro documento di Knowledge Base per riprendere completo possesso della situazione e delle tue pianificazioni (apparentemente non più gestibili o cancellabili).

Buon lavoro!

Condividi l'articolo con i tuoi contatti:

DokuWiki, per chi non lo conoscesse, è un software (uno dei tanti, ndr) che vi permette di avere sul vostro spazio web un Wiki completo di ogni dettaglio:

DokuWiki è un software lato server basato sulla filosofia wiki, scritto in PHP e utilizzabile senza database: i dati inseriti vengono infatti gestiti dal file system.

Il software è stato sviluppato con l’intento evidente di fornire un supporto adeguato a chi ha la necessità di pubblicare contenuti di tipo manualistico: il nome stesso, DokuWiki, non è altro che la contrazione di “documentation wiki”.

fonte: Wikipedia

L’articolo di oggi riguarda nello specifico la programmazione dei backup della piattaforma, studiati in modo da essere automatici e a cadenza regolare, affinché l’operazione impatti il meno possibile sulla persona che cura il sistema e venga eseguita senza la necessità di ricordarsene ogni volta (cosa che tipicamente fa cadere il backup nel dimenticatoio fino a quando qualcosa si spacca e c’è la necessità di rifare tutto da zero!).

Il documento che riporta ciò che c’è da salvare per un eventuale ripristino è disponibile all’indirizzo dokuwiki.org/faq:backup. Le cartelle sono davvero poche, il resto è pura piattaforma che potrete facilmente scaricare e reinstallare da zero in ogni momento.

Non so voi, ma a me basta un semplice prodotto in grado di connettersi ad uno spazio FTP e replicare i contenuti con una versione che si trova nel disco locale, opportunamente tenuto sotto backup. E’ il modo attraverso il quale mi accerto di non perdere dati e di poterli ripristinare in caso di necessità. Il tutto si riassume con un semplice prodotto gratuito che utilizzo con soddisfazione da anni: SyncBack Freeware, della 2BrightSparks.

Al solito, il consiglio è sempre lo stesso:

ATTENZIONE: Prima di eseguire qualsiasi modifica ai vostri file e/o dispositivi siete pregati di effettuare un backup di questi. Solo così sarete capaci di tornare indietro ponendo rimedio ad eventuali errori di distrazione. L’articolo e l’autore non possono essere ritenuti responsabili di alcun danno subito dalla vostra strumentazione. Buon lavoro.

Fa chiaramente sorridere parlare di “backup prima del backup” ma è proprio così. Non mettete in piedi questa nuova soluzione su un  software in produzione, magari sfruttate un’installazione demo o due cartelle sullo stesso disco (o anche su FTP) per provare che tutto funzioni correttamente.

Installazione e configurazione

Una volta scaricato dal sito web ufficiale basterà installarlo ed avviarlo per la prima volta per arrivare al wizard di prima configurazione. Non c’è nulla da scegliere se non il tipo di comportamento da applicare al profilo in creazione (Backup / Synchronization). Nel nostro caso si tratta del secondo citato, una sincronizzazione dei dati in locale con quelli presenti sul server (e viceversa). Facendo clic sul pulsante “Expert” nella finestra comparsa dopo la conferma del comportamento si potranno visualizzare tutte le opzioni disponibili:

SyncBack: finestra “Expert” per profilo di sincronizzazione

Questo mi permette di effettuare diverse personalizzazioni sul profilo, e magari inserire un paio di specifiche che possano permettermi di essere notificato in caso di fallimento dell’operazione. Vediamo nello specifico cosa fare.

Prima di tutto il resto: “FTP Destination”

Prima ancora di mettere mano ad altro, è bene far presente al software che la sincronizzazione avverrà tra una cartella in locale ed uno spazio FTP. Basterà fare clic sul pulsante che porta il nome del protocollo e specificare le informazioni di base utili alla connessione (hostname, nome utente e password), quindi fare un test di connessione facendo clic sul pulsante “Test FTP settings“. Se le informazioni sono corrette e il PC ha connessione verso internet senza particolari restrizioni, il test andrà a buon fine.

Sarà ora possibile fare clic sul pulsante con la cartella in corrispondenza della directory di destinazione per cominciare ad esplorare lo spazio FTP:

SyncBack: la destinazione si trova su uno spazio FTP

Facendo clic sul pulsante “OK” si confermerà al programma la cartella da utilizzare per la sincronizzazione. Inutile dire che dovrà essere la cartella padre, sotto la quale sono contenute le varie directory che ci interessano ;-)

Cosa copiare e perché

Rispettivamente “Advanced” e “Filter” (ho volutamente installato e tenuto SyncBack in inglese, lo preferisco nel caso in cui compaia qualche errore -in qualsiasi programma- poiché maggiormente ricercabile e risolvibile via internet), le due schermate che contengono il comportamento da adottare e cosa includere o lasciare fuori durante il processo di confronto e copia dei file in locale.

Il comportamento da adottare in questo caso è: i nuovi file sovrascrivono i vecchi già presenti, cancellare su locale i file che non sono più presenti sul server e –ovviamente– copiarli in locale se sono presenti sul server, partendo dal presupposto che la sorgente sia “locale” e la destinazione lo spazio FTP (unica modalità di funzionamento del software) si traduce con questo:

SyncBack: comportamento da adottare

Senza dimenticare però di specificare cosa verrà analizzato e copiato o ignorato. Secondo il documento ufficiale -infatti- va tenuto sotto backup un numero molto limitato di cartelle. Per questo motivo basterà isolarle nella schermata dedicati ai filtri:

SyncBack: i filtri per tenere sotto giusto backup DokuWiki

Tenendo l’asterisco nei file da copiare ma limitando le cartelle si otterrà il risultato desiderato. SyncBack analizzerà solo ed esclusivamente ciò che è contenuto nelle cartelle suggerite dallo stesso programmatore, permettendo di non occupare spazio disco inutilmente con dati facilmente recuperabili dal pacchetto di installazione pulito.

C’è tutto?

Diciamo di si, il profilo così com’è è già pronto per partire nonostante si possano ulteriormente personalizzare le impostazioni. Lascio a voi il compito di esplorare tutto quello che vi può permettere il software, può tornarvi comodo farvi notificare via mail (o direttamente con un file di log in HTML aperto in real-time sul browser predefinito) eventuali errori dell’operazione, così come lanciare operazioni o script prima o dopo l’operazione stessa.

SyncBack: schedulare l’operazione di backup

Sicuramente c’è la necessità di far si che l’operazione si ripeta in autonomia. Una volta salvato il profilo è importante fare clic sul pulsante “Schedule” e iniziare a specificare quando ripetere lo stesso tipo di operazioni, ricordandosi di inserire la vostra password di accesso al PC se volete che tutto funzioni anche se siete distanti dalla macchina (questa dovrà essere ovviamente accesa).

In conclusione

Programmi come SyncBack sono vere e proprie manne dal cielo per chi necessita di tenere sotto sincronizzazione o backup più cartelle o siti web. Entrare nell’ottica di dover schedulare questo tipo di operazioni giornalmente (o settimanalmente) è molto importante. Ricordatevi che un backup può decisamente salvare ore (se non giorni, mesi o addirittura anni) di lavoro che potrebbe andare perduto per una distrazione umana o un errore di sistema.

Ho voluto cogliere “due piccioni con una fava” per parlare di DokuWiki e di SyncBack, pubblicando un metodo papabile di backup, molto comodo e semplice da mettere in pratica. Se “dall’altro lato” (in locale, ndr) date in pasto una cartella di Dropbox la sicurezza aumenta ancora di più. Se anche l’operazione di SyncBack dovesse sfociare in errore, attraverso Dropbox potrete facilmente riportare la situazione alla normalità, e basterebbe variare un paio di opzioni in SyncBack per ottenere un rapido restore del vostro lavoro.

Basta poco, che ce vò!

Al solito: in caso di problemi l’area commenti è a vostra totale disposizione. Se vi chiedete quanti dati riesco a gestire tramite SyncBack beh, sappiate che i miei profili del software superano la trentina di entry, senza contare quelli che ho nei PC di casa! ;-)

Condividi l'articolo con i tuoi contatti: