Projet

Général

Profil

Paste
Télécharger (1,65 ko) Statistiques
| Branche: | Révision:

root / bin / function.sh @ e253ff2a

1
#!/bin/sh
2

    
3
#Ce script doit contenir toutes les fonctions utiles aux scripts afin de pouvoir les réutiliser facilement.
4

    
5
#permet de demander un mot de passe sans l’afficher
6
#NB : read -s ne fonctionne pas en sh
7
# usage: pass=$(askpasswd "Tu me pretes ton mot de passe ?")
8
askpasswd() {
9
  echo $1 >&2
10
  echo -n ">" >&2
11
  stty_avant=$(stty -g)
12
  stty -echo
13
  read p
14
  stty $stty_avant
15
  echo "$p"
16
  unset p
17
}
18

    
19
ask_password_bdd() {
20
    #on récupère le mot de passe de la bdd, je ne prétends pas qu’il s’agit de la meilleure méthode loin de là.
21
    #prend le nom du serveur et le nom d’utilisateur comme argument.
22
    # Pour ce faire, on va envoyer une requête mysql vide.
23
    local db_passwd="pourquemysqldemandepas"
24
    #requête mysql fantoche
25
    #l’option -h permet de sélectionner le serveur
26
    #l’option -e permet d’exécuter la commande mysql qui suit (on met le mdp après)
27
    while ! mysql -h $1 -u $2 -p$db_passwd -e "" 2>/dev/null;
28
    do
29
	db_passwd=$(askpasswd "Entrer le mot de passe la base de donnée MySQL :")
30
	echo ""
31
    done
32
}
33

    
34
gen_password(){
35
    #on génère le mdp
36
    #        *avec des caractères spéciaux*. On se protège du caractère / qui
37
    #signifie que l’expression régulière de sed est finie (voir plus bas). On boucle
38
    #tant que le mot de passe contient /
39
    local site_passwd='/'
40
    local passwd_size=20
41
    while echo "$site_passwd" | grep -Fq '/'
42
    do
43
	site_passwd=`dd if=/dev/urandom count=1 | uuencode -m - | head -n 2 | tail -n 1 | cut -c-$passwd_size`
44
    done
45

    
46
    echo $site_passwd
47
}
48

    
49

    
50
d7_give_nb_sites(){
51
    # Return the number of drupal 7 sites
52
    find $d7_sites_dir -type d ! -name all -maxdepth 1 | wc -l
53
}