Scripts et taches planifiees » Historique » Version 94
Julien Enselme, 08/10/2013 18:08
d6-all-dump-full.sh : le forum n'est plus en d6
1 | 1 | Julien Enselme | Afin de gagner du temps et d'éviter les erreurs humaines, des scripts ont été écrits tout au long du projet. Certains sont même exécutés automatiquement toutes les semaines. |
---|---|---|---|
2 | 1 | Julien Enselme | |
3 | 13 | Florent Torregrosa | {{>toc}} |
4 | 1 | Julien Enselme | |
5 | 1 | Julien Enselme | h1. Les tâches planifiées |
6 | 1 | Julien Enselme | |
7 | 26 | Florent Torregrosa | h2. Crontab |
8 | 26 | Florent Torregrosa | |
9 | 3 | Julien Enselme | Pour exécuter ces tâches régulièrement, on utilise le "crontab":http://fr.wikipedia.org/wiki/Crontab. Il s'agit d'un programme installé sur notre serveur. |
10 | 1 | Julien Enselme | |
11 | 3 | Julien Enselme | Pour voir et modifier la liste des actions : |
12 | 3 | Julien Enselme | # se connecter au serveur : <code>ssh assos@sas1.centrale-marseille</code> |
13 | 3 | Julien Enselme | # taper la commande pour voir le crontab <code>crontab -l</code> |
14 | 47 | Julien Enselme | # taper la commande pour modifier le crontab <code>crontab -e</code>. |
15 | 1 | Julien Enselme | |
16 | 47 | Julien Enselme | {{important(Ne pas effectuer cette opération avant de s'être renseigné sur "vi":http://fr.wikipedia.org/wiki/Vi (l'éditeur de texte utilisé qui n'est pas vraiment intuitif :p) et sur "la syntaxe du crontab":http://fr.wikipedia.org/wiki/Crontab#Modification ! |
17 | 47 | Julien Enselme | Les scripts doivent si possible s’exécuter avant le club Drupal pour que les problèmes éventuels y soient réglés)}} |
18 | 47 | Julien Enselme | |
19 | 69 | Julien Enselme | {{tip( |
20 | 69 | Julien Enselme | * Pour utiliser un autre éditeur que vi taper : export EDITOR=editor_name exemple : vim, nano. |
21 | 74 | Florent Torregrosa | )}} |
22 | 74 | Florent Torregrosa | |
23 | 74 | Florent Torregrosa | {{important( |
24 | 74 | Florent Torregrosa | * d7-all-update-contrib.sh fait des sauvegardes automatiques individuelles pour les sites Drupal 7 en faisant appel à d7-all-dump-indiviual.sh auto |
25 | 74 | Florent Torregrosa | * C'est pour cela que d7-all-dump-individual.sh auto n'est pas appelé dans le crontab. |
26 | 74 | Florent Torregrosa | )}} |
27 | 26 | Florent Torregrosa | |
28 | 26 | Florent Torregrosa | <pre> |
29 | 26 | Florent Torregrosa | <code class="php"> |
30 | 42 | Florent Torregrosa | ######## How to use |
31 | 42 | Florent Torregrosa | # mm hh jj MMM JJJ task |
32 | 42 | Florent Torregrosa | # minutes hour day_month month day_week |
33 | 42 | Florent Torregrosa | # for more informations : https://fr.wikipedia.org/wiki/Crontab#Notation |
34 | 42 | Florent Torregrosa | ######## End how to |
35 | 42 | Florent Torregrosa | |
36 | 1 | Julien Enselme | |
37 | 1 | Julien Enselme | ### Cleaning |
38 | 91 | Julien Enselme | 00 5 * * * /users/guest/assos/bin/all-reset-permissions.sh > /dev/null |
39 | 91 | Julien Enselme | 00 6 * * * /users/guest/assos/bin/delete-temporary-files.sh > /dev/null |
40 | 1 | Julien Enselme | |
41 | 1 | Julien Enselme | |
42 | 67 | Julien Enselme | ### Traqu-heure |
43 | 91 | Julien Enselme | 00 7 * * * /users/guest/assos/bin/traqu_heure/script-restitution.sh > /dev/null |
44 | 91 | Julien Enselme | 0 * * * * /users/guest/assos/bin/traqu_heure/script-traque.sh > /dev/null |
45 | 1 | Julien Enselme | |
46 | 1 | Julien Enselme | |
47 | 91 | Julien Enselme | ### Drupal 7 cron |
48 | 93 | Julien Enselme | 00 * * * * /users/guest/assos/bin/d7-all-drush.sh -q cron > /dev/null |
49 | 91 | Julien Enselme | |
50 | 91 | Julien Enselme | |
51 | 68 | Florent Torregrosa | ### Databases |
52 | 43 | Florent Torregrosa | # Create backup |
53 | 91 | Julien Enselme | 00 8 1,15 * * /users/guest/assos/bin/d7-all-dump-full.sh > /dev/null |
54 | 91 | Julien Enselme | 00 1 * * 2 /users/guest/assos/bin/d6-all-dump-full.sh > /dev/null |
55 | 67 | Julien Enselme | |
56 | 68 | Florent Torregrosa | # flush backup |
57 | 91 | Julien Enselme | 00 8 2,16 * * /users/guest/assos/bin/flush-full-databases-backups.sh d7 > /dev/null |
58 | 91 | Julien Enselme | 00 22 * * 2 /users/guest/assos/bin/flush-full-databases-backups.sh d6 > /dev/null |
59 | 91 | Julien Enselme | 00 23 * * 2 /users/guest/assos/bin/flush-individual-databases-backups.sh auto d7 > /dev/null |
60 | 91 | Julien Enselme | 00 1 * * 3 /users/guest/assos/bin/flush-individual-databases-backups.sh manual d7 > /dev/null |
61 | 1 | Julien Enselme | |
62 | 1 | Julien Enselme | |
63 | 68 | Florent Torregrosa | ### Drupal 7 |
64 | 91 | Julien Enselme | 00 3 * * 4 /users/guest/assos/bin/d7-all-reset-variables.sh > /dev/null |
65 | 42 | Florent Torregrosa | 00 22 * * 3 /users/guest/assos/bin/d7-all-update-contrib.sh | mail -s "d7-all-update-contrib.sh" assos |
66 | 67 | Julien Enselme | 00 1 * * 4 /users/guest/assos/bin/d7-all-update-localisation.sh | mail -s "d7-all-update-localisation.sh" assos |
67 | 43 | Florent Torregrosa | 00 2 * * 4 /users/guest/assos/bin/d7-all-security-review.sh |
68 | 67 | Julien Enselme | 00 4 * * 4 /users/guest/assos/bin/d7-all-releases-info.sh | mail -s "d7-all-releases-info.sh" assos |
69 | 42 | Florent Torregrosa | |
70 | 43 | Florent Torregrosa | |
71 | 67 | Julien Enselme | ### Drupal 6 |
72 | 91 | Julien Enselme | 00 22 * * 6 /users/guest/assos/bin/d6-all-update-contrib.sh > /dev/null |
73 | 91 | Julien Enselme | 00 23 * * 6 /users/guest/assos/bin/d6-all-reset-variables.sh > /dev/null |
74 | 68 | Florent Torregrosa | |
75 | 68 | Florent Torregrosa | # Launch drush cron on fellowings |
76 | 91 | Julien Enselme | 45 17 * * * /users/guest/assos/bin/drushcronone assos.centrale-marseille.fr.ginfo > /dev/null |
77 | 91 | Julien Enselme | */15 * * * * /users/guest/assos/bin/drushcronone assos.centrale-marseille.fr.clubfinance > /dev/null |
78 | 91 | Julien Enselme | 45 3 * * * /users/guest/assos/bin/drushcronone default > /dev/null |
79 | 91 | Julien Enselme | 35 00 * * * /users/guest/assos/bin/drushcronone assos.centrale-marseille.fr.cac13 > /dev/null |
80 | 91 | Julien Enselme | */45 * * * * /users/guest/assos/bin/drushcronone assos.centrale-marseille.fr.expat > /dev/null |
81 | 91 | Julien Enselme | */10 * * * * /users/guest/assos/bin/drushcronone forum.centrale-marseille.fr > /dev/null |
82 | 1 | Julien Enselme | |
83 | 67 | Julien Enselme | 00 22 * * 7 /users/guest/assos/bin/disk-usage.sh | mail -s "disk-usage.sh" assos |
84 | 3 | Julien Enselme | </code> |
85 | 83 | Julien Enselme | </pre> |
86 | 83 | Julien Enselme | |
87 | 25 | Florent Torregrosa | La liste des tâches effectuées régulièrement est ci-dessous. |
88 | 25 | Florent Torregrosa | |
89 | 1 | Julien Enselme | {{important(Lors de l’import d’un script de configuration comme _scripts-config.sh_ sont chemin doit être donné de façon absolue. Sinon le crontab ne trouvera pas le script !)}} |
90 | 1 | Julien Enselme | |
91 | 25 | Florent Torregrosa | h2. La réinitialisation des variables |
92 | 1 | Julien Enselme | |
93 | 1 | Julien Enselme | Cette tâche consiste à réinitialiser certaines variables qui donnent des droits considérés comme trop permissifs donc dangereux aux administrateurs des sites ou nécessaire pour d'autres scripts tels que piwik ou security_review. |
94 | 1 | Julien Enselme | |
95 | 25 | Florent Torregrosa | En voici quelques exemples : |
96 | 25 | Florent Torregrosa | |
97 | 1 | Julien Enselme | <pre> |
98 | 21 | Florent Torregrosa | <code class="bash"> |
99 | 25 | Florent Torregrosa | drush -y vset error_level 0 |
100 | 25 | Florent Torregrosa | </code> |
101 | 3 | Julien Enselme | </pre> |
102 | 1 | Julien Enselme | |
103 | 1 | Julien Enselme | Cette commande permet de ne pas afficher les messages d'erreurs. En effet, ils contiennent parfois des informations sensibles sur l'installation et ne doivent donc pas être divulgués à n'importe qui. |
104 | 25 | Florent Torregrosa | |
105 | 1 | Julien Enselme | <pre> |
106 | 3 | Julien Enselme | <code class="php"> |
107 | 1 | Julien Enselme | drush -y vset --always-set reverse_proxy TRUE |
108 | 70 | Julien Enselme | drush -y vset --always-set --format=json reverse_proxy_addresses '["147.94.19.16","147.94.19.17"]' |
109 | 1 | Julien Enselme | </code> |
110 | 6 | Julien Enselme | </pre> |
111 | 1 | Julien Enselme | |
112 | 3 | Julien Enselme | Ces commandes permettent de déclarer à Drupal les serveurs proxy du CRI afin d'éviter qu'il ne répertorie tous les visiteurs comme ayant l'adresse des serveurs sus-cités. **Pas fini : voir http://assos.centrale-marseille.fr/lessive/content/t%C3%A2che/rendre-les-settingsphp-conformes-%C3%A0-la-version-712-de-drupal** |
113 | 1 | Julien Enselme | |
114 | 73 | Julien Enselme | h2. La sauvegarde des bases de données |
115 | 73 | Julien Enselme | |
116 | 73 | Julien Enselme | Sur les installations d6 et d7 : une fois par semaine |
117 | 73 | Julien Enselme | |
118 | 73 | Julien Enselme | On utilise les scripts de sauvegardes : |
119 | 73 | Julien Enselme | |
120 | 1 | Julien Enselme | * [[Scripts_et_taches_planifiees#d6-all-dump-fullsh|d6-all-dump-full.sh]] |
121 | 72 | Julien Enselme | * [[Scripts_et_taches_planifiees#d6-dump-individualsh|d6-dump-individual.sh]] |
122 | 1 | Julien Enselme | * [[Scripts_et_taches_planifiees#d7-all-dump-fullsh|d7-all-dump-full.sh]] |
123 | 1 | Julien Enselme | * [[Scripts_et_taches_planifiees#d7-all-dump-individualsh|d7-all-dump-individual.sh]]. |
124 | 1 | Julien Enselme | |
125 | 72 | Julien Enselme | h2. La purge des sauvegardes de bases de données |
126 | 1 | Julien Enselme | |
127 | 1 | Julien Enselme | Sur les installations d6 et d7 : toutes les semaines |
128 | 21 | Florent Torregrosa | |
129 | 75 | Julien Enselme | Cette tâche utilise les scripts de purges des sauvegardes ([[Scripts_et_taches_planifiees#flush-full-databases-backupssh|flush-full-databases-backups.sh]] et [[Scripts_et_taches_planifiees#flush-individual-databases-backupssh|flush-individual-databases-backups.sh]]) afin de libérer de l'espace disque en supprimant les sauvegardes de bdd les plus vieilles. |
130 | 75 | Julien Enselme | |
131 | 75 | Julien Enselme | h1. Liste des scripts à disposition |
132 | 21 | Florent Torregrosa | |
133 | 78 | Julien Enselme | Les scripts utilisés sont hébergés dans le répertoire bin du compte assos. Ce dossier est dans le PATH l'utilisateur assos ce qui permet d'utiliser les scripts comme les commandes ususelles du shell. Les script doivent exécutales pour fonctionner ainsi. Le script @all-reset-permissions.sh@ remet les bonnes permissions sur ce dossier. |
134 | 78 | Julien Enselme | |
135 | 82 | Julien Enselme | Le PATH est par sécurité entièrement récrit dans @scripts-config.sh@ (on est certain que les commandes seront trouvées même si on ne les appelle pas avec leur chemin absolu). Le PATH contient alors les chemins vers les dossiers contenant les exécutales du système ainsi que les dossiers bin de assos. |
136 | 82 | Julien Enselme | |
137 | 53 | Julien Enselme | La plupart des scripts ont besoin d’importer un des scripts de configuration. L’import se fait grâce à la commande @. SCRIPT@. Ces scripts doivent être importés explicitement. On réalise un test en début de script. Ce test permet de savoir si le script importé a besoin de l’import d’un autre script. Si ce n’est pas le cas, on affiche un message d’avertissement et on arrête l’exécution. |
138 | 1 | Julien Enselme | |
139 | 85 | Julien Enselme | Les scripts nécessitant un argument contiennent une ligne commençant par ARGS détaillant la liste des arguments nécessaires à l’exécution du script. Les arguments entre crochets sont facultatifs. Si vous lancez un tel script sans argument, il affichera un message d’aide donnant la liste des arguments. |
140 | 53 | Julien Enselme | |
141 | 76 | Julien Enselme | h2. Configuration et utilitaires |
142 | 76 | Julien Enselme | |
143 | 53 | Julien Enselme | h3. scripts-config.sh |
144 | 53 | Julien Enselme | |
145 | 53 | Julien Enselme | Ce script contient toutes les variables indispensables à l’exécution des autres scripts (adresse du serveur de la base de données, emplacement des sauvegardes,…). Ce script a été créé de façon a pouvoir rendre les scripts les plus indépendants possible de la configuration actuelle et de façon à pouvoir la modifier facilement sans avoir à réécrire les scripts et à les vérifier. *Ces variables doivent donc être utilisées dans les scripts.* |
146 | 53 | Julien Enselme | |
147 | 53 | Julien Enselme | <pre> |
148 | 53 | Julien Enselme | <code class="php"> |
149 | 53 | Julien Enselme | #!/bin/sh |
150 | 53 | Julien Enselme | |
151 | 53 | Julien Enselme | PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/users/guest/assos/bin |
152 | 53 | Julien Enselme | PATH=$PATH:/usr/guest/assos/bin |
153 | 53 | Julien Enselme | |
154 | 53 | Julien Enselme | scripts_config='imported' |
155 | 53 | Julien Enselme | |
156 | 53 | Julien Enselme | email_multi_assos="assos@centrale-marseille.fr" |
157 | 53 | Julien Enselme | |
158 | 53 | Julien Enselme | dir_multi_assos='/users/guest/assos' |
159 | 53 | Julien Enselme | dir_scripts="$dir_multi_assos/bin" |
160 | 53 | Julien Enselme | dir_template="$dir_multi_assos/template" |
161 | 53 | Julien Enselme | |
162 | 53 | Julien Enselme | ###### Database |
163 | 53 | Julien Enselme | db_server="myassos.serv.int" |
164 | 53 | Julien Enselme | db_user="assos" |
165 | 63 | Julien Enselme | dir_log="$dir_multi_assos/log" |
166 | 53 | Julien Enselme | |
167 | 53 | Julien Enselme | ###### Backup |
168 | 53 | Julien Enselme | db_full_backup_number=3 |
169 | 53 | Julien Enselme | db_individual_manual_backup_number=2 |
170 | 53 | Julien Enselme | db_individual_auto_backup_number=3 |
171 | 1 | Julien Enselme | |
172 | 1 | Julien Enselme | dir_backup="$dir_multi_assos/backup" |
173 | 1 | Julien Enselme | dir_full_backup="$dir_backup/full" |
174 | 1 | Julien Enselme | dir_individual_backup="$dir_backup/individual" |
175 | 1 | Julien Enselme | dir_individual_manual_backup="$dir_individual_backup/manual" |
176 | 1 | Julien Enselme | dir_individual_auto_backup="$dir_individual_backup/auto" |
177 | 1 | Julien Enselme | |
178 | 1 | Julien Enselme | |
179 | 1 | Julien Enselme | ###### D7 variables |
180 | 1 | Julien Enselme | d7_dir="$dir_multi_assos/htmltest" |
181 | 1 | Julien Enselme | d7_dir_sites="$d7_dir/sites" |
182 | 1 | Julien Enselme | |
183 | 1 | Julien Enselme | ### Log |
184 | 1 | Julien Enselme | d7_dir_log="$dir_log/d7" |
185 | 1 | Julien Enselme | |
186 | 1 | Julien Enselme | ### Backup |
187 | 1 | Julien Enselme | d7_dir_full_backup="$dir_full_backup/d7" |
188 | 87 | Julien Enselme | d7_dir_individual_manual_backup="$dir_individual_manual_backup/d7" |
189 | 87 | Julien Enselme | d7_dir_individual_auto_backup="$dir_individual_auto_backup/d7" |
190 | 87 | Julien Enselme | |
191 | 88 | Julien Enselme | ### Template |
192 | 1 | Julien Enselme | d7_settings_name="d7-settings.php" |
193 | 1 | Julien Enselme | d7_settings_local_template_name="d7-settings-local-template.php" |
194 | 1 | Julien Enselme | d7_settings="$dir_template/$d7_settings_name" |
195 | 1 | Julien Enselme | d7_settings_local_template="$dir_template/$d7_settings_local_template_name" |
196 | 1 | Julien Enselme | |
197 | 1 | Julien Enselme | |
198 | 1 | Julien Enselme | ###### D6 variables |
199 | 1 | Julien Enselme | d6_dir="$dir_multi_assos/html" |
200 | 1 | Julien Enselme | d6_dir_sites="$d6_dir/sites" |
201 | 1 | Julien Enselme | |
202 | 64 | Julien Enselme | ### Backup |
203 | 64 | Julien Enselme | d6_dir_full_backup="$dir_full_backup/d6" |
204 | 64 | Julien Enselme | d6_dir_individual_manual_backup="$dir_individual_manual_backup/d6" |
205 | 64 | Julien Enselme | d6_dir_individual_auto_backup="$dir_individual_auto_backup/d6" |
206 | 64 | Julien Enselme | </code> |
207 | 77 | Julien Enselme | </pre> |
208 | 77 | Julien Enselme | |
209 | 77 | Julien Enselme | h3. scripts-config-site.sh |
210 | 77 | Julien Enselme | |
211 | 64 | Julien Enselme | Ce script est complémentaire du précédent. Il permet d’initialiser les variables spécifiques à un site. Il prend le nom du site en question comme argument. *Il doit être utilisé pour les mêmes raisons que le précédent*. |
212 | 64 | Julien Enselme | |
213 | 64 | Julien Enselme | La commande @check_arguments@ n’est pas utilisée afin de ne pas avoir à importer @scripts-utils.sh@ et ainsi éviter des imports multiples. |
214 | 64 | Julien Enselme | |
215 | 64 | Julien Enselme | <pre> |
216 | 64 | Julien Enselme | <code class="php"> |
217 | 64 | Julien Enselme | #!/bin/sh |
218 | 64 | Julien Enselme | |
219 | 64 | Julien Enselme | # Sets useful variables of a site. |
220 | 64 | Julien Enselme | # ARGS: site_name |
221 | 64 | Julien Enselme | # Requires scripts-config.sh |
222 | 64 | Julien Enselme | |
223 | 64 | Julien Enselme | # Check if scripts-config.sh is imported. |
224 | 64 | Julien Enselme | if [ -z $scripts_config ] ; then |
225 | 64 | Julien Enselme | echo "Import of scripts-config.sh required." |
226 | 64 | Julien Enselme | exit 1 |
227 | 64 | Julien Enselme | fi |
228 | 64 | Julien Enselme | |
229 | 64 | Julien Enselme | if [ -z $1 ] ; then |
230 | 64 | Julien Enselme | echo "This script needs a site name as argument." |
231 | 64 | Julien Enselme | exit 1 |
232 | 64 | Julien Enselme | fi |
233 | 1 | Julien Enselme | |
234 | 64 | Julien Enselme | scripts_config_site='imported' |
235 | 87 | Julien Enselme | |
236 | 53 | Julien Enselme | d7_site_name=$1 |
237 | 53 | Julien Enselme | d7_site_dir="$d7_dir_sites/assos.centrale-marseille.fr.$d7_site_name" |
238 | 53 | Julien Enselme | d7_site_settings="$d7_site_dir/settings.php" |
239 | 53 | Julien Enselme | d7_site_settings_local="$d7_site_dir/settings.local.php" |
240 | 53 | Julien Enselme | </code> |
241 | 79 | Julien Enselme | </pre> |
242 | 79 | Julien Enselme | |
243 | 53 | Julien Enselme | h3. scripts-utils.sh |
244 | 53 | Julien Enselme | |
245 | 53 | Julien Enselme | Ce script propose des commandes utiles qui peuvent être utilisées dans divers script. Il a été écrit afin de factoriser au maximum le code. |
246 | 53 | Julien Enselme | |
247 | 53 | Julien Enselme | <pre> |
248 | 53 | Julien Enselme | <code class="php"> |
249 | 1 | Julien Enselme | #!/bin/sh |
250 | 53 | Julien Enselme | |
251 | 53 | Julien Enselme | # This script contains useful functions for other scripts. |
252 | 87 | Julien Enselme | |
253 | 53 | Julien Enselme | # Check if scripts-config.sh is imported. |
254 | 53 | Julien Enselme | if [ -z $scripts_config ] ; then |
255 | 53 | Julien Enselme | echo "Import of scripts-config.sh required." |
256 | 53 | Julien Enselme | . scripts-config.sh |
257 | 53 | Julien Enselme | fi |
258 | 53 | Julien Enselme | |
259 | 53 | Julien Enselme | scripts_utils='imported' |
260 | 53 | Julien Enselme | |
261 | 53 | Julien Enselme | ask_password() { |
262 | 53 | Julien Enselme | # read -s doesn't work with sh. |
263 | 53 | Julien Enselme | # usage: pass=`ask_password "password please:"` |
264 | 53 | Julien Enselme | echo $1 >&2 |
265 | 53 | Julien Enselme | echo -n ">" >&2 |
266 | 53 | Julien Enselme | stty_avant=`stty -g` |
267 | 53 | Julien Enselme | stty -echo |
268 | 53 | Julien Enselme | read password |
269 | 53 | Julien Enselme | stty $stty_avant |
270 | 53 | Julien Enselme | echo "$password" |
271 | 53 | Julien Enselme | unset password |
272 | 53 | Julien Enselme | } |
273 | 53 | Julien Enselme | |
274 | 53 | Julien Enselme | ask_password_db() { |
275 | 53 | Julien Enselme | # ARGS: server_name, user_name |
276 | 53 | Julien Enselme | local db_password="pour_boucler" |
277 | 53 | Julien Enselme | # empty db request to validate password |
278 | 53 | Julien Enselme | while ! mysql -h $1 -u $2 -p$db_password -e "" 2>/dev/null ; do |
279 | 53 | Julien Enselme | db_password=`ask_password "database password:"` |
280 | 53 | Julien Enselme | done |
281 | 53 | Julien Enselme | echo $db_password |
282 | 53 | Julien Enselme | } |
283 | 53 | Julien Enselme | |
284 | 53 | Julien Enselme | generate_password(){ |
285 | 53 | Julien Enselme | # ARGS: [password_length] |
286 | 53 | Julien Enselme | # The password contains special characters. '/' must be excluded to avoid sed malfunction. |
287 | 53 | Julien Enselme | |
288 | 53 | Julien Enselme | local site_password='/' |
289 | 53 | Julien Enselme | |
290 | 53 | Julien Enselme | if [ -z $1 ] ; then |
291 | 53 | Julien Enselme | local password_length=20 |
292 | 53 | Julien Enselme | else |
293 | 53 | Julien Enselme | local password_length=$1 |
294 | 53 | Julien Enselme | fi |
295 | 53 | Julien Enselme | |
296 | 53 | Julien Enselme | while echo "$site_password" | grep -Fq '/' ; do |
297 | 53 | Julien Enselme | site_password=`dd if=/dev/urandom count=1 | uuencode -m - | head -n 2 | tail -n 1 | cut -c-$password_length` |
298 | 53 | Julien Enselme | done |
299 | 53 | Julien Enselme | |
300 | 53 | Julien Enselme | echo $site_password |
301 | 53 | Julien Enselme | } |
302 | 53 | Julien Enselme | |
303 | 1 | Julien Enselme | count_d7_sites(){ |
304 | 65 | Julien Enselme | find $d7_dir_sites -type d ! -name all -maxdepth 1 | wc -l |
305 | 53 | Julien Enselme | } |
306 | 1 | Julien Enselme | |
307 | 87 | Julien Enselme | check_arguments() { |
308 | 1 | Julien Enselme | # ARGS: number of arguments passed to script, number of arguments required, [help text] |
309 | 1 | Julien Enselme | if [ $1 -lt $2 ] ; then |
310 | 1 | Julien Enselme | echo "Number of arguments insuffisant." |
311 | 87 | Julien Enselme | echo -e $3 |
312 | 87 | Julien Enselme | exit 1 |
313 | 87 | Julien Enselme | fi |
314 | 87 | Julien Enselme | } |
315 | 87 | Julien Enselme | |
316 | 87 | Julien Enselme | generate_settings_local() { |
317 | 87 | Julien Enselme | # ARGS: site_name, site_password, d7_settings_local_template, d7_site_settings_local |
318 | 87 | Julien Enselme | sed "s/\%\%DBUSER\%\%/$1/ ; s/\%\%DBNAME\%\%/$1/ ; s/\%\%DBPASS\%\%/$2/ ; s/\%\%SITE_NAME\%\%/$1/" < $3 > $4 |
319 | 87 | Julien Enselme | } |
320 | 87 | Julien Enselme | |
321 | 87 | Julien Enselme | give_dir(){ |
322 | 87 | Julien Enselme | # ARG: file |
323 | 53 | Julien Enselme | # Return the abosulte directory path of a file or a dir. |
324 | 53 | Julien Enselme | settings_location=`realpath $1` |
325 | 53 | Julien Enselme | echo `dirname $settings_location` |
326 | 53 | Julien Enselme | } |
327 | 53 | Julien Enselme | </code> |
328 | 53 | Julien Enselme | </pre> |
329 | 53 | Julien Enselme | |
330 | 53 | Julien Enselme | h2. Scripts généraux |
331 | 53 | Julien Enselme | |
332 | 53 | Julien Enselme | h3. all-reset-permissions.sh |
333 | 53 | Julien Enselme | |
334 | 84 | Julien Enselme | <pre> |
335 | 21 | Florent Torregrosa | <code class="php"> |
336 | 21 | Florent Torregrosa | #!/bin/sh |
337 | 21 | Florent Torregrosa | |
338 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
339 | 21 | Florent Torregrosa | |
340 | 21 | Florent Torregrosa | # This script puts the correct permissions to sites folders, settings.php and scripts. |
341 | 21 | Florent Torregrosa | |
342 | 35 | Florent Torregrosa | ######### drupal 6 |
343 | 35 | Florent Torregrosa | for dir in `find $d6_dir_sites -type d -maxdepth 1 -mindepth 1 ! -name all ! -name images ! -name languages` ; do |
344 | 1 | Julien Enselme | chmod 755 $dir |
345 | 35 | Florent Torregrosa | chmod 400 $dir/settings.php |
346 | 35 | Florent Torregrosa | done |
347 | 35 | Florent Torregrosa | |
348 | 87 | Julien Enselme | ######### drupal 7 |
349 | 21 | Florent Torregrosa | for dir in `find $d7_dir_sites -type d -maxdepth 1 -mindepth 1 ! -name all` ; do |
350 | 21 | Florent Torregrosa | chmod 755 $dir |
351 | 1 | Julien Enselme | chmod 400 $dir/settings.php |
352 | 21 | Florent Torregrosa | chmod 400 $dir/settings.local.php |
353 | 21 | Florent Torregrosa | done |
354 | 21 | Florent Torregrosa | |
355 | 21 | Florent Torregrosa | ####### bin |
356 | 21 | Florent Torregrosa | chmod -R 700 $dir_scripts |
357 | 21 | Florent Torregrosa | |
358 | 21 | Florent Torregrosa | ####### backup |
359 | 21 | Florent Torregrosa | chmod -R 700 $dir_backup |
360 | 1 | Julien Enselme | |
361 | 21 | Florent Torregrosa | ####### log |
362 | 53 | Julien Enselme | chmod -R 700 $dir_log |
363 | 29 | Florent Torregrosa | </code> |
364 | 21 | Florent Torregrosa | </pre> |
365 | 21 | Florent Torregrosa | |
366 | 21 | Florent Torregrosa | h3. contrib-usage.sh |
367 | 21 | Florent Torregrosa | |
368 | 84 | Julien Enselme | <pre> |
369 | 21 | Florent Torregrosa | <code class="php"> |
370 | 21 | Florent Torregrosa | #!/bin/sh |
371 | 66 | Julien Enselme | |
372 | 66 | Julien Enselme | . /users/guest/assos/bin/scripts-config.sh |
373 | 66 | Julien Enselme | . scripts-utils.sh |
374 | 21 | Florent Torregrosa | |
375 | 66 | Julien Enselme | help="# ARGS: Drupal_version, project_status, project_name\n |
376 | 21 | Florent Torregrosa | # List sites that have the project_name with the corresponding project_status.\n |
377 | 21 | Florent Torregrosa | # project status: enabled or disabled" |
378 | 21 | Florent Torregrosa | |
379 | 21 | Florent Torregrosa | check_arguments $# 3 "$help" |
380 | 21 | Florent Torregrosa | |
381 | 21 | Florent Torregrosa | if [ $1 = d6 ] ; then |
382 | 29 | Florent Torregrosa | cd $d6_dir_sites |
383 | 21 | Florent Torregrosa | else |
384 | 21 | Florent Torregrosa | cd $d7_dir_sites |
385 | 21 | Florent Torregrosa | fi |
386 | 21 | Florent Torregrosa | |
387 | 1 | Julien Enselme | for dir in `find . -maxdepth 1 -mindepth 1 -type d ! -name all ! -name languages ! -name images | sort ` ; do |
388 | 21 | Florent Torregrosa | # List non-core projects that correspond to the status. |
389 | 21 | Florent Torregrosa | # Keep project_name if listed. |
390 | 21 | Florent Torregrosa | # Count line result. 0 if not listed or 1 if listed. |
391 | 21 | Florent Torregrosa | # Print site_dir if listed. |
392 | 21 | Florent Torregrosa | |
393 | 21 | Florent Torregrosa | cd $dir; |
394 | 21 | Florent Torregrosa | if [ 1 -eq `drush pml --no-core --status=$2 | grep $3 | wc -l` ] ; then |
395 | 1 | Julien Enselme | echo $dir; |
396 | 21 | Florent Torregrosa | fi |
397 | 21 | Florent Torregrosa | cd - |
398 | 53 | Julien Enselme | done |
399 | 21 | Florent Torregrosa | </code> |
400 | 41 | Florent Torregrosa | </pre> |
401 | 21 | Florent Torregrosa | |
402 | 1 | Julien Enselme | h3. delete-temporary-files.sh |
403 | 1 | Julien Enselme | |
404 | 84 | Julien Enselme | <pre> |
405 | 53 | Julien Enselme | <code class="php"> |
406 | 53 | Julien Enselme | #!/bin/sh |
407 | 53 | Julien Enselme | |
408 | 53 | Julien Enselme | . /users/guest/assos/bin/scripts-config.sh |
409 | 53 | Julien Enselme | |
410 | 53 | Julien Enselme | find $dir_multi_assos -name '*~' -delete |
411 | 53 | Julien Enselme | </code> |
412 | 53 | Julien Enselme | </pre> |
413 | 53 | Julien Enselme | |
414 | 53 | Julien Enselme | h3. disk-usage.sh |
415 | 53 | Julien Enselme | |
416 | 84 | Julien Enselme | <pre> |
417 | 53 | Julien Enselme | <code class="php"> |
418 | 53 | Julien Enselme | #!/bin/sh |
419 | 53 | Julien Enselme | |
420 | 53 | Julien Enselme | . /users/guest/assos/bin/scripts-config.sh |
421 | 53 | Julien Enselme | |
422 | 53 | Julien Enselme | echo -e "Quotas: 9.1 GB\n" |
423 | 53 | Julien Enselme | |
424 | 53 | Julien Enselme | echo "Assos:" |
425 | 53 | Julien Enselme | du -hcs $dir_multi_assos | grep total |
426 | 53 | Julien Enselme | echo -e "\n" |
427 | 53 | Julien Enselme | |
428 | 53 | Julien Enselme | echo "D6:" |
429 | 53 | Julien Enselme | cd $d6_dir_sites |
430 | 53 | Julien Enselme | du -h -d 1 |
431 | 53 | Julien Enselme | echo -e "\n" |
432 | 53 | Julien Enselme | |
433 | 53 | Julien Enselme | echo "D7:" |
434 | 53 | Julien Enselme | cd $d7_dir_sites |
435 | 53 | Julien Enselme | du -h -d 1 |
436 | 53 | Julien Enselme | echo -e "\n" |
437 | 53 | Julien Enselme | |
438 | 53 | Julien Enselme | echo "Logs:" |
439 | 53 | Julien Enselme | du -hcs $dir_log | grep total |
440 | 53 | Julien Enselme | echo -e "\n" |
441 | 53 | Julien Enselme | |
442 | 53 | Julien Enselme | echo "Backups:" |
443 | 53 | Julien Enselme | cd $dir_backup |
444 | 53 | Julien Enselme | du -h -d 2 |
445 | 53 | Julien Enselme | </code> |
446 | 81 | Julien Enselme | </pre> |
447 | 81 | Julien Enselme | |
448 | 53 | Julien Enselme | h3. flush-files.sh |
449 | 53 | Julien Enselme | |
450 | 53 | Julien Enselme | Ce script se contente d’afficher un warning si scripts-utils.sh afin de pouvoir l’utiliser directement depuis le terminal. |
451 | 53 | Julien Enselme | |
452 | 66 | Julien Enselme | <pre> |
453 | 53 | Julien Enselme | <code class="php"> |
454 | 1 | Julien Enselme | #!/bin/sh |
455 | 81 | Julien Enselme | |
456 | 53 | Julien Enselme | help="# ARGS: number of files to keep, [email address]\n |
457 | 53 | Julien Enselme | # usage: flush files from a folder except a number equal to argument." |
458 | 57 | Julien Enselme | |
459 | 53 | Julien Enselme | # Check if scripts-utils.sh is imported. |
460 | 53 | Julien Enselme | if [ -z $scripts_utils ] ; then |
461 | 66 | Julien Enselme | echo "Import of scripts-utils.sh required." |
462 | 53 | Julien Enselme | . scripts-utils.sh |
463 | 53 | Julien Enselme | fi |
464 | 60 | Julien Enselme | |
465 | 53 | Julien Enselme | check_arguments $# 1 "$help" |
466 | 1 | Julien Enselme | |
467 | 1 | Julien Enselme | backups_number=`ls | wc -l` |
468 | 53 | Julien Enselme | let "number_of_backups_to_delete = backups_number - $1" > /dev/null |
469 | 60 | Julien Enselme | |
470 | 60 | Julien Enselme | if [ $number_of_backups_to_delete -gt 0 ] ; then |
471 | 60 | Julien Enselme | ls | head -$number_of_backups_to_delete | xargs rm |
472 | 60 | Julien Enselme | else |
473 | 53 | Julien Enselme | if [ ! -z $2 ] ; then |
474 | 53 | Julien Enselme | dir=`pwd` |
475 | 53 | Julien Enselme | echo "There are not enough files in $dir to Flush it. Check if backup script works fine." | mail -s "[db] $dir has a backup problem" $2 |
476 | 53 | Julien Enselme | fi |
477 | 53 | Julien Enselme | fi |
478 | 53 | Julien Enselme | </code> |
479 | 53 | Julien Enselme | </pre> |
480 | 53 | Julien Enselme | |
481 | 53 | Julien Enselme | h3. flush-full-databases-backups.sh |
482 | 53 | Julien Enselme | |
483 | 84 | Julien Enselme | <pre> |
484 | 53 | Julien Enselme | <code class="php"> |
485 | 53 | Julien Enselme | #!/bin/sh |
486 | 53 | Julien Enselme | |
487 | 53 | Julien Enselme | . /users/guest/assos/bin/scripts-config.sh |
488 | 53 | Julien Enselme | |
489 | 53 | Julien Enselme | # ARGS: Drupal version |
490 | 53 | Julien Enselme | |
491 | 53 | Julien Enselme | cd $dir_full_backup/$1 |
492 | 53 | Julien Enselme | |
493 | 53 | Julien Enselme | for dir in `ls` ; do |
494 | 53 | Julien Enselme | cd $dir |
495 | 53 | Julien Enselme | flush-files.sh $db_full_backup_number $email_multi_assos |
496 | 53 | Julien Enselme | cd - |
497 | 53 | Julien Enselme | done |
498 | 53 | Julien Enselme | </code> |
499 | 53 | Julien Enselme | </pre> |
500 | 53 | Julien Enselme | |
501 | 53 | Julien Enselme | h3. flush-individual-databases-backups.sh |
502 | 53 | Julien Enselme | |
503 | 84 | Julien Enselme | <pre> |
504 | 1 | Julien Enselme | <code class="php"> |
505 | 1 | Julien Enselme | #!/bin/sh |
506 | 1 | Julien Enselme | |
507 | 1 | Julien Enselme | . /users/guest/assos/bin/scripts-config.sh |
508 | 1 | Julien Enselme | |
509 | 1 | Julien Enselme | # ARGS: manual or auto, Drupal version |
510 | 1 | Julien Enselme | |
511 | 1 | Julien Enselme | cd $dir_individual_backup/$1/$2 |
512 | 1 | Julien Enselme | |
513 | 1 | Julien Enselme | for dir in `ls` ; do |
514 | 1 | Julien Enselme | cd $dir |
515 | 1 | Julien Enselme | if [ $1 = 'auto' ] ; then |
516 | 1 | Julien Enselme | flush-files.sh $db_individual_auto_backup_number $email_multi_assos |
517 | 1 | Julien Enselme | else |
518 | 1 | Julien Enselme | flush-files.sh $db_individual_manual_backup_number |
519 | 1 | Julien Enselme | fi |
520 | 1 | Julien Enselme | cd - |
521 | 1 | Julien Enselme | done |
522 | 80 | Julien Enselme | </code> |
523 | 80 | Julien Enselme | </pre> |
524 | 80 | Julien Enselme | |
525 | 80 | Julien Enselme | h2. Scripts Drupal 6 |
526 | 80 | Julien Enselme | |
527 | 80 | Julien Enselme | h3. drushcronone |
528 | 80 | Julien Enselme | |
529 | 80 | Julien Enselme | Ce script permet de lancer les tâches planifiées sur un site Drupal 6. En effet, sous Drupal 6 les webmasters ne peuvent choisir via l’interface d’administration de Drupal. |
530 | 80 | Julien Enselme | |
531 | 84 | Julien Enselme | <pre> |
532 | 80 | Julien Enselme | <code class="php"> |
533 | 80 | Julien Enselme | #!/bin/sh |
534 | 80 | Julien Enselme | |
535 | 80 | Julien Enselme | . /users/guest/assos/bin/scripts-config.sh |
536 | 80 | Julien Enselme | |
537 | 80 | Julien Enselme | if [ $# -lt 1 ]; then |
538 | 80 | Julien Enselme | echo "usage: $0 <site's folder name>" |
539 | 80 | Julien Enselme | exit 1 |
540 | 80 | Julien Enselme | fi |
541 | 80 | Julien Enselme | |
542 | 80 | Julien Enselme | cd "$d6_sites_dir/$*" |
543 | 53 | Julien Enselme | pwd; |
544 | 53 | Julien Enselme | drush cron; |
545 | 53 | Julien Enselme | </code> |
546 | 53 | Julien Enselme | </pre> |
547 | 53 | Julien Enselme | |
548 | 53 | Julien Enselme | h3. d6-all-drush.sh |
549 | 53 | Julien Enselme | |
550 | 84 | Julien Enselme | <pre> |
551 | 21 | Florent Torregrosa | <code class="php"> |
552 | 21 | Florent Torregrosa | #!/bin/sh |
553 | 66 | Julien Enselme | |
554 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
555 | 66 | Julien Enselme | . scripts-utils.sh |
556 | 21 | Florent Torregrosa | |
557 | 21 | Florent Torregrosa | help="# ARGS: drush_command" |
558 | 21 | Florent Torregrosa | |
559 | 21 | Florent Torregrosa | check_arguments $# 1 "$help" |
560 | 21 | Florent Torregrosa | |
561 | 1 | Julien Enselme | for dir in `find $d6_dir_sites -maxdepth 1 -mindepth 1 -type d ! -name all ! -name languages ! -name images | sort` ; do |
562 | 21 | Florent Torregrosa | cd $dir |
563 | 45 | Florent Torregrosa | echo $dir |
564 | 21 | Florent Torregrosa | drush $* |
565 | 53 | Julien Enselme | done |
566 | 45 | Florent Torregrosa | </code> |
567 | 37 | Florent Torregrosa | </pre> |
568 | 37 | Florent Torregrosa | |
569 | 37 | Florent Torregrosa | h3. d6-all-dump-full.sh |
570 | 37 | Florent Torregrosa | |
571 | 84 | Julien Enselme | <pre> |
572 | 37 | Florent Torregrosa | <code class="php"> |
573 | 37 | Florent Torregrosa | #!/bin/sh |
574 | 37 | Florent Torregrosa | |
575 | 37 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
576 | 37 | Florent Torregrosa | |
577 | 41 | Florent Torregrosa | current_date=`date "+%Y-%m-%d-%Hh%Mm%Ss"` |
578 | 1 | Julien Enselme | |
579 | 37 | Florent Torregrosa | # Dump D6 database with webassos user. |
580 | 37 | Florent Torregrosa | mysqldump --single-transaction webassos -h myweb.serv.int -u webassos --password=password > $d6_dir_full_backup/webassos/$current_date.webassos.sql |
581 | 21 | Florent Torregrosa | </code> |
582 | 21 | Florent Torregrosa | </pre> |
583 | 21 | Florent Torregrosa | |
584 | 21 | Florent Torregrosa | h3. d6-all-reset-variables.sh |
585 | 21 | Florent Torregrosa | |
586 | 84 | Julien Enselme | <pre> |
587 | 21 | Florent Torregrosa | <code class="php"> |
588 | 21 | Florent Torregrosa | #!/bin/sh |
589 | 1 | Julien Enselme | |
590 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
591 | 21 | Florent Torregrosa | |
592 | 21 | Florent Torregrosa | cd $d6_dir_sites |
593 | 21 | Florent Torregrosa | d6-all-drush.sh vset --always-set reverse_proxy TRUE |
594 | 21 | Florent Torregrosa | d6-all-drush.sh vset --always-set --format=json reverse_proxy_addresses '["147.94.19.16","147.94.19.17"]' |
595 | 53 | Julien Enselme | drush @sites -y ev "variable_set('update_notify_emails', array('@email_multi_assos'));" |
596 | 21 | Florent Torregrosa | </code> |
597 | 21 | Florent Torregrosa | </pre> |
598 | 21 | Florent Torregrosa | |
599 | 21 | Florent Torregrosa | h3. d6-all-update-contrib.sh |
600 | 21 | Florent Torregrosa | |
601 | 84 | Julien Enselme | <pre> |
602 | 21 | Florent Torregrosa | <code class="php"> |
603 | 21 | Florent Torregrosa | #!/bin/sh |
604 | 1 | Julien Enselme | |
605 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
606 | 21 | Florent Torregrosa | |
607 | 21 | Florent Torregrosa | d6-all-drush.sh -y en update |
608 | 21 | Florent Torregrosa | # Launch cron to check for updates. |
609 | 21 | Florent Torregrosa | d6-all-drush.sh -q cron |
610 | 21 | Florent Torregrosa | |
611 | 1 | Julien Enselme | d6-all-drush.sh cc all |
612 | 1 | Julien Enselme | d6-all-dump-full.sh |
613 | 1 | Julien Enselme | |
614 | 1 | Julien Enselme | d6-all-drush.sh -y upc --no-core |
615 | 1 | Julien Enselme | d6-all-drush.sh -y updb |
616 | 1 | Julien Enselme | |
617 | 1 | Julien Enselme | d6-all-drush.sh -y dis update |
618 | 41 | Florent Torregrosa | |
619 | 53 | Julien Enselme | d6-all-drush.sh cron |
620 | 41 | Florent Torregrosa | </code> |
621 | 41 | Florent Torregrosa | </pre> |
622 | 41 | Florent Torregrosa | |
623 | 41 | Florent Torregrosa | h3. d6-dump-individual.sh |
624 | 41 | Florent Torregrosa | |
625 | 84 | Julien Enselme | <pre> |
626 | 21 | Florent Torregrosa | <code class="php"> |
627 | 21 | Florent Torregrosa | #!/bin/sh |
628 | 21 | Florent Torregrosa | |
629 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
630 | 21 | Florent Torregrosa | |
631 | 1 | Julien Enselme | # ARGS: auto or manual, site_prefix |
632 | 1 | Julien Enselme | # WARNING : backup are regularly flushed, put your backup in a safe place. |
633 | 1 | Julien Enselme | |
634 | 84 | Julien Enselme | cd $dir_individual_backup |
635 | 21 | Florent Torregrosa | |
636 | 1 | Julien Enselme | #!/bin/sh |
637 | 21 | Florent Torregrosa | |
638 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
639 | 21 | Florent Torregrosa | |
640 | 21 | Florent Torregrosa | # ARGS: auto or manual, site_prefix |
641 | 41 | Florent Torregrosa | # WARNING : backup are regularly flushed, put your backup in a safe place. |
642 | 41 | Florent Torregrosa | |
643 | 41 | Florent Torregrosa | cd $dir_individual_backup |
644 | 41 | Florent Torregrosa | |
645 | 21 | Florent Torregrosa | #récupération des tables du site dans le fichier liste_tables.temp |
646 | 21 | Florent Torregrosa | tables='_%' |
647 | 21 | Florent Torregrosa | liste="$1$tables" |
648 | 21 | Florent Torregrosa | |
649 | 21 | Florent Torregrosa | mysql -h myweb.serv.int -u webassos --password=HBVH2ljgyZCA0AP251DY -BNe "show tables like '"$liste"'" webassos | tr '\r\n' ' ' > liste_tables.temp |
650 | 1 | Julien Enselme | |
651 | 21 | Florent Torregrosa | #transformation de cette liste en une variable |
652 | 21 | Florent Torregrosa | var=$(cat liste_tables.temp) |
653 | 21 | Florent Torregrosa | |
654 | 21 | Florent Torregrosa | #sauvegarde de toutes ces tables |
655 | 1 | Julien Enselme | current_date=`date "+%Y-%m-%d-%Hh%Mm%Ss"` |
656 | 21 | Florent Torregrosa | suffixe="_dump$current_date.sql" |
657 | 21 | Florent Torregrosa | fichier="$1$suffixe" |
658 | 1 | Julien Enselme | |
659 | 21 | Florent Torregrosa | if [ $1 = 'auto' ] ; then |
660 | 1 | Julien Enselme | mysqldump webassos -h myweb.serv.int -u webassos --password=HBVH2ljgyZCA0AP251DY $var > $d6_dir_individual_auto_backup/$fichier |
661 | 1 | Julien Enselme | else |
662 | 21 | Florent Torregrosa | mysqldump webassos -h myweb.serv.int -u webassos --password=HBVH2ljgyZCA0AP251DY $var > $d6_dir_individual_manual_backup/$fichier |
663 | 21 | Florent Torregrosa | fi |
664 | 21 | Florent Torregrosa | |
665 | 21 | Florent Torregrosa | #suppression du fichier temporaire utilisé |
666 | 53 | Julien Enselme | rm liste_tables.temp |
667 | 30 | Florent Torregrosa | </code> |
668 | 53 | Julien Enselme | </pre> |
669 | 53 | Julien Enselme | |
670 | 1 | Julien Enselme | h2. Scripts Drupal 7 |
671 | 30 | Florent Torregrosa | |
672 | 30 | Florent Torregrosa | h3. d7-all-drush-logged.sh |
673 | 30 | Florent Torregrosa | |
674 | 84 | Julien Enselme | <pre> |
675 | 30 | Florent Torregrosa | <code class="php"> |
676 | 30 | Florent Torregrosa | #!/bin/sh |
677 | 66 | Julien Enselme | |
678 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
679 | 66 | Julien Enselme | . scripts-utils.sh |
680 | 1 | Julien Enselme | |
681 | 21 | Florent Torregrosa | help="# ARGS: drush_command" |
682 | 1 | Julien Enselme | |
683 | 21 | Florent Torregrosa | check_arguments $# 1 "$help" |
684 | 21 | Florent Torregrosa | |
685 | 21 | Florent Torregrosa | cd $d7_dir_sites |
686 | 21 | Florent Torregrosa | |
687 | 1 | Julien Enselme | for dir in `find . -maxdepth 1 -mindepth 1 -type d ! -name all | sort` ; do |
688 | 21 | Florent Torregrosa | cd $dir |
689 | 21 | Florent Torregrosa | current_date=`date "+%Y-%m-%d_%Hh:%Mm"` |
690 | 21 | Florent Torregrosa | echo "======$current_date======" >> $d7_dir_log/$dir.log |
691 | 21 | Florent Torregrosa | echo "Arguments are: $* " >> $d7_dir_log/$dir.log |
692 | 21 | Florent Torregrosa | drush $* >> $d7_dir_log/$dir.log |
693 | 21 | Florent Torregrosa | #To have the same caracters limit we needed 'end' that have 4 caracters, we used the Croate language for this ! LOL |
694 | 21 | Florent Torregrosa | echo -e "=============KRAJ=============\n" >> $d7_dir_log/$dir.log |
695 | 41 | Florent Torregrosa | cd - |
696 | 53 | Julien Enselme | done |
697 | 21 | Florent Torregrosa | </code> |
698 | 21 | Florent Torregrosa | </pre> |
699 | 21 | Florent Torregrosa | |
700 | 21 | Florent Torregrosa | h3. d7-all-drush.sh |
701 | 21 | Florent Torregrosa | |
702 | 84 | Julien Enselme | <pre> |
703 | 1 | Julien Enselme | <code class="php"> |
704 | 21 | Florent Torregrosa | #!/bin/sh |
705 | 66 | Julien Enselme | |
706 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
707 | 66 | Julien Enselme | . scripts-utils.sh |
708 | 21 | Florent Torregrosa | |
709 | 21 | Florent Torregrosa | help="# ARGS: drush_command" |
710 | 21 | Florent Torregrosa | |
711 | 21 | Florent Torregrosa | check_arguments $# 1 "$help" |
712 | 21 | Florent Torregrosa | |
713 | 21 | Florent Torregrosa | for dir in `find $d7_dir_sites -maxdepth 1 -mindepth 1 -type d ! -name all | sort` ; do |
714 | 21 | Florent Torregrosa | cd $dir |
715 | 21 | Florent Torregrosa | echo $dir |
716 | 21 | Florent Torregrosa | drush $* |
717 | 53 | Julien Enselme | done |
718 | 21 | Florent Torregrosa | </code> |
719 | 45 | Florent Torregrosa | </pre> |
720 | 21 | Florent Torregrosa | |
721 | 1 | Julien Enselme | h3. d7-all-dump-full.sh |
722 | 21 | Florent Torregrosa | |
723 | 84 | Julien Enselme | <pre> |
724 | 21 | Florent Torregrosa | <code class="php"> |
725 | 21 | Florent Torregrosa | #!/bin/sh |
726 | 21 | Florent Torregrosa | |
727 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
728 | 21 | Florent Torregrosa | |
729 | 41 | Florent Torregrosa | current_date=`date "+%Y-%m-%d-%Hh%Mm%Ss"` |
730 | 41 | Florent Torregrosa | |
731 | 41 | Florent Torregrosa | # Dump D7 databases at once. |
732 | 53 | Julien Enselme | mysqldump -h $db_server -u $db_user -ppassword --all-databases > $d7_dir_full_backup/myassos/$current_date.d7_full.sql |
733 | 21 | Florent Torregrosa | </code> |
734 | 21 | Florent Torregrosa | </pre> |
735 | 41 | Florent Torregrosa | |
736 | 41 | Florent Torregrosa | h3. d7-all-dump-individual.sh |
737 | 41 | Florent Torregrosa | |
738 | 84 | Julien Enselme | <pre> |
739 | 62 | Julien Enselme | <code class="php"> |
740 | 21 | Florent Torregrosa | #!/bin/sh |
741 | 66 | Julien Enselme | |
742 | 1 | Julien Enselme | . /users/guest/assos/bin/scripts-config.sh |
743 | 66 | Julien Enselme | . scripts-utils.sh |
744 | 21 | Florent Torregrosa | |
745 | 21 | Florent Torregrosa | help="# ARGS: auto or manual" |
746 | 21 | Florent Torregrosa | |
747 | 21 | Florent Torregrosa | check_arguments $# 1 "$help" |
748 | 21 | Florent Torregrosa | |
749 | 21 | Florent Torregrosa | current_date=`date "+%Y-%m-%d-%Hh%Mm%Ss"` |
750 | 1 | Julien Enselme | |
751 | 21 | Florent Torregrosa | cd $d7_dir_sites |
752 | 21 | Florent Torregrosa | |
753 | 21 | Florent Torregrosa | for dir in `find . -maxdepth 1 -mindepth 1 -type d ! -name all | cut -c3-` ; do |
754 | 21 | Florent Torregrosa | cd $dir |
755 | 1 | Julien Enselme | drush cc all |
756 | 21 | Florent Torregrosa | if [ $1 = 'auto' ] ; then |
757 | 21 | Florent Torregrosa | drush sql-dump --result-file="$d7_dir_individual_auto_backup/$dir/$current_date.$dir.sql" |
758 | 21 | Florent Torregrosa | else |
759 | 21 | Florent Torregrosa | drush sql-dump --result-file="$d7_dir_individual_manual_backup/$dir/$current_date.$dir.sql" |
760 | 21 | Florent Torregrosa | fi |
761 | 21 | Florent Torregrosa | cd - |
762 | 53 | Julien Enselme | done |
763 | 21 | Florent Torregrosa | </code> |
764 | 21 | Florent Torregrosa | </pre> |
765 | 21 | Florent Torregrosa | |
766 | 21 | Florent Torregrosa | h3. d7-all-releases-info.sh |
767 | 1 | Julien Enselme | |
768 | 84 | Julien Enselme | <pre> |
769 | 1 | Julien Enselme | <code class="php"> |
770 | 1 | Julien Enselme | #!/bin/sh |
771 | 1 | Julien Enselme | |
772 | 1 | Julien Enselme | . /users/guest/assos/bin/scripts-config.sh |
773 | 1 | Julien Enselme | |
774 | 1 | Julien Enselme | # List version of a module or theme that exists in sites/all/* |
775 | 1 | Julien Enselme | # and all versions that are available for same project on drupal.org |
776 | 1 | Julien Enselme | |
777 | 1 | Julien Enselme | # modules |
778 | 1 | Julien Enselme | cd $d7_dir_sites/all/modules |
779 | 1 | Julien Enselme | for dir in `ls -1` ; do |
780 | 1 | Julien Enselme | if [ -d $dir ] ; then |
781 | 1 | Julien Enselme | drush pm-releases $dir |
782 | 1 | Julien Enselme | fi |
783 | 1 | Julien Enselme | done |
784 | 1 | Julien Enselme | |
785 | 1 | Julien Enselme | # themes |
786 | 1 | Julien Enselme | cd $d7_dir_sites/all/themes |
787 | 21 | Florent Torregrosa | for dir in `ls -1` ; do |
788 | 21 | Florent Torregrosa | if [ -d $dir ] ; then |
789 | 21 | Florent Torregrosa | drush pm-releases $dir |
790 | 41 | Florent Torregrosa | fi |
791 | 53 | Julien Enselme | done |
792 | 41 | Florent Torregrosa | </code> |
793 | 1 | Julien Enselme | </pre> |
794 | 41 | Florent Torregrosa | |
795 | 41 | Florent Torregrosa | h3. d7-all-reset-variables.sh |
796 | 41 | Florent Torregrosa | |
797 | 84 | Julien Enselme | <pre> |
798 | 41 | Florent Torregrosa | <code class="php"> |
799 | 41 | Florent Torregrosa | #!/bin/sh |
800 | 41 | Florent Torregrosa | |
801 | 41 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
802 | 41 | Florent Torregrosa | |
803 | 41 | Florent Torregrosa | for dir in `find $d7_dir_sites -maxdepth 1 -mindepth 1 -type d ! -name all | sort` ; do |
804 | 41 | Florent Torregrosa | cd $dir |
805 | 1 | Julien Enselme | echo $dir |
806 | 41 | Florent Torregrosa | d7-reset-variables.sh |
807 | 53 | Julien Enselme | done |
808 | 41 | Florent Torregrosa | </code> |
809 | 41 | Florent Torregrosa | </pre> |
810 | 41 | Florent Torregrosa | |
811 | 1 | Julien Enselme | h3. d7-all-security-review.sh |
812 | 21 | Florent Torregrosa | |
813 | 84 | Julien Enselme | <pre> |
814 | 21 | Florent Torregrosa | <code class="php"> |
815 | 21 | Florent Torregrosa | #!/bin/sh |
816 | 59 | Florent Torregrosa | |
817 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
818 | 21 | Florent Torregrosa | |
819 | 21 | Florent Torregrosa | # grep -v success to keep site_name and error lines. |
820 | 53 | Julien Enselme | bash -c "d7-all-drush.sh security-review --store |& grep -v success | mail -s d7-all-security-review.sh $email_multi_assos" |
821 | 21 | Florent Torregrosa | </code> |
822 | 21 | Florent Torregrosa | </pre> |
823 | 21 | Florent Torregrosa | |
824 | 21 | Florent Torregrosa | h3. d7-all-update-contrib.sh |
825 | 21 | Florent Torregrosa | |
826 | 84 | Julien Enselme | <pre> |
827 | 1 | Julien Enselme | <code class="php"> |
828 | 21 | Florent Torregrosa | #!/bin/sh |
829 | 21 | Florent Torregrosa | |
830 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
831 | 21 | Florent Torregrosa | |
832 | 21 | Florent Torregrosa | d7-all-drush.sh -y en update |
833 | 21 | Florent Torregrosa | # Launch cron to check for updates. |
834 | 1 | Julien Enselme | d7-all-drush.sh -q cron |
835 | 21 | Florent Torregrosa | |
836 | 21 | Florent Torregrosa | d7-all-dump-individual.sh auto |
837 | 21 | Florent Torregrosa | |
838 | 21 | Florent Torregrosa | d7-all-drush-logged.sh -y upc --no-core |
839 | 90 | Florent Torregrosa | d7-all-drush.sh -y updb |
840 | 90 | Florent Torregrosa | |
841 | 21 | Florent Torregrosa | d7-all-drush.sh -y dis update |
842 | 21 | Florent Torregrosa | |
843 | 1 | Julien Enselme | d7-all-drush.sh cc all |
844 | 21 | Florent Torregrosa | |
845 | 53 | Julien Enselme | d7-all-drush.sh cron |
846 | 21 | Florent Torregrosa | </code> |
847 | 21 | Florent Torregrosa | </pre> |
848 | 21 | Florent Torregrosa | |
849 | 84 | Julien Enselme | h3. d7-all-update-localisation.sh |
850 | 21 | Florent Torregrosa | |
851 | 21 | Florent Torregrosa | <pre> |
852 | 21 | Florent Torregrosa | <code class="php"> |
853 | 21 | Florent Torregrosa | #!/bin/sh |
854 | 21 | Florent Torregrosa | |
855 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
856 | 21 | Florent Torregrosa | |
857 | 41 | Florent Torregrosa | d7-all-drush.sh -y en l10n_update |
858 | 53 | Julien Enselme | d7-all-drush.sh l10n-update-refresh |
859 | 1 | Julien Enselme | d7-all-drush.sh l10n-update |
860 | 21 | Florent Torregrosa | d7-all-drush.sh -y dis l10n_update |
861 | 1 | Julien Enselme | </code> |
862 | 1 | Julien Enselme | </pre> |
863 | 21 | Florent Torregrosa | |
864 | 21 | Florent Torregrosa | h3. d7-create-site.sh |
865 | 1 | Julien Enselme | |
866 | 84 | Julien Enselme | <pre> |
867 | 87 | Julien Enselme | <code class="php"> |
868 | 87 | Julien Enselme | #!/bin/sh |
869 | 21 | Florent Torregrosa | |
870 | 66 | Julien Enselme | . /users/guest/assos/bin/scripts-config.sh |
871 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config-site.sh $1 |
872 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-utils.sh |
873 | 66 | Julien Enselme | |
874 | 21 | Florent Torregrosa | help="# ARGS: site name" |
875 | 21 | Florent Torregrosa | |
876 | 21 | Florent Torregrosa | ######## Exceptions |
877 | 21 | Florent Torregrosa | check_arguments $# 1 "$help" |
878 | 21 | Florent Torregrosa | |
879 | 21 | Florent Torregrosa | # "-" is forbidden because it provokes database error. |
880 | 21 | Florent Torregrosa | if [ `echo $1 | grep -` ] ; then |
881 | 21 | Florent Torregrosa | echo '"-" is forbidden in the site name' |
882 | 21 | Florent Torregrosa | exit 1 |
883 | 41 | Florent Torregrosa | fi |
884 | 21 | Florent Torregrosa | |
885 | 21 | Florent Torregrosa | # Site name length must be lower or equal to 16 due to database limitations. |
886 | 21 | Florent Torregrosa | if [`echo $1 | wc -c` -gt 16 ] ; then |
887 | 1 | Julien Enselme | echo "site name can't have more than 16 characters" |
888 | 21 | Florent Torregrosa | exit 1 |
889 | 21 | Florent Torregrosa | fi |
890 | 21 | Florent Torregrosa | |
891 | 21 | Florent Torregrosa | ###### Initialisation |
892 | 21 | Florent Torregrosa | cd $d7_dir |
893 | 21 | Florent Torregrosa | db_password=`ask_password_db $db_server $db_user` |
894 | 21 | Florent Torregrosa | site_password=`generate_password` |
895 | 21 | Florent Torregrosa | |
896 | 21 | Florent Torregrosa | # Check if site database already exists. |
897 | 21 | Florent Torregrosa | if mysql -h $db_server -u $db_user -e "USE $d7_site_name" -p$db_password 2>/dev/null ; then |
898 | 21 | Florent Torregrosa | echo "Database $d7_site_name already exists" |
899 | 21 | Florent Torregrosa | exit 1 |
900 | 21 | Florent Torregrosa | fi |
901 | 21 | Florent Torregrosa | |
902 | 21 | Florent Torregrosa | # Check if site folder already exists. |
903 | 21 | Florent Torregrosa | if [ -d $d7_site_dir ] ; then |
904 | 21 | Florent Torregrosa | echo "Folder $d7_site_dir already exists" |
905 | 21 | Florent Torregrosa | exit 1 |
906 | 21 | Florent Torregrosa | fi |
907 | 21 | Florent Torregrosa | |
908 | 1 | Julien Enselme | ###### Main |
909 | 21 | Florent Torregrosa | mkdir $d7_site_dir |
910 | 21 | Florent Torregrosa | dir_site_name="assos.centrale-marseille.fr.$d7_site_name" |
911 | 1 | Julien Enselme | |
912 | 21 | Florent Torregrosa | # Backup requirements |
913 | 21 | Florent Torregrosa | mkdir $d7_dir_individual_auto_backup/$dir_site_name |
914 | 21 | Florent Torregrosa | mkdir $d7_dir_individual_manual_backup/$dir_site_name |
915 | 21 | Florent Torregrosa | current_date=`date "+%Y-%m-%d-%Hh%Mm%Ss"` |
916 | 21 | Florent Torregrosa | |
917 | 87 | Julien Enselme | # NB : ls sort by considering the 1st characters |
918 | 1 | Julien Enselme | touch $d7_dir_individual_auto_backup/$dir_site_name/$current_date.$dir_site_name.sql |
919 | 1 | Julien Enselme | touch $d7_dir_individual_auto_backup/$dir_site_name/$current_date.$dir_site_name.sql2 |
920 | 21 | Florent Torregrosa | touch $d7_dir_individual_auto_backup/$dir_site_name/$current_date.$dir_site_name.sql3 |
921 | 21 | Florent Torregrosa | touch $d7_dir_individual_auto_backup/$dir_site_name/$current_date.$dir_site_name.sql4 |
922 | 21 | Florent Torregrosa | |
923 | 21 | Florent Torregrosa | # Create and grant privileges on database |
924 | 87 | Julien Enselme | mysql -h $db_server -u $db_user -e "CREATE DATABASE $d7_site_name" -p$db_password |
925 | 87 | Julien Enselme | mysql -h $db_server -u $db_user -e "GRANT ALL PRIVILEGES ON $d7_site_name.* TO '$d7_site_name'@'%' IDENTIFIED BY '$site_password'" -p$db_password |
926 | 21 | Florent Torregrosa | |
927 | 21 | Florent Torregrosa | # Create settings.php |
928 | 21 | Florent Torregrosa | cp $d7_settings $d7_site_settings |
929 | 21 | Florent Torregrosa | generate_settings_local $d7_site_name $site_password $d7_settings_local_template $d7_site_settings_local |
930 | 21 | Florent Torregrosa | |
931 | 21 | Florent Torregrosa | # Create symbolic link |
932 | 21 | Florent Torregrosa | cd $d7_dir |
933 | 21 | Florent Torregrosa | ln -s . $d7_site_name |
934 | 1 | Julien Enselme | |
935 | 41 | Florent Torregrosa | # Next Instructions |
936 | 21 | Florent Torregrosa | echo "Go to http://assos.centrale-marseille.fr/$d7_site_name/install.php to continue." |
937 | 21 | Florent Torregrosa | echo "Press enter when ready to go on." |
938 | 21 | Florent Torregrosa | read key |
939 | 21 | Florent Torregrosa | |
940 | 21 | Florent Torregrosa | # Init variables |
941 | 21 | Florent Torregrosa | d7-reset-variables.sh $d7_site_name |
942 | 21 | Florent Torregrosa | |
943 | 21 | Florent Torregrosa | # Permissions |
944 | 21 | Florent Torregrosa | chmod -R 755 $d7_site_dir |
945 | 21 | Florent Torregrosa | chmod 400 $d7_site_settings |
946 | 21 | Florent Torregrosa | |
947 | 21 | Florent Torregrosa | # Last instructions |
948 | 21 | Florent Torregrosa | echo "Last instructions:" |
949 | 21 | Florent Torregrosa | echo "- Advice the webmaster to close account creation on the website" |
950 | 21 | Florent Torregrosa | echo "- Give the webmaster a link to the club Drupal's tutorials " |
951 | 21 | Florent Torregrosa | echo "- Create a node of type \"Site\" on default" |
952 | 53 | Julien Enselme | echo "- Register the webmaster on webmasters@listes.centrale-marseille.fr" |
953 | 21 | Florent Torregrosa | </code> |
954 | 21 | Florent Torregrosa | </pre> |
955 | 21 | Florent Torregrosa | |
956 | 21 | Florent Torregrosa | h3. d7-delete-site.sh |
957 | 21 | Florent Torregrosa | |
958 | 84 | Julien Enselme | <pre> |
959 | 21 | Florent Torregrosa | <code class="php"> |
960 | 21 | Florent Torregrosa | #!/bin/sh |
961 | 21 | Florent Torregrosa | |
962 | 66 | Julien Enselme | . /users/guest/assos/bin/scripts-config.sh |
963 | 21 | Florent Torregrosa | . scripts-config-site.sh $1 |
964 | 66 | Julien Enselme | . scripts-utils.sh |
965 | 21 | Florent Torregrosa | |
966 | 21 | Florent Torregrosa | help="# ARGS: site name." |
967 | 21 | Florent Torregrosa | |
968 | 21 | Florent Torregrosa | check_arguments $# 1 "$help" |
969 | 21 | Florent Torregrosa | |
970 | 21 | Florent Torregrosa | db_password=`ask_password_db $db_server $db_user` |
971 | 21 | Florent Torregrosa | |
972 | 1 | Julien Enselme | # Delete database. |
973 | 21 | Florent Torregrosa | mysql -h $db_server -u $db_user -p$db_password -e "DROP DATABASE $d7_site_name" |
974 | 21 | Florent Torregrosa | |
975 | 21 | Florent Torregrosa | # Delete MYSQL user. |
976 | 21 | Florent Torregrosa | mysql -h $db_server -u $db_user -p$db_password -e "DROP USER '$d7_site_name'@'%'" |
977 | 21 | Florent Torregrosa | |
978 | 1 | Julien Enselme | # Delete site's folder. |
979 | 21 | Florent Torregrosa | chmod -R 700 $d7_site_dir |
980 | 21 | Florent Torregrosa | rm -r $d7_site_dir |
981 | 21 | Florent Torregrosa | |
982 | 1 | Julien Enselme | # Delete symbolic link. |
983 | 1 | Julien Enselme | rm $d7_dir/$d7_site_name |
984 | 21 | Florent Torregrosa | |
985 | 21 | Florent Torregrosa | # Delete database backups. |
986 | 21 | Florent Torregrosa | rm -r $d7_dir_individual_auto_backup/assos.centrale-marseille.fr.$d7_site_name |
987 | 21 | Florent Torregrosa | rm -r $d7_dir_individual_manual_backup/assos.centrale-marseille.fr.$d7_site_name |
988 | 21 | Florent Torregrosa | |
989 | 21 | Florent Torregrosa | echo "Don't forget to:" |
990 | 21 | Florent Torregrosa | echo "- Refresh node site on default" |
991 | 53 | Julien Enselme | echo "- Check particular behavior (normally detailed on site node)" |
992 | 1 | Julien Enselme | </code> |
993 | 21 | Florent Torregrosa | </pre> |
994 | 21 | Florent Torregrosa | |
995 | 21 | Florent Torregrosa | h3. d7-reset-variables.sh |
996 | 21 | Florent Torregrosa | |
997 | 84 | Julien Enselme | <pre> |
998 | 21 | Florent Torregrosa | <code class="php"> |
999 | 21 | Florent Torregrosa | #!/bin/sh |
1000 | 21 | Florent Torregrosa | |
1001 | 21 | Florent Torregrosa | . /users/guest/assos/bin/scripts-config.sh |
1002 | 21 | Florent Torregrosa | |
1003 | 21 | Florent Torregrosa | # ARGS: [site_name] |
1004 | 21 | Florent Torregrosa | |
1005 | 1 | Julien Enselme | if [ ! -z $1 ] ; then |
1006 | 41 | Florent Torregrosa | . scripts-config-site.sh $1 |
1007 | 21 | Florent Torregrosa | cd $d7_site_dir |
1008 | 41 | Florent Torregrosa | fi |
1009 | 41 | Florent Torregrosa | |
1010 | 21 | Florent Torregrosa | current_timestamp=`date "+%s"` |
1011 | 21 | Florent Torregrosa | |
1012 | 21 | Florent Torregrosa | random_1=`dd if=/dev/urandom count=1 2> /dev/null | cksum | cut -f1 -d" "` |
1013 | 21 | Florent Torregrosa | random_2=`dd if=/dev/urandom count=1 2> /dev/null | cksum | cut -f1 -d" "` |
1014 | 86 | Julien Enselme | |
1015 | 21 | Florent Torregrosa | ####### General variables |
1016 | 21 | Florent Torregrosa | drush -y vset --always-set reverse_proxy TRUE |
1017 | 21 | Florent Torregrosa | drush -y vset --always-set --format=json reverse_proxy_addresses '["147.94.19.16","147.94.19.17"]' |
1018 | 1 | Julien Enselme | drush -y ev "variable_set('update_notify_emails', array('$email_multi_assos'));" |
1019 | 41 | Florent Torregrosa | drush -y vset error_level 0 |
1020 | 21 | Florent Torregrosa | drush -y vset dblog_row_limit 1000 |
1021 | 92 | Julien Enselme | drush -y vset cron_safe_threshold 0 |
1022 | 21 | Florent Torregrosa | |
1023 | 21 | Florent Torregrosa | ###### Hidden captcha |
1024 | 21 | Florent Torregrosa | drush -y en hidden_captcha |
1025 | 21 | Florent Torregrosa | # Log wrong answers. |
1026 | 21 | Florent Torregrosa | drush -y vset captcha_log_wrong_responses 1 |
1027 | 21 | Florent Torregrosa | # Use hidden captcha for all forms. |
1028 | 21 | Florent Torregrosa | drush -y sqlq --db-prefix "UPDATE {captcha_points} SET module = 'hidden_captcha', captcha_type = 'Hidden CAPTCHA' WHERE module is NULL;" |
1029 | 21 | Florent Torregrosa | # Flush captcha cache. |
1030 | 21 | Florent Torregrosa | drush -y vdel captcha_placement_map_cache |
1031 | 21 | Florent Torregrosa | # Randomely generate a math question as the label of the hidden captcha field. |
1032 | 21 | Florent Torregrosa | drush -y vset hidden_captcha_label "$random_1 + $random_2" |
1033 | 21 | Florent Torregrosa | |
1034 | 41 | Florent Torregrosa | |
1035 | 21 | Florent Torregrosa | ####### Piwik |
1036 | 21 | Florent Torregrosa | drush -y en piwik |
1037 | 21 | Florent Torregrosa | drush -y vset piwik_site_id "101" |
1038 | 21 | Florent Torregrosa | drush -y vset piwik_url_http "http://piwik.centrale-marseille.fr/" |
1039 | 21 | Florent Torregrosa | drush -y vset piwik_url_https "https://piwik.centrale-marseille.fr/" |
1040 | 21 | Florent Torregrosa | # Piwik cache. |
1041 | 21 | Florent Torregrosa | drush -y vset piwik_cache 1 |
1042 | 21 | Florent Torregrosa | drush -y vset piwik_visibility_roles "1" |
1043 | 21 | Florent Torregrosa | # Piwik is enable for everyone except the administrator |
1044 | 21 | Florent Torregrosa | drush -y vset --format=json piwik_roles '[3]' |
1045 | 21 | Florent Torregrosa | drush -y vset piwik_page_title_hierarchy 1 |
1046 | 21 | Florent Torregrosa | # Activate local search. |
1047 | 21 | Florent Torregrosa | drush -y vset piwik_site_search 1 |
1048 | 41 | Florent Torregrosa | |
1049 | 21 | Florent Torregrosa | |
1050 | 21 | Florent Torregrosa | ###### Security review |
1051 | 21 | Florent Torregrosa | # For untrusted roles: |
1052 | 11 | Julien Enselme | # 1: anonymous user |
1053 | 1 | Julien Enselme | # 2: authenticated user |
1054 | 1 | Julien Enselme | # 3: administrator |
1055 | 1 | Julien Enselme | drush -y en security_review |
1056 | 1 | Julien Enselme | drush -y ev "variable_set('security_review_untrusted_roles', array('1'));" |
1057 | 1 | Julien Enselme | # Used to initialise entries in the database schema. |
1058 | 1 | Julien Enselme | drush security-review --store |
1059 | 1 | Julien Enselme | # Security review can't check for files permissions on multi_assos if launched within the web interface. |
1060 | 87 | Julien Enselme | drush -y sqlq --db-prefix "UPDATE {security_review} SET skip = '1', skiptime = $current_timestamp, skipuid = '1' WHERE reviewcheck IN ('file_perms');" |
1061 | 87 | Julien Enselme | drush -y sqlq --db-prefix "UPDATE {security_review} SET skip = '0', skiptime = '0', skipuid = NULL WHERE reviewcheck NOT IN ('file_perms');" |
1062 | 87 | Julien Enselme | </code> |
1063 | 87 | Julien Enselme | </pre> |
1064 | 87 | Julien Enselme | |
1065 | 87 | Julien Enselme | h3. d7-all-update-settings.sh |
1066 | 87 | Julien Enselme | |
1067 | 87 | Julien Enselme | <pre> |
1068 | 87 | Julien Enselme | <code> |
1069 | 87 | Julien Enselme | #!/bin/sh |
1070 | 87 | Julien Enselme | |
1071 | 87 | Julien Enselme | . /users/guest/assos/bin/script-config.sh |
1072 | 87 | Julien Enselme | . /users/guest/assos/bin/scripts-utils.sh |
1073 | 87 | Julien Enselme | |
1074 | 87 | Julien Enselme | # This script updates all drupal 7 settings.php according to a new template. Site informations located in settings.local.php are left intact. |
1075 | 87 | Julien Enselme | |
1076 | 87 | Julien Enselme | for settings in $(find $d7_dir_sites -mindepth 2 -maxdepth 2 -name settings.php) ; do |
1077 | 87 | Julien Enselme | |
1078 | 87 | Julien Enselme | # We go into the settings.php directory. |
1079 | 87 | Julien Enselme | settings_dir=`give_dir $settings` |
1080 | 87 | Julien Enselme | cd $settings_dir |
1081 | 87 | Julien Enselme | |
1082 | 87 | Julien Enselme | chmod 700 $settings |
1083 | 87 | Julien Enselme | rm $settings |
1084 | 1 | Julien Enselme | |
1085 | 1 | Julien Enselme | cp $d7_settings settings.php |
1086 | 1 | Julien Enselme | chmod 400 settings.php |
1087 | 1 | Julien Enselme | done |