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