Удаление неактивных пользователей

Автор star trooper, 05 июля 2011, 16:43:46

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

star trooper

взялся я тут за форум один, обнаружил в нём много зареганых ботов, общее количество пользователей перевалило за 80000  uglystupid, более 3000 страниц... Попытался воспользоваться "Удалением неактивных пользователей", выбираю Удалить всех пользователей которые не посещали форум в течение 200 дней. нажимаю Удалить, страничка грузиться несколько секунд и выдает пустую страницу... и всё... пользователи не удаляются...
поиском решения сей проблемы не нашёл... прошу помощи :)

Макар

Скорее всего не хватает времени на выполнение скрипта. :( При таких то объемах .
Если Вы здесь недавно, не обольщайтесь тоном некоторых дискуссий.
Все чаще слова - юзай поиск, приобретают смысл - иди в ж..........  Приобретение смысла автоматизированно - Ответы на любой вопрос по SMF
Не пишите несколько сообщений подряд - тут вам не Twitter  >:( в остальных ситуациях мы не сильно зверствуем 2funny

Beer

 Попробуй удалять их постранично.

star trooper

Цитата: Beer от 05 июля 2011, 23:41:56
Попробуй удалять их постранично.
3000 страниц :) удалять буду до китайской пасхи :)

Beer

 Сделай дамп БД, выключи форум, сделай это на локале, и верни таблицу smf_users (если не ошибся) с локаля на хост.

(Не надо меня цитировать - я провалами памяти не страдаю ...)))

Сапожник

Подниму тему...
Нужно удалить "трупов" - около 10 тыс. по определенным условиям
Убить их в таблице smf_members не проблема, но в любом случае останутся хвосты (личные сообщения, ....)
Эти хвосты так и останутся висеть или при осбслуживании форума (пересчет статистики,ремонт БД, ...) они почистятся?
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

digger®

Цитата: Сапожник от 08 августа 2012, 17:45:56
Подниму тему...
Нужно удалить "трупов" - около 10 тыс. по определенным условиям
Убить их в таблице smf_members не проблема, но в любом случае останутся хвосты (личные сообщения, ....)
Эти хвосты так и останутся висеть или при осбслуживании форума (пересчет статистики,ремонт БД, ...) они почистятся?
При исправлении ошибок скажет что отправители не существуют и починит.

Сапожник

Цитата: digger от 08 августа 2012, 18:08:17При исправлении ошибок скажет что отправители не существуют и починит.
Спасибо. Буду пробовать.
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

hizord

Это вечный вопрос.
Я сделал проще, запросом  DELETE FROM  `smf_members` WHERE  `posts`= '0' ; удалил всех пользователей у которых было 0 сообщений, прокатило на ура. После заходим в" Центр администрирования"  "Обслуживание форума" " Ремонт" "Найти и исправить любые ошибки" система ищет все оставшиеся хвосты и удаляем их. У меня все прошло без глюков и ошибок.
30 000 пользователей за 1.4 секунды испарилось.
Только не забудьте перед этой операцией поставить форум на тех обслуживание, на всякий случай... .

Сапожник

Эко тебя в архивы закинуло )))))
У трупов не всегда постов ноль ;)
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

hizord

не спорю, но многим такой метод подойдет, учитывая что по этому вопросу в инете толком информации нет я предоставил хоть какой то рабочий вариант, да и дал остальным повод для обсуждений, а там уже модифицируйте mysql запросы под ваши личные нужды.

gorbi


hizord

Предлагайте варианты по которым надо фильтровать пользователей на удаление, может и найдем оптимальный вариант

Сапожник

Цитата: hizord от 04 января 2015, 12:50:05
Предлагайте варианты по которым надо фильтровать пользователей на удаление, может и найдем оптимальный вариант
на момент моего вопроса, мне нужно было выделить пользователей можно сказать в творческом ручном режиме, который тяжело было оформить в запрос. Это и кол-во сообщений, и последний визит, и т.д. и т.п.
Поэтому мне было легче сохранить таблицу в экселе, нормально обработать её, получить перечень ID для удалений и уже их вставить в запрос.
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

iltmpz

Кто-нибудь нашел рабочий пример для более адекватного удаления, чем прямым запросом из базы?

Задался вопросом, хочу забить в планировщик запрос на удаление пользователей по сформированному по своим критериям списку, но делать DELETE FROM  `smf_members` WHERE ... и потом надеяться, что исправление подчистит все хвосты - не хочется, хочется штатный способ, по типу SSI-функции. SSI я так понимаю это не умеет, поэтому нашел:

в ./Sources/Subs-Members.php:
        void deleteMembers(array $users, bool check_not_admin = false)
                - delete of one or more members.
                - requires profile_remove_own or profile_remove_any permission for
                  respectively removing your own account or any account.
                - non-admins cannot delete admins.
                - changes author of messages, topics and polls to guest authors.
                - removes all log entries concerning the deleted members, except the
                  error logs, ban logs and moderation logs.
                - removes these members' personal messages (only the inbox), avatars,
                  ban entries, theme settings, moderator positions, poll votes, and
                  karma votes.
                - updates member statistics afterwards.

http://support.simplemachines.org/function_db/index.php?action=view_function;id=129;smf_version=2.0.9 - вот мануал нагуглил.
Ни у кого нет примера, как правильно эту функцию использовать из внешнего скрипта, чтобы не тратить время на ковыряние?
Там же оно еще как я понимаю права того то чьего имени выполняется проверяет? В логи пишет, мол, юзер такой-то почистил таких-то. Как тут грамотно сделать?

Сапожник

Цитата: iltmpz от 04 февраля 2015, 17:01:11
Кто-нибудь нашел рабочий пример для более адекватного удаления, чем прямым запросом из базы?

Задался вопросом, хочу забить в планировщик запрос на удаление пользователей по сформированному по своим критериям списку, но делать DELETE FROM  `smf_members` WHERE ... и потом надеяться, что исправление подчистит все хвосты - не хочется, хочется штатный способ, по типу SSI-функции. SSI я так понимаю это не умеет, поэтому нашел:

в ./Sources/Subs-Members.php:
        void deleteMembers(array $users, bool check_not_admin = false)
                - delete of one or more members.
                - requires profile_remove_own or profile_remove_any permission for
                  respectively removing your own account or any account.
                - non-admins cannot delete admins.
                - changes author of messages, topics and polls to guest authors.
                - removes all log entries concerning the deleted members, except the
                  error logs, ban logs and moderation logs.
                - removes these members' personal messages (only the inbox), avatars,
                  ban entries, theme settings, moderator positions, poll votes, and
                  karma votes.
                - updates member statistics afterwards.

http://support.simplemachines.org/function_db/index.php?action=view_function;id=129;smf_version=2.0.9 - вот мануал нагуглил.
Ни у кого нет примера, как правильно эту функцию использовать из внешнего скрипта, чтобы не тратить время на ковыряние?
Там же оно еще как я понимаю права того то чьего имени выполняется проверяет? В логи пишет, мол, юзер такой-то почистил таких-то. Как тут грамотно сделать?
Тут почитай, на аналогичную тему: http://www.simplemachines.org/community/index.php?topic=511999.msg3616518#msg3616518
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

iltmpz

Цитата: Сапожник от 04 февраля 2015, 17:17:05Тут почитай, на аналогичную тему
Спасибо, то что нужно, однако из крона авторизоваться не удается, как я и предполагал:
<?php
$ssi_guest_access 
true;
$dir="/my_web_dir_forum";
require(
$dir '/SSI.php');
require_once(
$dir '/Sources/Subs-Members.php');

deleteMembers(294false);
?>

из браузера удалилось.
Из крона или командной строки, выдает страницу, в середине которой:
ЦитироватьYou don't have the permissions to go about removing people's accounts!
Как бы мне эту проверку обойти?

iltmpz

#17
Всем спасибо, убил-таки полдня, проделал свое собственное исследование, но нашел: глобальный массив:
Цитироватьrequire($dir . '/SSI.php');
require_once($dir . '/Sources/Subs-Members.php');

$user_info["is_admin"]=1;
$user_info["name"]="Scheduler";
$user_info["username"]="Scheduler";

deleteMembers(294, false);

Юзер удалился, в логах админа:
Action    Date    Member    Position    IP    
Deleted member "имя юзера"    Today at 01:57:03 PM    Guest (Scheduler)    Guest мой_ип

Guest (Scheduler) это имя того админа который удалил юзера.

Если это вызывать по крону, то IP пустой, остальное работает.

P.S:
ну и выборка юзеров, которых удалить, поделюсь бесплатно, вдруг кому пригодится:
$members=ssi_queryMembers(1,array(),'','id_member DESC','array');

foreach($members as $member)
{
    $isToSkip=0;
if(!preg_match("#http://#",$member["website"]["url"]) && !preg_match("#http://#",$member["signature"]))$isToSkip=1;
    if($member["posts"]>0)$isToSkip=1;

    if($isToSkip)continue;
//    echo $member["link"].":".$member["id"].".<br>\n";
    deleteMembers($member["id"], false);
//    break;
//    $i++;
}

Snow_Irbis

Вот и я задался данным вопросом, скопилось тысяч 20 неактивных пользователей с 0 сообщениями на форуме, удалить не проблема, но думаю следует ли удалять или нет? Кто что посоветует?

kak2z

Цитата: Snow_Irbis от 20 октября 2016, 11:19:11Вот и я задался данным вопросом, скопилось тысяч 20 неактивных пользователей с 0 сообщениями на форуме, удалить не проблема, но думаю следует ли удалять или нет? Кто что посоветует?
если у них там активные адреса электронной почты - то лучше раз в неделю делать рассылку новостей - кто то да зайдет.. после рассылки всегда активность повышается)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Snow_Irbis

Цитата: kak2z от 20 октября 2016, 11:31:36если у них там активные адреса электронной почты - то лучше раз в неделю делать рассылку новостей - кто то да зайдет.. после рассылки всегда активность повышается)

Валидность адресов мне не известна, так как нарегилось столько юзверей еще во времена когда форум был на Юкозе (валидность известна только у тех кто хоть одну мессегу на форуме оставил, которых я хочу оставить), но как минимум половина адресов там СПАМеров и приглашение зайти на свой форум мне как то не охота рассылать :) Уж лучше наверное разослать 1000 пользователей, но те которые проявили интерес к форуму :) И еще вроде как лимит на отправку есть писем, 20 тыщ я не отправлю писем, максимум до 1200 писем в день :)

GeorG

Цитата: Snow_Irbis от 20 октября 2016, 11:19:11но думаю следует ли удалять или нет?
Пускай думают что вас много ;D

Вообще, вот буквально вчера задумывался писать мод, чтобы не активных пользователей переименовывало во что-то типа - без_имени_0000 (вместо нолей, номер). Просто некоторые пользователи хотят себе такой ник, который есть уже у пользователя, который давно на форум не заходит. И тут прямо напомнили :)
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Snow_Irbis

Цитата: GeorG от 20 октября 2016, 12:48:12Пускай думают что вас много ;D Вообще, вот буквально вчера задумывался писать мод, чтобы не активных пользователей переименовывало во что-то типа - без_имени_0000 (вместо нолей, номер). Просто некоторые пользователи хотят себе такой ник, который есть уже у пользователя, который давно на форум не заходит. И тут прямо напомнили :)

После чистки около 1000 останется, вроде тоже много, но пока обдумываю данный шаг :)

GeorG

У меня на форуме 22829, и мне как бы они не мешают ;D
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Snow_Irbis

У меня 25031 на данный момент, из них 24 тысячи неактивных юзеров (которые никак не проявили активность на форуме). Из-за такого большого количества делать рассылку активным пользователям затруднительно + опять же ники заняты +неактивные пользователи как скрытая бомба (среди них много СПАМ ботов, которые могут проспамить форум). Интересно как другие поступают с неактивными пользователями :)

GeorG

Цитата: Snow_Irbis от 20 октября 2016, 13:13:21Интересно как другие поступают с неактивными пользователями :)
Ну я вот например, их просто не трогаю.

Кстати тоже интересно, а как с ними остальные поступают?
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

sgtWhite

Тру через два-три месяца (с 0 сообщений). Ботов сразу.