Backup
programme - timing de la journée

10h30 
*comparer différentes méthodes de backup : sauvegarde  complète  (full backup), backup différentiel, sauvegarde incrémentale ou incrémentielle 

documents vivants (qui bougent encore) vs documents morts (finalisés)
on a intérêt de faire un 'full back-up' de sa machine (tout ce qui est dynamique ~ image de ta machine)
- vrais fichiers statiques /home /etc
        - sources.lst !
- fichiers temporaire /tmp
- le cache 
- la swap

-> faire fichier .txt avec choses qu'on back-up souvent et les personnalisations de programmes importantes si on devait réinstaller
-> régularité: back-up des fichiers statiques: tous les mois
- sauver de façon différentielle: sauvegarder seulement ce qui a changé par rapport au full back-up + mettre back-up dans autre lieu
--> on peut effacer les différentiels

- sauver de façon incrementale: sauvegarder seulement les changements par rapport au jour avant (vs full back-up), prend moins de place mais plus de temps/calculs
http://www.knowledgetransfer.net/dictionary/Storage/en/cumulative_incremental_backup.htm


*commandline - gui
gui = back-up ninja qui s'occupe de rsync

*citer quelques outils :
*tar, dd, dump, cpio et rsync etc.

- tar: juste back-up des fichiers statiques (machine locale)
man tar
tar = archiving utility

-c: créer l'archive
-z: compress
-p: preserve permissions!!!
-> archive manager (gui) choisit ces options automatiquement


*exercice avec tar et rsync

TAR
1. ana@anagram:~/Documents$ du adashboard/ -sh
20M    adashboard/
[du = disk use / -sh= summary en language humain]

2. tar c (create) f fichier) z (comprimé)
ana@anagram:~/Documents$ tar cfz adash_backup adashboard/
ana@anagram:~/Documents$ du adash_backup -sh
18M    adash_backup

3. si on est sur un serveur: il faut garder les permissions
tar cfjp archive_nom Dossier/
ou tar cfzp nomArchive.tar.gz DossierOuFichierAArchiver

4. voir liste de ce qu'il y a dans le fichier archive
 archive_nom
file *: donne liste des types de fichiers
-> pour .doc: il donne tous les détails!!!
-> pas pour .odt: odt est un dossier comprimé déjà de fichier .xml (voir extract .odt)

5. vérifier s'il a gardé les permissions
-> décomprimer l'archive:
mkdir nouveaunom
mv nom_archive nouveaunom/
tar xf nom_archive
cd nom_archive
ls -l

13 à 14h lunch
Discussion sur la semaine de programmation
- accord sur apprendre python ou C++
- accord sur vouloir contribuer une petite module à un projet existant vers la fin de la semaine, proposition de contribuer à toonloop http://toonloop.com/
- proposition de l'organiser à la Maison Gallait, fin septembre
- An & Femke vérifient le budget de Constant, les possibilités de demande de subsides + possibilités/envies de Stéphanie pour préparer et mener les sessions

14h 
*Automatisation avec cron : introduction à cron, sa logique et syntaxe de fichier de configuration
*cron à la manière debian 

15h 
*ssh-keygen
*exercices pratiques - rsync, rdiff-backup & backupninja 
*backup sur nos machines, dans un dossier backup, ou un disque externe monté dans nos file systems 
*backup de repertoires importants de Amaya : d'un disque dur sur l'autre
*backup de nos machines vers Amaya : voir si possible avec Lenny 
*sinon backup sur Ocelot, la machine de Juliane
*cron : setup d'un backup automatique

Backup en distance sur le post client :

sudo apt-get install rsync rdiff-backup backupninja

*rsync : synchronisation distante (remote synchronization)  sauvegardes incrémentales, synchronisation est unidirectionnelle. A  fast, versatile, remote (and local) file-copying tool.
*rdiff-backup : local/remote mirror and incremental backup 
*Backupninja provides a centralized way to configure and schedule many different backup utilities

clé privée / publique
se connecter au serveur par ssh sans mot de passe
créer sa clé 'root' :  ssh-keygen (attention à ne pas mettre de mot de passe à la clé sans quoi  ce mdp sera demandé lors de la connexion ssh et le backup ne se fera  pas)
endroit par default 
*~/.ssh/id_rsa pour la clé privée  
*~/.ssh/id_rsa.pub pour la clé publique 
voir les clefs: 
$sudo cat /root/.ssh/id_rsa (clé privée)
$sudo cat /root/.ssh/id_rsa.pub 'clé publique)
voir les fichiers:
$ls -lh .ssh
total 12K
-rw------- 1 ana ana 1.7K 2011-06-04 15:24 id_rsa
-rw-r--r-- 1 ana ana  393 2011-06-04 15:24 id_rsa.pub
-rw-r--r-- 1 ana ana  884 2011-03-02 15:25 known_hosts

sur le serveur il faut :
* ssh-server 
*rsync (doit tourner en démon) 
*rdiff-backup 
*placer ma clé publique : copier le contenu de ~/.ssh/id_rsa.pub  (chez moi) dans le fichier  ~/.ssh/authorized_keys (sur le serveur) 
    $ scp ~/.ssh/id_rsa.pub ana@samedies.be:/home/ana
    sur amaya:
    $ mkdir .ssh
    /home/ana: $ mv id_rsa.pub ./ssh/authorized_keys
    --> maintenant tu n'as plus besoin de logger sur amaya avec un mot de passe!! :-)
    --> si on est en root et on se connecte sans mot de passe à amaya:
    génerer une clef en tant que root
    localmachine:$ sudo scp /root/.ssh/id_rsa.pub ana@samedies.be:/home/ana
    name@amaya:$ cd /home/name 
    name@amaya:$ ls (fichier devrait être là)
    name@amaya:$ sudo su
    root@amaya:$ cd .ssh
    root@amaya:~/.ssh$ cat /home/ana/id_rsa.pub >> /root/.ssh/authorized_keys

Backup en local
avec BackupNinja sur un deuxième disque dur dans la même machine, ou sur un disque externe. 
*créer son fichiers backup manuellement car backupninja va essayer par défaut de se connecter via ssh 
*le mettre dans /etc/backup.d 
*exemple de fichier : 90.rdiff 
options = --force
when = everyday at 12

[source]
type = local
keep = 60D  

# files to include in the backup
include = /home/agnez/test      

## (where the files are copied to)
[dest]
type = local
directory = /home/agnez/BACKUPtest/                
#host = localhost
#user = root

sudo chmod 0600 /etc/backup.d/90.rdiff 
sudo ninjahelper
dans ninja on peux ensuite sélectionner le backup prédéfini par notre fichier 

*d'autres exemples dans le wiki de kenny : Exemples de fichiers backup
*Help : backupninja reference de fichier de config pour sauvegarde locale ou remote avec rsync  https://labsrdiff ignore_versionrdiff ignore_versionrdiff ignore_version.rdiff ignore_versionriseup.net/code/projects/backupninja/wiki/Rsync  sur le site de riseup  
*autre logiciels
*bacula  Bacula is a powerful Linux backup solution, and it’s one of the few  Linux open source backup solutions that’s truly enterprise ready. But  with this enterprise readiness comes a level of complexity you might not  find in any other solution. Bacula is not the easiest backup solution  to configure and use. It is, however, one of the most powerful. 
*Mondorescue  disaster recovery solution. One of its strengths is backing up an  entire installation. Another strength of Mondorescue is that it can back  up to nearly any medium: CD, DVD, tape, NFS, hard disk, etc. And Mondo  supports LVM 1/2, RAID, ext2, ext3, ext4, JFS, XFS, ReiserFS, and VFAT 
*Simple Backup  primarily targeted at desktop backup. Because Simple Backup Solution  uses compressed archives, it is not the best solution for backing up  large amounts of pre-compressed data (such as multimedia files). 
*help  
*dans le wiki de kenny : Backups: Rsync & Rdiff-backup
*https://labs.riseup.net/code/projects/backupninja/wiki/Rsync
*commandes pour lancer le backup (en root) 
*rdiff-backup --force --print-statistics  /home/agnez/test/ root@172.19.0.250::/volume1/backups/agnez/ 
*rdiff-backup --force --print-statistics --include  '/home/agnez/test/' --exclude '/*' /  root@172.19.0.250::/volume1/backups/agnez/test 

les alias de juliane pour s'amuser
- alias direct pour usage temporaire: alias coucou="cat /etc/profile"
- pour tous les shells interactifs permanent -> rajouter dans /etc/bash.bashrc
- pour ton shell permanent -> rajouter dans /etc/profile
- si tu veux personnalisé -> home/.profile
juliane@dragonfly:/home$ alias
alias c='clear'
alias ll='ls -l'
alias ls='ls --color=auto'
alias pi4='ping 4.2.2.2'
alias pigo='ping google.be'
alias tubosses='ps aux | grep'
alias tuchauffes='cat  /proc/acpi/thermal_zone/THRM/temperature'
juliane@dragonfly:/home$ tuchauffes 
temperature:             53 C
juliane@dragonfly:/home$ tubosses apache
root      1381  0.0  0.8  23272  7972 ?        Ss   10:53   0:00 /usr/sbin/apache2 -k start
www-data  2561  0.0  0.4  23272  3920 ?        S    11:31   0:00 /usr/sbin/apache2 -k start
www-data  2562  0.0  0.4  23272  3920 ?        S    11:31   0:00 /usr/sbin/apache2 -k start
www-data  2563  0.0  0.4  23272  3920 ?        S    11:31   0:00 /usr/sbin/apache2 -k start
www-data  2564  0.0  0.4  23272  3920 ?        S    11:31   0:00 /usr/sbin/apache2 -k start
www-data  2565  0.0  0.4  23272  3920 ?        S    11:31   0:00 /usr/sbin/apache2 -k start
juliane  18780  0.0  0.0   3304   748 pts/1    S+   12:04   0:00 grep apache