Projet

Général

Profil

Révision e253ff2a

Ajouté par Julien Enselme il y a presque 11 ans

Merge manuel performance

Nom de variables plus explicite
Ajout de init*.sh

Voir les différences:

bin/captcha.sh
1
#!/bin/bash
2 1
#!/bin/sh
3 2
PATH=/usr/local/bin:/usr/bin:/bin
4 3
##############
5
# Sets hidden captcha configuration for all D7 websites. 
4
# Sets hidden captcha configuration for all D7 websites.
6 5
##############
7
cd /users/guest/assos/htmltest/sites
8
for x in $(ls -1 | grep -v 'all' | grep -v file-*); do
9
  if [ -d $x -a ! -L $x ]; then
10
    cd $x;
11
      echo "Configuration hidden captcha pour "$x
6

  
7
init_scripts.sh
8

  
9
cd $d7_sites_dir
10

  
11
for dir in $(ls)
12
do
13
  if [ -d $dir -a ! -L $dir ]
14
  then
15
      cd $dir;
16
      echo "Configuration hidden captcha pour $x"
12 17
      # Enable hidden_captcha module.
13 18
      drush -y en hidden_captcha
14 19
      # Log wrong answers.
......
19 24
      drush -y vdel captcha_placement_map_cache
20 25
      # Randomely generate a math question as the label of the hidden captcha field.
21 26
      drush -y vset hidden_captcha_label "$RANDOM + $RANDOM"
22
    cd -;
27
      cd -;
23 28
  fi
24 29
done
bin/drushall
1 1
#!/bin/sh
2 2
PATH=/usr/local/bin:/usr/bin:/bin
3 3

  
4
init_scripts.sh
5

  
4 6
if [ $# -lt 1 ]; then
5 7
  echo "usage: $0 <drush args>"
6 8
  exit 1
7 9
fi
8 10

  
9
cd /users/guest/assos/html/sites
11
cd $d7_sites_dir
10 12

  
11 13
for x in $(ls -1 | grep -v 'all' | grep -v file-*); do
12 14
  if [ -d $x -a ! -L $x ]; then
bin/drushcronone
6 6
  exit 1
7 7
fi
8 8

  
9
cd /users/guest/assos/html/sites/$*;
9
cd "$d6_sites_dir/$*"
10 10
pwd;
11 11
drush cron;
bin/dump_site_atest_all
15 15
do
16 16
	cd $dir
17 17
	drush cc all
18
	drush sql-dump --result-file="$backup_dir/$dir.dump$date.sql"
18
	drush sql-dump --result-file="$backup_dir/$dir/$date.sql"
19 19
	cd -
20 20
done
bin/function.sh
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
}
bin/init_scripts.sh
1
#!/bin/sh
2

  
3
#Ce script crée toutes les variables communes à tous les sites
4
scripts_location='/users/guest/assos/bin'
5

  
6
web_dir='/users/guest/assos'
7
manual_backup_dir='/users/guest/assos/Desktop/dump_individuels'
8

  
9
d7_dir="$web_dir/htmltest"
10
d7_sites_dir="$d7_dir/sites"
11
d7_backup_dir='/users/guest/assos/Desktop/dump_d7'
12

  
13
db_server="myassos.serv.int"
14
db_user="assos"
15

  
16
template_location="/users/guest/assos/Desktop"
17
d7_template_name="settings-D7-bddinde-template.php"
18
d7_template_settings="$template_location/$d7_template_name"
19

  
20
###### Variable d6
21
d6_backup_dir='/users/guest/assos/Desktop/dump_d6'
bin/init_scripts_site.sh
1
#!/bin/sh
2

  
3
#Ce script initialise toutes les variables utiles d’un site.
4
#Il prend le nom du site en paramètre
5
#Il a besoin des variables de init_scripts.sh
6

  
7
if [ -z "$web_dir" ] #test si $web_dir (variable de init_scripts.sh) est définie
8
then
9
    echo "Import de init_scripts.sh requit"
10
    exit 1
11
fi
12

  
13
site_name=$1 #plus explicite
14
d7_site_dir="$d7_site_dir/assos.centrale-marseille.fr.$nom_site"
15
d7_site_settings="$site_dir/settings.php"
bin/purge_des_sauvegardes.sh
1 1
#!/bin/sh
2 2
PATH=/usr/local/bin:/usr/bin:/bin:/users/guest/assos/bin
3 3

  
4
##############
5
# nlehuby - 05 juillet 2012
6
# ce script permet de nettoyer p?riodiquement les diff?rents r?pertoires o? sont enregistr?s les sauvegardes de base de donn?es, afin de lib?rer de l'espace.
7
##############
4
init_scripts.sh
8 5

  
9
######## sauvegardes individuelles ########
10
#compte le nombre de sites d7 (en excluant les liens symboliques)
11
cd /users/guest/assos/htmltest/sites
12
let "nbsitesd7 = `ls -lF | grep -v 'all' | grep -v @ | wc -l`" >/dev/null ;
13
#explications : l'option -F dans le ls permet de marquer les liens symboliques avec un @ ; le "grep -v @" permet donc d'ignorer les liens symboliques dans la liste fournie par ls. La commande wc permet de compter le nombre de lignes retourn?es. Le let permet de d?finir une variable qui soit un nombre (et pas une chaine de caract?res)
6
######## sauvegardes individuelles
14 7

  
15
#va dans le dossier des sauvegardes individuelles
16
cd /users/guest/assos/Desktop/dump_individuels
8
#####
9
# À réfléchir
10
#####
11
# va dans le dossier des sauvegardes individuelles
12
cd $manual_backup_dir
17 13

  
18 14
#s'il y a plus de 2 x (le nombre de site d7) - 1 fichiers alors
19
let "c=2*$nbsitesd7 - 1" >/dev/null  ;
20
if [ $(ls -l | wc -l)  -gt  $c ] ; then
21
    echo "je supprime des sauvegardes isol?es"
22
#supprime (le nombre de site d7) plus vieux fichiers
23
    ls -tr | head -$nbsitesd7 | xargs rm;
15
nb_sites_d7=$(d7_give_nb_sites)
16

  
17
let "c=2*$nb_sites_d7 - 1" >/dev/null
24 18

  
25
#sinon, alerte
19
if [ $(ls -l | wc -l)  -gt  $c ]
20
then
21
    echo "je supprime des sauvegardes isolées"
22
    #supprime (le nombre de site d7) plus vieux fichiers
23
    ls -tr | head -$nbsitesd7 | xargs rm;
26 24
else
27
    echo "La purge des sauvegardes des sites individuelles d7 n'a pas pu ?tre effectu?e car il n'y avait pas assez de fichiers dans le dossier. Il faudrait v?rifier que le script de sauvegarde s'ex?cute correctement" | mail -s "[dump assos] On a des soucis avec les sauvegardes de bdd" assos@centrale-marseille.fr;
25
    #sinon, alerte
26
    echo "La purge des sauvegardes des sites individuelles n'a pas pu être effectuée car il n'y avait pas assez de fichiers dans le dossier." | mail -s "[dump assos] Sauvegardes de bdd individuelles" assos@centrale-marseille.fr;
28 27

  
29 28
fi
30 29
echo `ls -l | wc -l `
31
######## sauvegardes compl?tes d6 ########
32
#va dans le site des sauvegardes compl?tes d6
33
cd /users/guest/assos/Desktop/dump_d6
34 30

  
35
#s'il y a plus de 15 fichiers alors
36
if [ $(ls -l | wc -l)  -gt 15 ] ; then
31

  
32

  
33
######## SAUVEGARDES COMPLÈTES
34
#### sauvegardes complètes d6
35
#va dans le site des sauvegardes complètes d6
36
cd $d6_backup_dir
37

  
38
nb_files=$(ls -l | wc -l)
39

  
40
if [ $nb_files -gt 6 ]
41
then
42
    #s'il y a plus de 6 fichiers alors
37 43
    echo "je supprime du d6"
38
#supprime les 3 fichiers les plus vieux
39
    ls -tr | head -3 | xargs rm;
40 44

  
41
#sinon, alerte
45
    #supprime les assez de fichiers pour qu’il n’en reste que trois
46
    let "to_delete = $nb_files - 6"
47
    ls -tr | head -$to_delete | xargs rm
42 48
else
43
    echo "La purge des sauvegardes compl?tes des bases de donn?es drupal 6 n'a pas pu ?tre effectu?e car il n'y avait pas assez de fichiers dans le dossier. Il faudrait v?rifier que le script de sauvegarde s'ex?cute correctement" | mail -s "[dump assos] On a des soucis avec les sauvegardes de bdd" assos@centrale-marseille.fr ;
44

  
49
    #sinon, alerte
50
    echo "La purge des sauvegardes complètes des bases de données drupal 6 n'a pas pu être effectuée car il n'y avait pas assez de fichiers dans le dossier. Il faudrait vérifier que le script de sauvegarde s'exécute correctement" | mail -s "[dump assos] Purge sauvegardes de bdd complète d6" assos@centrale-marseille.fr ;
45 51
fi
46
echo `ls -l | wc -l `
47
######## sauvegardes compl?tes d7 ########
48
cd /users/guest/assos/htmltest/sites
49
let "nbsitesd7 = `ls -lF | grep -v 'all' | grep -v @ | wc -l`" >/dev/null ;
50
#explications : l'option -F dans le ls permet de marquer les liens symboliques avec un @ ; le "grep -v @" permet donc d'ignorer les liens symboliques dans la liste fournie par ls. La commande wc permet de compter le nombre de lignes retourn?es. Le let permet de d?finir une variable qui soit un nombre (et pas une chaine de caract?res)
51

  
52
#va dans le dossier des sauvegardes complètes
53
cd /users/guest/assos/Desktop/dump_d7
54

  
55
#s'il y a plus de 3 x (le nombre de site d7)
56
let "c=3*$nbsitesd7" >/dev/null  ;
57
if [ $(ls -l | wc -l)  -gt  $c ] ; then
58
    echo "je supprime des sauvegardes complètes"
59
#supprime (le nombre de site d7) plus vieux fichiers
60
    ls -tr | head -$nbsitesd7 | xargs rm;
61 52

  
62
#sinon, alerte
63
else
64
    echo "La purge des sauvegardes automatiques des sites d7 n'a pas pu ?tre effectu?e car il n'y avait pas assez de fichiers dans le dossier. Il faudrait v?rifier que le script de sauvegarde s'ex?cute correctement" | mail -s "[dump assos] On a des soucis avec les sauvegardes de bdd" assos@centrale-marseille.fr;
53
echo $(ls -l | wc -l)
65 54

  
66
fi
67
echo `ls -l | wc -l `
55

  
56
###### sauvegardes complètes d7
57
cd $d7_backup_dir
58

  
59
for dir in $(ls)
60
do
61
    cd $dir
62
    nb_files=$(ls | wc -l)
63
    let "to_delete = nb_files - 3"
64
    if [ $to_delete -gt 0 ]
65
    then
66
	ls | head -$to_delete | xargs rm
67
    else
68
	 echo "La purge des sauvegardes automatiques d7 dans $dir n'a pas pu être effectuée car il n'y avait pas assez de fichiers dans le dossier. Il faudrait vérifier que le script de sauvegarde s'exécute correctement" | mail -s "[dump assos] $dir a des soucis de sauvegardes de bdd" assos@centrale-marseille.fr;
69
    fi
70
    cd -
71
done
bin/reinit_var.sh
10 10
##############
11 11

  
12 12
#installation drupal 7
13
cd /users/guest/assos/htmltest/sites
14 13
/users/guest/assos/bin/drushall_atest init #lance le script init_var pour toute l'installation d7
15 14

  
16
	#gestion des exceptions d7
17
for x in $(ls -1 | grep 'nonotest\|superadmin' ); do
18
	if [ -d $x -a ! -L $x ]; then
19
		echo $x
20
		drush $x php-eval variable_set\(\'allow_authorize_operations\',TRUE\)\; 
21
	fi
22
done
23

  
24 15
#installation drupal 6
25 16
cd /users/guest/assos/html/sites
26 17
/users/guest/assos/bin/drushall vset --always-set reverse_proxy TRUE
27 18
/users/guest/assos/bin/drushall vset --always-set --format=json reverse_proxy_addresses '["147.94.19.16","147.94.19.17"]'
28 19
drush @sites ev "variable_set('update_notify_emails', array('assos@centrale-marseille.fr'));" --yes
29

  
bin/reinit_var.sh.old
1
#!/bin/sh
2
PATH=/usr/local/bin:/usr/bin:/bin
3

  
4

  
5
##############
6
# nlehuby - 20 mai 2012
7
# ce script permet de réinitialiser un certain nombre de variables et configurations. 
8
# Plus d'info : http://ginfo.centrale-marseille.fr/wiki/index.php?title=Scripts_et_t%C3%A2ches_planifi%C3%A9es#la_r.C3.A9initialisation_des_variables_dangeureuses
9
##############
10

  
11
#installation drupal 7
12
cd /users/guest/assos/htmltest/sites
13
/users/guest/assos/bin/drushall_atest vset error_level 0 --yes 
14
/users/guest/assos/bin/drushall_atest php-eval variable_set\(\'allow_authorize_operations\',FALSE\)\; 
15
/users/guest/assos/bin/drushall_atest vset --always-set reverse_proxy TRUE
16
/users/guest/assos/bin/drushall_atest vset --always-set --format=json reverse_proxy_addresses '["147.94.19.16","147.94.19.17"]'
17
drush @sites ev "variable_set('update_notify_emails', array('assos@centrale-marseille.fr'));" --yes
18

  
19
#installation drupal 6
20
cd /users/guest/assos/html/sites
21
/users/guest/assos/bin/drushall vset --always-set reverse_proxy TRUE
22
/users/guest/assos/bin/drushall vset --always-set --format=json reverse_proxy_addresses '["147.94.19.16","147.94.19.17"]'
23
drush @sites ev "variable_set('update_notify_emails', array('assos@centrale-marseille.fr'));" --yes

Formats disponibles : Unified diff