Projet

Général

Profil

Scripts et taches planifiees » Historique » Version 13

Florent Torregrosa, 28/07/2013 10:44
toc à droite

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
3 13 Florent Torregrosa
{{>toc}}
4 1 Julien Enselme
5
h1. Les tâches planifiées
6
7 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.
8 1 Julien Enselme
9 3 Julien Enselme
Pour voir et modifier la liste des actions :
10
# se connecter au serveur : <code>ssh assos@sas1.centrale-marseille</code>
11
# taper la commande pour voir le crontab <code>crontab -l</code>
12
# taper la commande pour modifier le crontab <code>crontab -e</code>. /!\ 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 !
13
14 1 Julien Enselme
Voici la liste des tâches effectuées régulièrement.
15
16 3 Julien Enselme
h2. La mise à jour des projets
17 1 Julien Enselme
18 4 Julien Enselme
{{note(Sur l'installation d6 uniquement pour le moment ; devra être fait pour l'installation d7 (date du jour : 25 avril 12) : une fois par semaine)}}
19 1 Julien Enselme
20
Voici les différentes étapes réalisées :
21 3 Julien Enselme
# Activer partout le module _update_. C'est lui qui gère la vérification des versions, l'envoi de notifications par mail ainsi que les mises à jour via drush, il est donc indispensable qu'il soit activé.
22
# Lancer le cron pour que les sites sachent s'il y a des mises à jour à faire
23 1 Julien Enselme
# Supprimer le cache des sites pour réduire drastiquement la taille des bases de données sauvegardées.
24 3 Julien Enselme
# Exécuter le [[Scripts_et_taches_planifiees#dump.sh_and_co|script de sauvegarde des bases de données]]
25 1 Julien Enselme
# Vérifier les versions des projets et au besoin, mettre à jour leur code
26 3 Julien Enselme
# Exécuter la [[Utilisation_de_Drupal_multi-site#Mise_à_jour_de_la_base_de_données|mise à jour des bases de données]]
27 1 Julien Enselme
# Exécuter une nouvelle fois le cron
28 3 Julien Enselme
# Exécuter le [[Scripts_et_taches_planifiees#taille.sh|script de rapport sur la taille utilisée du disque]] et l'envoyer par mail au club Drupal
29 1 Julien Enselme
# Dater les logs et les sauvegarder au bon endroit
30 3 Julien Enselme
# Désactiver le module _update_ (vu qu'il est réactivé avant la mise à jour et que celle-ci a lieu toutes les semaines, il y a peu d'intérêt à le garder activé le reste du temps)
31 1 Julien Enselme
32 3 Julien Enselme
Les étapes 2 à 9 sont gérés par le script [[Scripts_et_taches_planifiees#maj.sh| maj.sh]], le reste est directement écrit dans le crontab.
33 1 Julien Enselme
34 3 Julien Enselme
h2. La mise à jour des traductions
35 1 Julien Enselme
36 5 Julien Enselme
Sur les installations d6 et d7 : une fois par semaine le jeudi.
37 1 Julien Enselme
38
Voici les étapes effectuées :
39 3 Julien Enselme
# Activer partout le module _l10n_update_. C'est lui qui gère la mise à jour des traductions
40
# Vérifier s'il y a des nouvelles chaînes traduites disponibles
41
# Ajouter les nouvelles traductions disponibles
42
# Désactiver le module _l10n_update_
43 1 Julien Enselme
44 3 Julien Enselme
Pour drupal 6, les différentes instructions sont écrites directement dans le crontab. Pour drupal 7, on utilise [[Scripts_et_taches_planifiees#drush_maj_trad|l'alias drush perso <code>drush maj_trad</code>]] dans le crontab.
45 1 Julien Enselme
46 3 Julien Enselme
h2. La réinitialisation des droits d'accès
47 1 Julien Enselme
48 3 Julien Enselme
Sur les installations d6 et d7 : toutes les semaines, après les D&D du club drupal
49 1 Julien Enselme
50 3 Julien Enselme
Cette tâche utilise le script [[Scripts_et_taches_planifiees#ch_mdp|ch_mdp]] afin de rétablir les droits d'accès recommandés par drupal sur 
51
* les dossiers des sites
52 1 Julien Enselme
* les settings.php des sites
53
54 3 Julien Enselme
h2. La réinitialisation des variables dangeureuses
55 1 Julien Enselme
56 3 Julien Enselme
Sur l'installation d7 principalement : une fois par semaine
57 1 Julien Enselme
58 3 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. En voici la liste :
59 1 Julien Enselme
<pre>
60
<code class="bash">
61
drushall_atest vset error_level 0 --yes
62
</code>
63
</pre>
64
65
Cette commande permet de ne pas afficher les messages d'erreurs aux utilisateurs autre que les administrateurs. En effet, ils contiennent parfois des informations sensibles sur l'installation et ne doivent donc pas être divulgués à n'importe qui.
66
<pre>
67
<code class="php">
68
drushall_atest php-eval variable_set\(\'allow_authorize_operations\',FALSE\)\;
69
</code>
70
</pre>
71
72
Cette commande  permet de ne pas autoriser les utilisateurs à installer et mettre à jour des modules via l'interface du site (fonctionnalité introduite dans drupal7). En effet, seul le club Drupal maintient les codes des projet, afin d'en garantir la pérennité.
73
74
<pre>
75
<code class="php">
76
drushall_atest vset --always-set reverse_proxy TRUE
77
drushall_atest vset --always-set --format=json reverse_proxy_addresses '["147.94.19.16","147.94.19.17"]'
78
</code>
79
</pre>
80 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 sus-cités serveurs. **Pas fini : voir http://assos.centrale-marseille.fr/content/t%C3%A2che/d%C3%A9clarer-les-proxy-du-cri-%C3%A0-drupal**
81 1 Julien Enselme
82 3 Julien Enselme
83 1 Julien Enselme
h3. Comment le lancer ?
84
85 3 Julien Enselme
N'importe où, taper <code>reinit_var.sh</code>.
86 1 Julien Enselme
87 3 Julien Enselme
h2. La sauvegarde des bases de données
88 1 Julien Enselme
89 3 Julien Enselme
Sur les installations d6 et d7 : une fois par semaine
90 1 Julien Enselme
91 6 Julien Enselme
On utilise les [[Scripts_et_taches_planifiees#Tout-sauvegarder|scripts de sauvegarde créés par le club Drupal]].
92 1 Julien Enselme
93 3 Julien Enselme
h2. La purge des sauvegardes de bdd
94 1 Julien Enselme
95 3 Julien Enselme
Sur les installations d6 et d7 : toutes les semaines
96 1 Julien Enselme
97 3 Julien Enselme
Cette tâche utilise le script de [[Scripts_et_taches_planifiees#purge_des_sauvegardes.sh|purge des sauvegardes]] afin de libérer de l'espace disque en supprimant les sauvegardes de bdd les plus vieilles.
98 1 Julien Enselme
99
h1. Liste des scripts à disposition
100
101
Les scripts utilisés sont hébergés dans le répertoire bin du compte assos.
102
103
h2. ch_mdp
104
105 11 Julien Enselme
Il a été écrit pour permettre de prendre acte de la modification du mot de passe de la base de données rapidement dans tous les settings.php (pour l’installation de drupal 6 uniquement, les sites drupal 7 étant chacun dans leur base de données).
106 1 Julien Enselme
107 11 Julien Enselme
Pour effectuer cette action, il faut donner l'ancien et le nouveau mot de passe en argument puis lancer le script.
108 1 Julien Enselme
109 3 Julien Enselme
Plus d'info sur comment ça marche en lisant http://fr.wikipedia.org/wiki/Stream_Editor#Utilisation_la_documentation_de_la_commande_sed et les commentaires laissés dans le code du script.
110 1 Julien Enselme
111
h3. Comment le lancer ?
112
113 3 Julien Enselme
Il suffit de taper <code>ch_mdp</code> n'importe où dans le compte assos.
114 1 Julien Enselme
115
h3. À quoi ça ressemble ?
116
117
<pre>
118
<code class="bash">
119
cd [drupal directory]/sites
120
121 3 Julien Enselme
for x in $(ls -1 | grep -v 'all'); do
122
	cd $x;
123
	fichier="settings.php" 
124 1 Julien Enselme
	chmod 600 $fichier
125
	mv $fichier $fichier.old
126 11 Julien Enselme
	sed "s/$1/$2/g" < $fichier.old > $fichier
127 1 Julien Enselme
	chmod 400 $fichier
128
	rm $fichier.old
129
	cd ..
130
	chmod -w $x
131
	done
132 11 Julien Enselme
</code>
133
</pre>
134
135
h2. chk_perm
136
137
Ce script rétablit les permissions des dossiers des sites, des scripts et des settings.php. Il se lance tous les jours grâce au cron.
138
139
Il ressemble à ça :
140
<pre>
141
<code class="bash">
142
cd [drupal directory]/sites
143
144
for dir in $(find . -type d -maxdepth 1 ! -name all)
145
do
146
    chmod 755 $dir
147
    cd $dir
148
    chmod 400 settings.php
149
    cd -
150
done
151 1 Julien Enselme
</code>
152
</pre>
153
154
h2. dis_tiers.sh et en_tiers.sh
155
156 3 Julien Enselme
Créé en juillet 2011 dans le cadre de [[De_Drupal6_vers_Drupal7|la migration de d6 à d7]], ces scripts permettent respectivement de désactiver et réactiver tous les modules tiers (c'est-à-dire les modules qui ne font pas partie du noyau / core de drupal, ceux qui sont installé dans sites/all/modules).
157 1 Julien Enselme
158
En effet, il s'agit de deux étapes indipensables pour la migration d'un site.
159
160
h3. Comment les lancer ?
161
162
Il suffit de taper "dis_tiers.sh" ou "en_tiers.sh" dans le dossier du site en question.
163
164
h3. À quoi ça ressemble ?
165
166
<pre>
167
<code class="bash">
168
##dis_tiers.sh
169
#écrire le nom des modules non core dans un fichier
170
drush pml |grep -v Core* | grep Module | grep Enabled > fichier.temp
171
sed -e 's/\(.*(\)\(.*\)\().*\)/\2/' fichier.temp > modules_tiers.txt
172
#désactiver ces modules
173
for line in $(cat modules_tiers.txt); do drush dis -y "$line" ; done  
174
#effacer les fichiers créés
175
rm fichier.temp
176
177
##en_tiers.sh
178
#activer ces modules du fichier texte
179
for line in $(cat modules_tiers.txt); do drush en -y "$line" ; done 
180
</code>
181
</pre>
182
183
NB : dis_tiers.sh crée un fichier texte contenant la liste des modules tiers qui étaient activés sur le site. Il faut donc :
184 3 Julien Enselme
* Avoir des droits d'écriture sur le dossier du site pour l'exécuter
185
* Penser à supprimer ce fichier et à remettre les droits correctement (par exemple en lançant le script [[Scripts_et_taches_planifiees#ch_mdp|ch_mdp ]]) après.
186 1 Julien Enselme
187
h2. drushall and co
188
189
Pour administrer tous les sites du multi-site en une seule fois, nous avons créé un script à partir de drush.
190
Il s'utilise comme drush, mais effectue la commande drush tapée sur tous les sites de l'installation un par un.
191
192
h3. Comment on le lance ?
193
194
Sur l'installation d6, on lance <code>drushall</code> n'importe où.
195
196
Sur l'installation d7, on lance <code>drushall_atest</code> n'importe où.
197
198
h3. À quoi ça ressemble ?
199
200
<pre>
201
<code class="bash">
202
#~/bin/sh
203
# si pas d'arguments :
204
if [ $# -lt 1 ]; then
205
  echo "usage: $0 <drush args>"
206
  exit 1
207
fi
208
209
cd [drupal directory]/sites
210
211
for x in $(ls -1 | grep -v 'all'); do
212
  if [ -d $x -a ! -L $x ]; then
213
    cd $x;
214
    echo $x
215
    drush $*
216
    cd -;
217
  fi
218
done
219
</code>
220
</pre>
221
222
h2. drushcronone
223
224
h3. Histoire
225
226 3 Julien Enselme
Ce script a été introduit pour la version 6 du projet essentiellement pour améliorer les performances : au lieu de faire un wget sur le cron.php d'un site, valait mieux exécuter le script _en interne_.
227 1 Julien Enselme
228
h3. Besoin
229
230
La version 7 du projet en a besoin plus que jamais ! puisque le cron.php n'est plus 'wget'able sans une chaîne de codes à ajouter à l'url publique, sinon il faut avoir les droits nécessaires.
231
232
h3. Usage
233
234
Donc pour exécuter le cron pour un seul site, il suffit de donner le nom du répertoire.
235 3 Julien Enselme
Exemple : <code>drushcronone assos.centrale-marseille.fr.cac13</code>
236 1 Julien Enselme
237
Q : Où est ce que ce script est le plus utilisé ?
238
239
R : Dans les tâches planifiés (crontab) bien sûr !
240
241 8 Julien Enselme
h2. dump.sh and co
242 1 Julien Enselme
243 8 Julien Enselme
Tous ces scripts se lancent n'importe où.
244 1 Julien Enselme
245 8 Julien Enselme
h3. Dump pour drupal 6
246 3 Julien Enselme
247 8 Julien Enselme
h4. Sauvegarder uniquement les tables d'un site
248
249 1 Julien Enselme
On a créé des scripts qui permettent de sauvegarder uniquement les tables associés à un site (et non toute la base).
250 3 Julien Enselme
251
Ils se lancent n'importe où (mais attention, la sauvegarde est effectuée là où il est lancé, donc à ne pas lancer dans dossier accessible par n'importe qui !) en tapant <code>dump_site nom_de_site</code> (d6) ou <code>dump_site_atest nom_du_site</code> (d7). Le nom du site à fournir est le préfixe utilisé dans la base de données.
252
253
Ils **ressemblent** à :
254 1 Julien Enselme
<pre>
255
<code class="bash">
256
#récupération des tables du site dans le fichier liste_tables.temp
257
tables='_%'
258
liste="$1$tables"
259
260
mysql -h serveur -u utilisateur --password=super_mot-de-passe -BNe "show tables like '"$liste"'" base_de_données | tr '\r\n' ' ' > liste_tables.temp
261
262
#transformation de cette liste en une variable
263
var=$(cat liste_tables.temp)
264
265
#sauvegarde de toutes ces tables
266
suffixe="_dump.sql"
267
fichier="$1$suffixe"
268
269
mysqldump base_de_données -h serveur -u utilisateur --password=super_mot-de-passe $var > $fichier
270
271
#suppression du fichier temporaire utilisé
272
rm liste_tables.temp
273
</code>
274
</pre>
275
276 8 Julien Enselme
h4. Tout sauvegarder
277 1 Julien Enselme
278 3 Julien Enselme
Pour drupal 6, on a un script qui réalise la sauvegarde de toute la base en une seule fois : <code> dump.sh</code>. Il **ressemble** à ça :
279 1 Julien Enselme
<pre>
280
<code class="bash">
281
mysqldump nom_de_la_base -h serveur -u utilisateur --password=super_mot_de_passe_trop_bien > ~/chemin_vers_la/sauvegarde.dump.sql
282
</code>
283
</pre>
284
285 8 Julien Enselme
h3. Dump pour drupal 7
286 1 Julien Enselme
287 8 Julien Enselme
Pour drupal 7, on a un script plus complet : <code>dump_site_atest_all</code> qui repose sur @drush sql-dump@ :
288 1 Julien Enselme
289 8 Julien Enselme
<pre>
290
<code class="bash">
291
#!/bin/sh
292
PATH=/usr/local/bin:/usr/bin:/bin:/users/guest/assos/bin
293
294
sites_dir=~/htmltest/sites
295
backup_dir=~/Desktop/dump_d7
296
date=`date "+%Y-%m-%d-%Hh%Mm%Ss"`
297
298
cd $sites_dir
299
300
#Cherche dans le sous répertoire du répertoire courant sauf dans le sous répertoire
301
# all et dans les liens.
302
for dir in $(find . -maxdepth 1 -mindepth 1 -type d ! -name all )
303
do
304
    cd $dir
305
    drush sql-dump --result-file="$backup_dir/$dir.dump$date.sql"
306
    cd -
307
done
308
</code>
309
</pre>
310
311
Ce script s’exécute une fois par semaine.
312 1 Julien Enselme
313
h2. maj.sh
314
315 3 Julien Enselme
Ce script est principalement constitué d'une suite de commandes drush et d'appels à d'autres scripts du projet.
316 1 Julien Enselme
317 3 Julien Enselme
Plus d'info sur les étapes précises dans les commentaires du script lui-même et dans le [[Scripts_et_taches_planifiees#la_mise_à_jour_des_projets|paragraphe suivant]].
318 1 Julien Enselme
319
h3. Comment le lancer ?
320
321
<code>maj.sh</code> ou <code>maj_d7.sh</code>, n'importe où.
322
323 3 Julien Enselme
NB : il faut que le module _update_ soit activé sur tous les sites de l'installation pour que ce script fonctionne.
324 1 Julien Enselme
325
h2. usep
326
327 3 Julien Enselme
Ce script a été créé dans le cadre de la [[De_Drupal6_vers_Drupal7|migration de drupal 6 à drupal 7]] mais peut être utilisé pour des tas de choses : il permet de savoir quels sont les sites qui utilisent (c'est-à-dire qui ont activé) un projet donné.
328 1 Julien Enselme
329 3 Julien Enselme
Pour le moment, il n'est fonctionnel que pour drupal 6, mais peut être adapté sans mal à drupal 7.
330
331 1 Julien Enselme
h3. Comment le lancer ?
332
333
Taper <code>usep projet</code> dans n'importe quel dossier de site de l'installation drupal 6.
334
335
h3. À quoi ça ressemble ?
336
337
(quelques  commentaires sont également dispo directement dans le script pour mieux comprendre son fonctionnement)
338
<pre>
339
<code class="bash">
340
#si pas d'argument donnés :
341
if [ $# -lt 1 ]; then
342
  echo "usage: $0 <drush args>"
343
  exit 1
344
fi
345
346
347
cd [drupal_directory]/sites
348
349
350
for x in $(ls -1 | grep -v 'all' | grep -v file-*); do
351
  if [ -d $x -a ! -L $x ]; then
352
    cd $x;
353
    if [ 1 = `drush pml --no-core --status=enabled | grep $1 | wc -l` ]; then
354
             echo $x; 
355
            fi
356
    cd -;
357
  fi
358
done
359
</code>
360
</pre>
361
362 3 Julien Enselme
h2. Taille.sh
363 1 Julien Enselme
364
Ce script utilise la commande <code>du -hcs</code> pour retourner l'espace disque utilisé sur le compte assos, ainsi que sa répartition dans les différents répertoires des sites).
365
366
Ce script est notamment utilisé à la fin du script de mise à jour de projet ; son résultat est envoyé par mail au club drupal pour vérification.
367
368
h2. init_var.sh
369
370
Ce script permet d'initialiser des configurations et variables dangereuses, pour l'installation drupal 7. Il faut le lancer après chaque installation de sous-site.
371
372
h3. Comment le lancer ?
373
374
Taper <code>init_var.sh</code> (ou <code>drush init</code>) dans le dossier du site.
375
376
h3. À quoi ça ressemble ?
377
378
<pre>
379
<code class="bash">
380
drush vset error_level 0 --yes
381
</code>
382
</pre>
383
384
Cette commande permet de ne pas afficher les messages d'erreurs aux utilisateurs autre que les administrateurs. En effet, ils contiennent parfois des informations sensibles sur l'installation et ne doivent donc pas être divulguées à n'importe qui.
385
386
<pre>
387
<code class="php">
388
drush php-eval variable_set\(\'allow_authorize_operations\',FALSE\)\; 
389
</code>
390
</pre>
391
392
Cette commande  permet de ne pas autoriser les utilisateurs à installer et mettre à jour des modules via l'interface du site (fonctionnalité introduite dans drupal7). En effet, seul le club Drupal maintient les codes des projet, afin d'en garantir la pérennité.
393
394
<pre>
395
<code class="bash">
396
drush vset --always-set reverse_proxy TRUE
397
drush vset --always-set --format=json reverse_proxy_addresses '["147.94.19.16","147.94.19.17"]'
398
</code>
399
</pre>
400
401
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 sus-cités serveurs. Pour plus d'info, voir le mail de dgeo du 15 mai 2012.
402
<pre>
403 4 Julien Enselme
<code>
404 1 Julien Enselme
drush ev "variable_set('update_notify_emails', array('coucouuu@example.com'));"
405
</code>
406
</pre>
407
408 3 Julien Enselme
Cette commande permet de modifier l'adresse de la personne qui recevra des notifications lorsqu'une nouvelle mise à jour (projet ou noyau drupal) est disponible (NB : c'est le module (du noyau) _update_ qui gère ces envois, s'il est désactivé, aucune vérification des versions n'est effectuée)
409 1 Julien Enselme
Pour ne pas déranger les webmasters avec ceci, il faut mettre l'adresse du club drupal.
410
411
h2. reinit_var.sh
412
413
Ce script est utilisé pour réinitialiser des configurations et variables dangereuses sur tous les sites.
414
415 3 Julien Enselme
Des informations détaillées sont disponibles dans [[Scripts_et_taches_planifiees#la_réinitialisation_des_variables_dangeureuses|ce paragraphe]].
416
417 1 Julien Enselme
h3. Comment le lancer ?
418
419
Taper <code>reinit_var.sh</code> n'importe où.
420
421
h2. purge_des_sauvegardes.sh
422
423
Ce script permet de supprimer les vieilles sauvegardes de base de données, afin de libérer de l'espace disque.
424
425
Le script nettoie les sauvegardes de sites individuels et les sauvegardes des bases de données complètes d6 et d7.
426
427
h3. Comment le lancer ?
428
429 3 Julien Enselme
Il suffit de taper <code>purge_des_sauvegardes.sh</code> n'importe où dans le compte assos.
430 1 Julien Enselme
431
h3. À quoi ça ressemble ?
432
433
<pre>
434
<code class="bash">
435
cd [dump directory]
436
437
if [ $(ls -l | wc -l)  -gt YY ] ; then # s'il y a plus de YY fichiers alors
438
439
ls -tr | head -XX | xargs rm; #supprime les XX fichiers les plus vieux
440
441
else # sinon, alerte
442
443
echo "mon message d'erreur" | mail -s "[dump assos] mon message d'erreur" assos@centrale-marseille.fr ;
444
445
fi
446
</code>
447
</pre>
448
449 7 Julien Enselme
{{important(Ce script supprime les x sauvegardes les plus vieilles de chaque catégorie (sites d7, tout d6, tout d7), sans aucune notion de temps. Cela implique que si des sauvegardes ont été faites manuellement, des sauvegardes automatiques plus vieilles seront supprimées (alors qu'elles ne sont pas nécessairement périmées !))}}
450 1 Julien Enselme
451 10 Florent Torregrosa
h2. drushall_atest_logged
452 9 Florent Torregrosa
453
Pour faire des commandes drush et quelles soient logguées par site dans le dossier Desktop/log/d7/nom_du_site.log
454
455 1 Julien Enselme
h1. Liste des alias drush à disposition
456
457 12 Florent Torregrosa
{{warning(à ne plus utiliser : passer par les scripts)}}
458
459 1 Julien Enselme
Les alias drush sont hébergés dans le fichier drushrc.php du .drush du compte assos.
460
461
h2. drush init
462
463
h3. À quoi ça sert ?
464
465 3 Julien Enselme
Ce script initialise les variables dangereuses, en faisant appel au scrit [[Scripts_et_taches_planifiees#init_var.sh|init_var.sh]]. Les deux peuvent s'utiliser indifféremment.
466 1 Julien Enselme
467
h3. Comment l'utiliser ?
468
469
Dans le dossier d'un site (drupal 7 uniquement), taper <code>drush init</code> (ou <code>init_var.sh</code>).
470
471
Pour initialiser les variables de tous les sites (drupal 7 uniquement), dans le dossier sites, taper <code>drushall_atest init</code>
472
473
h2. drush maj_trad
474
475
h3. À quoi ça sert ?
476
477 3 Julien Enselme
Ce script met à jour les traductions, en suivant [[Scripts_et_taches_planifiees#la_mise_à_jour_des_traductions|la procédure décrite ici]].
478 1 Julien Enselme
479
h3. Comment l'utiliser ?
480
481
Dans le dossier d'un site (drupal 6 ou 7), taper <code>drush maj_trad</code>.
482
483 2 Julien Enselme
Pour mettre à jour les traductions de tous les sites (drupal 7 ou 6), dans le dossier sites, taper <code>drushall maj_trad</code> (ou <code>drushall_atest maj_trad</code> selon le cas).