Administration avancée sous Linux Anthony Busson
Plan du cours 1. Compilation (gcc) 2. Gestion des utilisateurs et des groupes 3. Montage des périphériques et des systèmes de fichiers 4. Scripts 5. Archivage et backup (crond) 6. Commandes réseaux et fichiers de configuration 1. Configuration interface route nat firewall tunnel 2. Routeur zebra 7. Services (démarrage-arrêt-fichiers) 8. Le super démon xinetd 9. Les services 1. DNS 2. NIS-NFS 3. SAMBA 4. Web 5. Radius
Archivage et sauvegarde
Archivage et sauvegarde Archivage: stockage des données à long terme. Sauvegarde: stockage des données à court terme dans l éventualité d un incident. Sauvegarde complète: sauvegarde complète du système de fichier ou du dossier, etc. Très lourd à effectuer périodiquement. Sauvegarde incrémentale: sauvegarde complète puis sauvegarde incrémentale. La sauvegarde incrémentale ne sauvegarde que ce qui a été modifié depuis la dernière sauvegarde complète/incrémentale. La solution la plus légère pour la sauvegarde. Sauvegarde différentielle: sauvegarde complète puis sauvegarde de ce qui a été modifié depuis la dernière sauvegarde complète. Un peu moins léger que la sauvegarde incrémentale.
Exemple Sauvegarde complète le dimanche soir. Sauvegarde incrémentale/différentielle les autres soirs de la semaine. Sauvegarde incrémentale: Tous les fichiers modifiés depuis la dernière sauvegarde (de la veille) sont sauvegardés. Pour la restauration (par ex. le Mercredi), il faut restaurer la sauvegarde complète puis toutes les sauvegardes incrémentales (Lundi, Mardi). Sauvegarde différentielle: Tous les fichiers modifiés depuis la sauvegarde complète (celle du dimanche) sont sauvegardés. Pour la restauration, il faut restaurer uniquement la sauvegarde complète et la dernière sauvegarde différentielle.
Les outils linux Outils d archivage/compression habituel: tar/zip/bzip2/gzip Outils de sauvegarde (commande) rsync dump/restore Outils de sauvegarde graphique Grsync Sbackup Arena_Backup BackupPC FullSync Outils de sauvegarde «pro» Tivoli (IBM)
rsync Outils de sauvegarde (linux, windows-cygwin, mac-rsyncx). Version graphique Grsync. Sauvegarde complète ou incrémentale Gère les attributs des fichiers (droits, propriétaire, etc.) Sauvegarde locale ou distante
Les options Sauvegarde avec rsync Sauvegarde locale prompt$rsync -azvv /home/path/folder1/ /home/path/folder2 Sauvegarde distante prompt$rsync --delete -azvv -e ssh /home/path/folder1/ esgi@pcdistant:/path/folder2 --delete: efface les fichiers qui n'existe pas sur le système sauvegardé. -a : préserve les dates de création, modification et les permissions (équivalent de -rlptgod). Descente récursive dans tous les répertoires (-r), Sauvegarde les liens (-l), Sauvegarde les permissions (-p), Sauvegarde la date de modification (-t), Sauvegarde le groupe (-g), Sauvegarde le propriétaire (-o), Sauvegarde les «devices» comme des «devices» (b; c; etc.). -z compresse les données -vv mode bavard -e spécifie le shell distant à utiliser (ssh par exemple) /folder1/ : contenu (un «/» a la fin) du dossier a sauvegarder. folder2 : Le contenu complet de folder1 sera placé dans folder2 lors de la première sauvegarde. Une synchronisation sera faites par la suite.
rsync: configuration client/serveur 1/2 Sauvegarde par ssh ou un démon (rsync server). Exemple par ssh:suppression de la demande de mot de passe (il faut que openssh soit installé) ssh-keygen -t dsa -b 1024 -f /home/esgi/monpc-rsync-key Ne pas tapé de phrase/mot de passe à l'invite de cette commande mais simplement «entré». Créer deux clés une pour le client et une pour le serveur: monpc-rsync-key et monpc-rsync-key.pub (serveur). Il faudra associer les droits 600 à ces deux fichiers. Rajouter le contenu du fichier à la suite du fichier ~/.ssh/authorized_keys Possibilité de précédé la ligne avec from=»adresseip» ssh-dss AAA
rsync: configuration client/serveur 2/2 Possibilité egalement de controler lancer une commande par le shell a l'acceptation de la connexion: from=»adresseip»,command="/home/esgi/script.sh" ssh-dss AAA... La commande dans le script permettant d'executer la commande est $SSH_ORIGINAL_COMMAND La commande sur le client est alors: rsync -avz -e «ssh -i chemin/monpc-rsync-key» /path/folder1/ esgi@nompcdistant:/path/folder2 Ne pas effectuer les sauvegardes en tant que root. Autres solutions plus sécurisées: ssh-agent ; keychain
cron Cron est un daemon permettant de planifier des tâches. Il regarde toutes les minutes si il y a des tâches a effectués. Pour lister les tâches crontab -l Pour ajouter/retirer une tâche crontab -e Pour supprimer les tâches crontab -r Le format d'une ligne est la suivante minute heure jour_du_mois mois jour_semaine utilisateur commande
Exemple de fichier crontab #lance le script tous les jours a 15:17 17 15 * * * esgi /home/esgi/script #lance le script toutes les 5 minutes entre le 15 et le 17 Janvier */5 * 15-17 jan * esgi /home/esgi/script #lance le script tous les jours de la semaine ouvrable a 00:15 15 00 * * mon,tue,wed,thu,fri esgi /home/esgi/script #Annonce la fin du cours aujourd'hui (doit etre dans le crontab du root) 55 12 3 jun * `echo «C'est l'heure» wall`