如何使用Drush删除所有被阻止的用户?我有数百名来自垃圾邮件发送者的封锁用户。我想删除所有这些用户。我尝试通过Web界面进行操作,但这一次只适用于大约20个用户。我有60页要删除,这需要太长时间并且不可持续。此外,我希望在删除被阻止的用户时运行所有相关的回调,并且我希望删除所有内容。我注意到user-cancel
,但这似乎只适用于单个用户。有没有办法让这个命令适用于所有被阻止的用户?
答案 0 :(得分:3)
使用Drupal 7和Drush 5.9,我的方式是:
1-为您当地的Drupal安装创建一个别名“@ example-local”,如图here所示。
2-使用以下代码创建名为“delete-blocked-users.script”的脚本文件,例如“/ Users / username / scripts / drush”:
#!/usr/bin/env drush
$users = db_query("SELECT * FROM {users} WHERE (status = 0)");
foreach ($users as $user) {
exec("drush @example-local user-cancel $user->name -y");
}
3-使用以下命令使脚本文件可执行:
chmod +x ~/scripts/drush/delete-blocked-users.script
4-最后,使用以下命令运行脚本:
drush @example-local scr ~/scripts/drush/delete-blocked-users.script
这将删除所有被阻止的用户(状态为0的用户),而不要求确认(由-y标志定义)。
答案 1 :(得分:2)
Drush没有简单的命令来删除所有被阻止的帐户。在您的管理界面中设置vbo视图可能会更容易,您可以过滤被阻止的用户,然后您可以选择全部并取消。
您还可以使用drush php-script script.php
运行php脚本。
因此,您可以设置一个php脚本,对被阻止的用户进行查询,然后通过用户进行循环并调用用户取消功能。
答案 2 :(得分:-2)
除了drush之外,只需使用用户,密码和数据库名称更容易访问mysql数据,您可以在文件drupalhomedir / sites / default / setting.php中找到命令:
mysql -u username-at-setting -ppassword-at-setting database-at-setting
然后删除drupal' user'上的所有记录表格:
DELETE FROM user WHERE status=0;