[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Script de sauvegarde



J'ai glissé sur mon clavier, mauvaise adresse mail, désolé pour le bruit... :(

Le 22/05/07, Le poulpe qui bloppe ! < monpoulpe@gmail.com> a écrit :
Bon, j'ai plus ou moins écris en détaillé les actions dans l'ordre.
Jette un coup d'oeil, et dis moi si y'a des parties qui manquent, et si tu peux voir pour la verif et gestion des erreurs sur les connexion ftp et ssh...

Pour l'instant le script sauve: MBR, /boot, /etc, /home, les sites webs, mysql, les logs.
Je me pose la question sur les mails. Moi les mails sont dans les homes des users, donc deja sauvés. Toi, sur tes serveurs, ils sont où?

Pendant ce temps, ce soir, je réecris le code avec des fonction pour faire plus propre et plus rapide.

Fait pas gaffe a la numerotation, faut la refaire.

*********************
la liste dans l'ordre chronologique des actions du script:

# lancement du script: /chemin/nom.du.script.sh --conf="/chemin/nom.du.fichier.conf"
# ex: /root/save.sh --conf="/root/save.conf"

# Dans la description, c'est une description avec toutes les options activées.
# Si une otion n'est pas activée, alors saute l'action.

0000000: Vérifie la possibilité de lancer le script:
    0001000: Vérifie si on est root.
        0001100: si pas root alors:
            0001200: Affiche un message sur la sortie console.
            0001300: On essaye d'envoyer un mail a root.
            0001400: On ecrit dans le syslog une alerte.
            0001500: Sortie du script (error 1)
        0001600: si root, on continue
    0002000: verifie que le .conf existe et soit en rx pour root
        0002100: si oui, continue
        0002200: si non:
            0002300: Affiche un message sur la sortie console
            0002400: On essaye d'envoyer un mail a root.
            0002500: On ecrit dans le syslog une alerte.
            0002600: Sortie du script (error 1)
    0003000: Vérifie qu'un argument soit present sur la ligne de commande.
        0003100: pas d'argument:
            0003200: Affiche un message sur la sortie console
            0003300: On essaye d'envoyer un mail a root.
            0003400: On ecrit dans le syslog une alerte.
            0003500: Sortie du script (error 1)
        0003600: argument présent:
            0003700: si -v on affiche la version, exit 0.
            0003800: si -h affiche l'aide et exit 0
            0003900: si different de -v et -h, estime que c'est l'emplacement du .conf et continue
            0003910: Verifie que le fichier existe sinon exit 1
    0004000: source le fichier de conf
    0005000: Verifie le fichier de conf:
        0005100: Vérifie si les options générales sont ok
        0005200: Vérifie si des actions sont pas en contradiction:
        0005300: Vérifie si le fichier save.liste_system.txt esxiste et est correct.
        0005400: Vérifie si le fichier save.liste_divers.txt existe et est correct
0010000: Calcul des dates et noms de fichiers

0020000: creation du rep temporaire
    0021000: Verifie si le rep temporaire se crée:
        0021100: ne se crée pas:
            0021110: Affiche un message sur la sortie console
            0021120: On essaye d'envoyer un mail a root.
            0021130: On ecrit dans le syslog une alerte.
            0021140: Sortie du script (error 1)
        0021200: se crée bien:
    0022000: Attribue le rep a root et donne tous les droits a root et aucun aux autres.
    0023000: Vérifie les droits du repertoire temp
        0023100: si pas a root et/ou pas les bon droits
            0023110: Affiche un message sur la sortie console
            0023120: On ecrit dans le syslog une info.
            0023130: On continue quand meme.
0030200: crée le fichier de log
# A partir de la, creer le md5 pour chaque archive, c'est pas fait.
0040000: Sauvegarde le MBR en .dd-file
    0041000: Verifie que le fichier soit crée.
        0041100: si crée:
            0041110: Affiche un message sur la sortie console
            0041115: On ecrit dans le syslog une info.
            0041120: On ecrit dans le log
        0041200: Si ne se crée pas:
            0041210: Affiche un message sur la sortie console
            0041215: On ecrit dans le syslog une alerte.
            0041220: On ecrit dans le log une alerte
            0041290: On affecte une variable dd-error pour empecher l'upload.
    0042000: si pas dd-error alors Crypte le fichier avec openssl
        0042100: In= fichier.tar out=fichier.tar.crypt
        0042200: Supprime le fichier tar et garde le .crypt
        0042300: affiche un message console + syslog + log
0050000: Sauvegarde des fichiers de configuration en .tar.gz
    0051000: Ajoute /boot au tar.gz
    0052000: Ajoute /etc au tar.gz
    0053000: Ajoute /var/spool/cron/crontabs/ au tar.gz
    0054000: Verifie que le fichier soit crée.
        0054100: si crée:
            0054110: Affiche un message sur la sortie console
            0054115: On ecrit dans le syslog une info.
            0054120: On ecrit dans le log
        0054200: Si ne se crée pas:
            0054210: Affiche un message sur la sortie console
            0054215: On ecrit dans le syslog une alerte.
            0054220: On ecrit dans le log une alerte
            0054290: On affecte une variable tarconf-error pour empecher l'upload
    0055000: si pas conf-error alors Crypte le fichier avec openssl
        0055100: In= fichier.tar out=fichier.tar.crypt
        0055200: Supprime le fichier tar et garde le .crypt
        0055300: Affiche un message console + syslog + log
0060000: Sauvegarde des bases sql dans un targz
    0061000: Pour tout fichier dans /var/lib/mysql fait un mysqldump
        0061100: Affiche un message sur la sortie console
        0061115: On ecrit dans le syslog une info.
        0061120: On ecrit dans le log
    0062000: Prends tous les mysqldump du rep temp et fait un tar.gz
        0062100: si crée:
            0062110: Affiche un message sur la sortie console
            0062115: On ecrit dans le syslog une info.
            0062120: On ecrit dans le log
        0062200: Si ne se crée pas:
            0062210: Affiche un message sur la sortie console
            0062215: On ecrit dans le syslog une alerte.
            0062220: On ecrit dans le log une alerte
            0062290: On affecte une variable sql-error pour empecher l'upload
    0063000: Efface les mysqldump du rep temp
        0063100: Affiche un message sur la sortie console
        0063115: On ecrit dans le syslog une info.
        0063120: On ecrit dans le log
    0063000: si pas sql-error alors Crypte le fichier avec openssl
        0063100: In= fichier.tar out=fichier.tar.crypt
        0063200: Supprime le fichier tar et garde le .crypt
        0063300: Affiche un message console + syslog + log
0070000: Sauvegarde des sites webs
    0071000: Ajoute tous les sites dans un tar.gz
    0072000: Verifie que le fichier soit crée.
        0072100: si crée:
            0072110: Affiche un message sur la sortie console
            0072115: On ecrit dans le syslog une info.
            0072120: On ecrit dans le log
        0072200: Si ne se crée pas:
            0072210: Affiche un message sur la sortie console
            0072215: On ecrit dans le syslog une alerte.
            0072220: On ecrit dans le log une alerte
            0072290: On affecte une variable tarsites-error pour empecher l'upload
    0072000: si pas tarsites-error alors Crypte le fichier avec openssl
        0072100: In= fichier.tar out=fichier.tar.crypt
        0072200: Supprime le fichier tar et garde le .crypt
        0072300: Affiche un message console + syslog + log
0080000: Sauvegarde des boites mails
# alors là.... bonne question
# Parceque au final, ils sont logiquement dans les rep home des users, donc dans le tar des homes, non?

0090000: Sauvegarde des homes
    0091000: Ajoute tous les homes dans un tar.gz
    0091000: Verifie que le fichier soit crée.
        0091100: si crée:
            0091110: Affiche un message sur la sortie console
            0091115: On ecrit dans le syslog une info.
            0091120: On ecrit dans le log
        0091200: Si ne se crée pas:
            0091210: Affiche un message sur la sortie console
            0091215: On ecrit dans le syslog une alerte.
            0091220: On ecrit dans le log une alerte
            0091290: On affecte une variable tarhome-error pour empecher l'upload
    0091000: si pas tarsites-error alors Crypte le fichier avec openssl
        0091100: In= fichier.tar out=fichier.tar.crypt
        0091200: Supprime le fichier tar et garde le .crypt
        0091300: Affiche un message console + syslog + log
0095000: Sauvegarde des logs:
    0095100: Ajoute /var/log/ dans un tar.gz
    0091000: Verifie que le fichier soit crée.
        0091100: si crée:
            0091110: Affiche un message sur la sortie console
            0091115: On ecrit dans le syslog une info.
            0091120: On ecrit dans le log
        0091200: Si ne se crée pas:
            0091210: Affiche un message sur la sortie console
            0091215: On ecrit dans le syslog une alerte.
            0091220: On ecrit dans le log une alerte
            0091290: On affecte une variable tarlog-error pour empecher l'upload
    0091000: si pas tarlog-error alors Crypte le fichier avec openssl
        0091100: In= fichier.tar out=fichier.tar.crypt
        0091200: Supprime le fichier tar et garde le .crypt
        0091300: Affiche un message console + syslog + log

# Pas trouvé, mais faut faire une verif+gestion erreurs de la connexion ftp
0100000: Envois des fichiers par FTP sauf le log:
    0101000: Pour chaque fichier present:
        0101100: Se connecte au ftp et upload
        0101200: Affiche un message console + syslog + log
    0102000: Efface les vieux fichiers
        0102100: Affiche un message console + syslog + log
0110000:Envois des fichiers par SSH/SCP
    0111000: Pour chaque fichier present sauf le log:
        0111100: Se connecte en scp et upload
        0111150: Passe le fichier en chmod 770
        0111200: Affiche un message console + syslog + log
    0112000: Efface les vieux fichiers
        0112100: Affiche un message console + syslog + log
0110000:Copie des fichiers locale
    0111000: Pour chaque fichier present sauf le log:
        0111100: le copie dans son rep de destination
        0111150: Passe le fichier en chmod 770
        0111200: Affiche un message console + syslog + log
    0112000: Efface les vieux fichiers
        0112100: Affiche un message console + syslog + log
0120000: On s'occupe du log
    0121000: Envoi du log en ftp
    0122000: Envoi du log en scp
    0123000: copie du log en local
    0124000: Envoi du log par mail
0130000: Suppression du repertoire temporaire


Reply to: