Scripts et taches planifiees » Historique » Version 110
Julien Enselme, 17/08/2014 21:45
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 | 26 | Florent Torregrosa | h2. Crontab |
8 | |||
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 | # se connecter au serveur : <code>ssh assos@sas1.centrale-marseille</code> |
||
13 | # 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 | Les scripts doivent si possible s’exécuter avant le club Drupal pour que les problèmes éventuels y soient réglés)}} |
||
18 | |||
19 | 110 | Julien Enselme | {{tip(Pour utiliser un autre éditeur que vi taper : export EDITOR=editor_name exemple : vim, nano.)}} |
20 | 74 | Florent Torregrosa | |
21 | {{important( |
||
22 | * d7-all-update-contrib.sh fait des sauvegardes automatiques individuelles pour les sites Drupal 7 en faisant appel à d7-all-dump-indiviual.sh auto |
||
23 | * C'est pour cela que d7-all-dump-individual.sh auto n'est pas appelé dans le crontab. |
||
24 | )}} |
||
25 | 26 | Florent Torregrosa | |
26 | <pre> |
||
27 | <code class="php"> |
||
28 | 42 | Florent Torregrosa | ######## How to use |
29 | # mm hh jj MMM JJJ task |
||
30 | # minutes hour day_month month day_week |
||
31 | # for more informations : https://fr.wikipedia.org/wiki/Crontab#Notation |
||
32 | ######## End how to |
||
33 | |||
34 | 1 | Julien Enselme | |
35 | ### Cleaning |
||
36 | 91 | Julien Enselme | 00 5 * * * /users/guest/assos/bin/all-reset-permissions.sh > /dev/null |
37 | 00 6 * * * /users/guest/assos/bin/delete-temporary-files.sh > /dev/null |
||
38 | 1 | Julien Enselme | |
39 | |||
40 | 105 | Julien Enselme | ### Git report |
41 | 00 12 * * * /users/guest/assos/bin/git-report.sh |
||
42 | 1 | Julien Enselme | |
43 | |||
44 | 91 | Julien Enselme | ### Drupal 7 cron |
45 | 93 | Julien Enselme | 00 * * * * /users/guest/assos/bin/d7-all-drush.sh -q cron > /dev/null |
46 | 91 | Julien Enselme | |
47 | |||
48 | 68 | Florent Torregrosa | ### Databases |
49 | 43 | Florent Torregrosa | # Create backup |
50 | 103 | Julien Enselme | 00 8 1,15 * * /users/guest/assos/bin/d7-all-dump-full.sh > /dev/null || mail -s "d7-all-dump-full.sh did not run correctly" assos |
51 | 67 | Julien Enselme | |
52 | 68 | Florent Torregrosa | # flush backup |
53 | 91 | Julien Enselme | 00 8 2,16 * * /users/guest/assos/bin/flush-full-databases-backups.sh d7 > /dev/null |
54 | 00 23 * * 2 /users/guest/assos/bin/flush-individual-databases-backups.sh auto d7 > /dev/null |
||
55 | 00 1 * * 3 /users/guest/assos/bin/flush-individual-databases-backups.sh manual d7 > /dev/null |
||
56 | 1 | Julien Enselme | |
57 | |||
58 | 68 | Florent Torregrosa | ### Drupal 7 |
59 | 91 | Julien Enselme | 00 3 * * 4 /users/guest/assos/bin/d7-all-reset-variables.sh > /dev/null |
60 | 104 | Julien Enselme | 00 22 * * 3 /users/guest/assos/bin/d7-all-update-contrib.sh |
61 | 00 1 * * 4 /users/guest/assos/bin/d7-all-update-localisation.sh |
||
62 | 1 | Julien Enselme | 00 2 * * 4 /users/guest/assos/bin/d7-all-security-review.sh |
63 | 67 | Julien Enselme | 00 4 * * 4 /users/guest/assos/bin/d7-all-releases-info.sh |
64 | 108 | Florent Torregrosa | |
65 | 43 | Florent Torregrosa | |
66 | 109 | Florent Torregrosa | 00 22 * * 6 /users/guest/assos/bin/d7-all-usage.sh |
67 | 104 | Julien Enselme | 00 22 * * 7 /users/guest/assos/bin/disk-usage.sh |
68 | 3 | Julien Enselme | </code> |
69 | 83 | Julien Enselme | </pre> |
70 | |||
71 | 25 | Florent Torregrosa | La liste des tâches effectuées régulièrement est ci-dessous. |
72 | |||
73 | 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 !)}} |
74 | |||
75 | 25 | Florent Torregrosa | h2. La réinitialisation des variables |
76 | 1 | Julien Enselme | |
77 | 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. |
||
78 | |||
79 | 25 | Florent Torregrosa | En voici quelques exemples : |
80 | |||
81 | 1 | Julien Enselme | <pre> |
82 | 21 | Florent Torregrosa | <code class="bash"> |
83 | 25 | Florent Torregrosa | drush -y vset error_level 0 |
84 | </code> |
||
85 | 3 | Julien Enselme | </pre> |
86 | 1 | Julien Enselme | |
87 | 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. |
||
88 | 25 | Florent Torregrosa | |
89 | 1 | Julien Enselme | <pre> |
90 | 3 | Julien Enselme | <code class="php"> |
91 | 1 | Julien Enselme | drush -y vset --always-set reverse_proxy TRUE |
92 | drush -y vset --always-set --format=json reverse_proxy_addresses '["147.94.19.16","147.94.19.17"]' |
||
93 | 70 | Julien Enselme | </code> |
94 | 1 | Julien Enselme | </pre> |
95 | 6 | Julien Enselme | |
96 | 1 | 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** |
97 | 3 | Julien Enselme | |
98 | 1 | Julien Enselme | h2. La sauvegarde des bases de données |
99 | 73 | Julien Enselme | |
100 | 107 | Julien Enselme | Sur les installations D7 : une fois par semaine |
101 | 73 | Julien Enselme | |
102 | On utilise les scripts de sauvegardes : |
||
103 | 1 | Julien Enselme | |
104 | 72 | Julien Enselme | * [[Scripts_et_taches_planifiees#d7-all-dump-fullsh|d7-all-dump-full.sh]] |
105 | 1 | Julien Enselme | * [[Scripts_et_taches_planifiees#d7-all-dump-individualsh|d7-all-dump-individual.sh]]. |
106 | |||
107 | h2. La purge des sauvegardes de bases de données |
||
108 | |||
109 | 107 | Julien Enselme | Sur les installations D7 : toutes les semaines |
110 | 21 | Florent Torregrosa | |
111 | 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. |
112 | |||
113 | h1. Liste des scripts à disposition |
||
114 | 21 | Florent Torregrosa | |
115 | 102 | Florent Torregrosa | Les scripts utilisés sont hébergés dans le répertoire bin du compte assos. Ce dossier est dans le PATH de l'utilisateur assos ce qui permet d'utiliser les scripts comme les commandes usuelles du shell. Les script doiventb être exécutables pour fonctionner ainsi. Le script @all-reset-permissions.sh@ remet les bonnes permissions sur ce dossier. |
116 | 78 | Julien Enselme | |
117 | 102 | Florent Torregrosa | 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écutables du système ainsi que les dossiers bin de assos. |
118 | 82 | Julien Enselme | |
119 | 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. |
120 | 1 | Julien Enselme | |
121 | 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. |
122 | 53 | Julien Enselme | |
123 | 101 | Julien Enselme | La liste complète et à jour est disponible ici : https://forge.centrale-marseille.fr/projects/clubdrupal/repository |