Tenim 118 webs amb Drupal 8 en modo multisite, i avui necessitava esborrar la caché però sense tenir drush per a poder fer de manera senzilla un:
drush cr
Però no hi ha la possibilitat d'instal·lar Drush, aleshores al principi estava fent uns canvis a unes plantilles i netejant la web de forma manual. I si perdia 2 minuts en accedir a cada web, amb usuari i contrasenya, i anar a la configuració + rendiment, i esborrar manualment la caché, això suposaria casi dues hores nomès per a netejar una vegada la caché a les webs. Aleshores, he estat pensant la manera més ràpida de netejar la memòria caché de les 118 webs basades en Drupal, i m'he fet un xicotet script en bash que em neteja la taula cache_render web rere web, i en qüestió de segons ja tinc totes les webs netejades.
Cada web té una base de dades distinta, que comença per "pwm3" + el nom del codi web, aleshores és molt fàcil crear un bucle agafant tots els noms de les bases de dades al vol.
M'he fet un llistat de tots els directoris al fitxer llistat-de-webs.txt:
codiweb1
codiweb2
codiweb3
codiweb4
codiweb5
codiweb6
codiweb7
codiweb8
..
..
codiwebN
I després l'script en bash llegeix cada línea i neteja la taula cache_render, de la següent manera:
#!/bin/sh
# Netejador de la caché dels projectes Drupal multisites
for i in `cat ./llistat-de-webs.txt`
do
echo "---------------------------------"
echo "Netejant la caché de la base de dades $i"
/usr/bin/mysql -h el_meu_servidor --user=usuari --password=la_contrasenya --database=pwm3$i -e "DELETE FROM cache_render;"
echo "---------------------------------\n\n"
done