16 déc 09

Script bash de suppression de fichier

Notre formateur nous a demander de créer un script qui permet de faire une suppression de plusieurs fichier.

rien de bien compliqué en soie amis je voulais l’améliorer un peut. Je me suis souvenu d’un script bash faisant appelle à une interface graphique et donc j’ai codé les fichier l’un à  l’aide  de zenity (pour le graphique) l’autre en ligne de commande

Voici le script de suppression de fichier en ligne de commande (disponible ici)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
if [[ -z $* ]]; then
echo "Syntaxe exacte:  $0 Nom_du_fichier"
 else

 for fichier in $*
 do
#test l'existance du fichier

 if [ -e $fichier ]; then
# Boucle de confirmation de l'effacement du fichier
 echo "Etes vous sur de vouloir effacer $fichier (oui/non)?"
 read ok   

 while  [ "$ok" != "oui" ] && [ "$ok" != "non" ]
 do
 echo "veillez taper oui pour confirmer non pour annulé ."
 read ok
 done
#Si ok est  strictement = à oui on effacé sinon il y a une erreur
 if [ "$ok" == "oui" ];
 then
 rm -rf $fichier
 echo "$fichier effacé"

 else

 echo "$fichier non effacé"
 fi
 else  
 echo "$fichier inexistant"

 fi
 done
fi

l’autre à l’aide de zenity (disponible ici)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
if [[ -z $* ]]; then
zenity --info --title="Script suppression fichier" --text="Syntaxe exacte: $0 Nom_du_fichier"
    else

    for fichier in $*
    do
#test l'existence du fichier

        if [ -e $fichier ]; then
# Boucle de confirmation de l'effacement du fichier
            ok=$(zenity --entry --title="Script suppression fichier" --text="Etes-vous sur de vouloir effacer $fichier (oui/non)?")
            while  [ "$ok" != "oui" ] && [ "$ok" != "non" ] && [ "$ok" != "" ]
            do
            ok=$(zenity --entry --title="Script suppression fichier" --text="veillez taper oui pour confirmer non pour annuler ." --entry-text="oui ou non")
            done
#Si ok est  strictement = à oui on efface sinon il y a une erreur
            if [ "$ok" == "oui" ];
            then
                rm -rf $fichier
                zenity --info --title="Script suppression fichier" --text="$fichier vient d'ètre effacé"

            else
                 zenity --info --title="Script suppression fichier" --text="$fichier n'a pas été effacé"
            fi
        else    
            zenity --info --title="Script suppression fichier" --text="$fichier n'existe pas"

        fi
    done
fi

avec ceci 3 petit screen

Screen 1

Screen 1

Screen 2

Screen 2

Screen 3

Screen 3

15 déc 09

Mon 1er script en bash

Je vous présente mon premier script en BASH qui sert à géner un fichier ifcfg

l’utilisation ce fait comme ceci

1
$ sh ifgen eth0

pour le moment la vérification des IP n’est pas complète.

Par ex 888.999.666.555 est accepté alors que dans la logique ca ne devrait pas  ou alors je me trompe ;)

Vu que le fichier est un peut long je vous poste le lien direct

http://files.famillewallon.com/public/scripts/ifgen

6 nov 09

Script de sauvegarde MySQL

Je mets en ligne un petit script de sauvegarde MySQL (que j’ai trouvé sur internet et que j’ai modifié à ma sauce)
il suffi juste de modifier MYSQL_LOGIN, MYSQL_PASSWORD, BACKUP_ROOT et de faire un chmod 755 sur le dossier de sauvegarde.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash
# Script de sauvegarde MySQL v5.0
timestamp="$(date +%d_%m_%y)"

#A Modifier #################
MYSQL_LOGIN=root
MYSQL_PASSWORD=12345
BACKUP_ROOT="/home/save/mysql_save"
#############################

mkdir -p "${BACKUP_ROOT}/${timestamp}"
BACKUP_DUMP_ROOT="${BACKUP_ROOT}/${timestamp}"
echo "# Sauvegarde des Bases MySql"
echo "# DUMP=${BACKUP_DUMP_ROOT}"
prefix=`hostname`
# Sauvegarde de chaque Base dans un fichier
for database in `echo "show databases" | mysql -u${MYSQL_LOGIN} -p${MYSQL_PASSWORD} -N`
do
BACKUP_FILE="${BACKUP_DUMP_ROOT}/${prefix}-mysql-backup-${database}.sql"
echo "#$(date +%Y%m%d-%H%M%S)# DEBUT Sauvegarde de [${database}] in [${BACKUP_FILE}]"

mysqldump --quick --add-locks --extended-insert --lock-tables --allow-keywords --default-character-set=latin1 -c -u${MYSQL_LOGIN} -p${MYSQL_PASSWORD} ${database} | bzip2 -9 > ${BACKUP_FILE}.bz
retour=$?
if [ "$retour" -eq "0" ]
then
echo "#$(date +%Y%m%d-%H%M%S)# La sauvegarde s'est correctement deroulee"
else
echo "#$(date +%Y%m%d-%H%M%S)# La sauvegarde s'est terminee en ERREUR"
fi
echo "#$(date +%Y%m%d-%H%M%S)# FIN Sauvegarde de [${database}] in [${BACKUP_FILE}]"
done
exit $retour

Si vous avez des amélioration à faire n’hésitez pas ;)