如何使用 Drush 删除所有被阻止的用户?我有数百个被垃圾邮件发送者阻止的用户。我想删除所有这些用户。我尝试通过 Web 界面进行操作,但这一次仅适用于大约 20 个用户。我有 60 页要删除,这需要太长时间且不可持续。另外,我希望在删除被阻止的用户时运行所有相关的回调,并且我希望删除其所有内容。我注意到了user-cancel
,但这似乎只适用于单个用户。有没有办法让这个命令适用于所有被阻止的用户?
问问题
3834 次
3 回答
4
使用 Drupal 7 和 Drush 5.9,我的做法是:
1- 为您的本地 Drupal 安装创建一个别名“@example-local”,如此处所示。
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 标志定义)。
于 2013-08-10T02:23:24.400 回答
2
Drush 没有删除所有被阻止帐户的简单命令。在您的管理界面中设置一个vbo视图可能会更容易,让您可以过滤被阻止的用户,然后您可以选择全部并取消。
您还可以使用drush php-script script.php
.
因此,您可以设置一个 php 脚本来查询被阻止的用户,然后遍历用户并调用用户取消功能。
于 2013-02-15T16:22:09.660 回答
-2
除了 drush,使用用户、密码和数据库名称更容易访问 mysql 数据,您可以在文件 drupalhomedir/sites/default/setting.php 中使用以下命令找到:
mysql -u username-at-setting -ppassword-at-setting database-at-setting
然后删除drupal“用户”表上的所有记录:
DELETE FROM user WHERE status=0;
于 2014-06-06T13:16:21.360 回答