Published:
Compilação de comandos drush em ambiente multisite Permalink
Seleção de comandos drush usados para gerenciamento de centenas de sites em Drupal com core compartilhado, em especial no ambiente aegir. Compilados em conjunto com Augusto César Freire Santiago e Ricardo Fontoura.
Trocar senha do usuário admin para sua senha-secreta:
site='exemplo.com'
drush @$site user-password admin --password='senha-secreta'
Listar temas desabilitados de um site:
drush @[site] pml --status=disabled --type=theme --pipe
Listar módulos desabilitados de um site:
site=exemplo.usp.br
drush @$site pml --status=disabled --type=module --pipe
Mesma listagem acima, mas com o resultado em uma única linha:
site=exemplo.usp.br
drush @$site pml --status=disabled --type=module --pipe | tr -s '\n' ' '
Verificar quais temas estão habilitados em todos sites *.exemplo.com:
for site in $(ls sites/ | grep exemplo.com);
do
echo $site;
drush @$site pml --status='enabled' --type='theme' --format=list;
done
Desinstalar o tema em todos os sites:
for site in $(ls sites/ | grep exemplo.com);
do
drush @$i pm-uninstall $tema -y;
done
Módulos que estão na plataforma p1 e não estão na p2:
diff p1/sites/all/modules/ p2/sites/all/modules/ | grep "Only in p1" | cut -d':' -f2
Específicos para Drupal 7
Desinstalar todos os módulos desabilitados de todos os sites *.exemplo.com:
for site in $(ls sites/ | grep exemplo.com);
do
echo "Desabilitando módulos no $site";
modules=$(drush @$site pml --status=disabled --type=module --pipe | tr -s '\n' ' ');
drush @$site pmu $modules -y;
done
Configurar usuário 1 com username admin:
site='exemplo.com'
drush @$site sql-query "update users set name='admin' where uid=1"
Específicos para Drupal 8
Verificar se um tema específico está como default em algum site *.exemplo.com:
tema='adaptivetheme'
for site in $(ls sites/ | grep *.exemplo.com);
do
echo "Verificando $site";
drush @$site cget system.theme default | grep $tema;
done
Apagar qualquer configuração referente a um módulo específico. Muito útil para quando a pasta do módulo foi removida e a ausência da mesma está quebrando o site. Por exemplo, vamos usar o webform:
site='exemplo'
for i in $(drush @$site cli | grep webform);do
drush @$site config-delete $i;
done
drush @$site cache-rebuild
Atualizar banco de dados depois de atualização:
ls /sites/all/modules > /tmp/lista.txt
for i in $(cat /tmp/lista | grep fflch.usp.br); do drush updb -l http://$i -y; done
Criar lista de módulos que não são do core
drush pml --no-core --type=module --status="enabled" --pipe > /tmp/modules.txt
Listar módulos e temas desabilidados:
drush pm-list --no-core --status="disabled,not installed" --pipe -l http://modelod7.fflch.usp.br
Habilitar módulos e temas desabilitados
drush en `drush pm-list --status="disabled,not installed" --pipe -l http://grafica.fflch.usp.br` -l http://grafica.fflch.usp.br
Específicos para Aegir
Subir um site no aegir, dado um backup gerado pelo mesmo, compactador em tag.gz:
drush provision-save @backup.exemplo.org \
--context_type=site \
--platform=@platform_d8 \
--uri=backup.exemplo.org \
--aliases=www.backup.exemplo.org \
--db_server=@server_mysql \
--redirection=0 \
--profile=standard
drush @backup.exemplo.org provision-deploy backup.tar.gz
Migração de todos sites da platform_d8a para platform_d8b:
cd platforms
sites=$(ls d8a/sites | grep fflch.usp.br)
for site in $sites;
do
drush @$site provision-migrate @platform_d8b
done
Verificando um site:
drush @hostmaster hosting-task @sti.fflch.usp.br verify
Verificando uma plataforma:
drush @hostmaster hosting-task @platform_drupal884a verify