Faire une sauvegarde de owncloud sur SD

Commande de sauvegarde RSYNC

Owncloud est installé sur mon Rpi et les fichiers sont sur un disque externe 2T. Ce disque est monté sur /cmxxxx/WestDigit2T.

je souhaite faire une sauvergarde de certains fichiers sur la carte SD.

Je vérifie la place disponible avec la commande df -h:

SD card after bkup

J’utilise uniquement 1.3G sur le HDD et il y a 4G de disponible sur la carte SD. Cela devrait suffire pour le moment. si ce n’est plus suffisant par la suite, j’utiliserais un autre HDD externe pour ma sauvegarde.

Pour copier des fichiers, on a besoin de telecharger rsync:

sudo apt-get update (installe rsync automatiquement)

ou encore:

sudo apt-get install rsync

Sur le site de owncloud, il est dit de faire une sauvegarde de 1)config,2) data, et de 3) la base de données. Mais comme je ne trouve pas ces repertoires facilement, depuis la racine, j’utilise la commande :

sudo find -type d -name owncloud:

Search owncloud

Je trouve alors sur la carte SD les repertoires config et data dans /var/www/owncloud ( mais aussi dans var/lib/owncloud que j’ignore). /data contient index.html alors que /config contient config.php. Pour la base de données, il suffit de chercher le fichier .db. dans mon HDD, il se nomme Nuage-Trev-15.db.

Voila , je vais pouvoir maintenant les sauvegarder. Je crée alors un répertoire pour placer les fichiers de de sauvegarde et de scripts:

dans /var/www/owncloud/

mkdir oc-bckup

mkdir scripts

cd scripts

sudo nano owncloud-backup.sh

Note Perso: les captures d’écran montrent le repertoire scripts dans var/www/ mais j’ai modifié ensuite cela pour le placer dans /cm70s/scripts.

RSYNC options bien décrite ici. on y apprend par exemple comment faire un rsync par SSH.

a: archive récursif.  (parfois certains utilisent avz , z pour zip, v pour verbatim).

–delete: efface les fichiers et repertoire a la destination si les fichiers sources ont ete effaces. ne modifie pas la source.

les commandes de sauvegardes que j’utilise sont dans le fichier sh:

SHELL=/bin/bash

date

sudo rsync -Aax  –delete /home/cm70s/WestDigit2T/admin/files/Documents /var/www/owncloud/oc-backup/

sudo rsync -Aax –delete /home/cm70s/WestDigit2T/admin/files/Laetitia /var/www/owncloud/oc-backup/
sudo rsync -Aax –delete /home/cm70s/WestDigit2T/admin/files/Olivier /var/www/owncloud/oc-backup/

Exécuter ensuite la commande pour tester, et observer la progression de la sauvegarde:

sudo sh ../scripts/owncloud-backup.sh

voici ce que vous devriez obtenir lorsque la copie est terminée.

rsync

Ajoutez ensuite la ligne suivante si votre BDD est SQL (tel qu’undiqué ici ):

mysqldump –single-transaction -u OlivierCloud -pmqp8-2x-h33-zp55 /home/cm70s/WestDigit2T/Nuage-Trev-15.db $

Sur le site de owncloud , l’option SQL proposée est–lock-tables , mais comme ca ne marche pas, un autre site me recommande –single-transaction. Mais quel que soit l’option ,mysqldump génére une erreur :1044. A suivre…

Meme si la commande mysql dump ne fonctionne pas, j’ai fait une sauvegarde de tous le fichiers utiles. Dans le pire des cas, il me faudra recréer tous les repertoires de owncloud a la main, et y copier les fichiers sauvegardés, ce que j’ai du faire au moins une fois, et ce ne fut pas très long.

Tache de sauvegarde automatique

J’ai quand même créée une tache cron en utilisant la commande

crontab -e

cette commande ouvre un éditeur :

crontab

et affiche le fichier suivant auquel je rajoute la dernière ligne.

cron tab 2

j’ai corrigé la dernière ligne qui doit être :

0 */6 * * * ~/scripts/owncloud-backup3.sh

Voici la signification des 5 premiers caractères  * * * * *:

# field # meaning allowed values

# ——- ———— ————–

# 1 minute 0-59

# 2 hour 0-23

# 3 day of month 1-31

# 4 month 1-12 (or names, see below)

# 5 day of week 0-7 (0 or 7 is Sun, or use names)

Pour plus d’info sur crontab , voir ici.

après la sauvegarde , voici le résultat:

SD card after bkup

Resultat / Conclusion

Finalement, owncloud copie les fichiers sur le disque dur HDD WestDigit2T et Rsync effectue la sauvegarde des fichiers sur la carte SD. A gauche , le repertoire HDD, a droite sur la carte SD. on peut voir tout ca directement depuis FileZilla:

backup HDD

 

backup SD

Corrolaire

Note sur crontab: j’ai rencontré un problème qui m’a bloqué pendant des heures. meme si je peux excecuter la commande sh owncloud-backup.sh, je ne peux executer ce fichier depuis crontab -e. problème de droits ? j’ai donne sudo chmod 777 *.sh cm70s/scripts/owncloud-backup.sh.

Aucun résultat, ce qui pouvait être prevue puisque le message d’erreur que le fichier ne peut pas être trouvé. je laisse 777 pour la suite(mais apres avoir réglé le problème, je refait un chmod  755 qui marche très bien aussi).

j’ai essayé sudo chown root owncloud-backup.sh, mais sans succès .

j essaye donc différents formats blablabla:

/home/…, home/….,/cm70s/….,cm70s/…, /scripts/…,scripts/…mais toujours rien:

/bin/sh: 1: blablabla/owncloud-backup.sh: not found

La commande ~ semble indiquer le repertoire courant , il semble remplacer /home/cm70s/. essayons de jouer avec ca:

donc, si j’écris ~/scripts/owncloud-backup.sh dans crontab-e,  j obtiens une erreur dans mes mails :  /home/cm70s/scripts/owncloud-backup.sh not found, ce qui veut bien dire que la commande ~ remplace /home/cm70s/.

j ai cree un autre fichier sh avec juste la date. par défaut, il est rwx-x-x-cm70s cm70s alors que les precedents étaient rwxr-xr-x cm70s ou rwxr-xr-x root root .

cette fois-ci, il trouve très bien le fichier sh !! Donc, j’ai pas vraiment l’impression de n’avoir rien  changé ni sur le fichier crontab, ni sur le fichier .sh (contenu et droit). Bizarre, j avais peut être un fichier corrompu.

Publicités