Русский
Русский
English
Статистика
Реклама

Without billmanager

Из песочницы Автоматичное отключение пользователей в ISPManager5 lite без BILLmanager

11.08.2020 18:08:34 | Автор: admin
Дано:

  1. VPS Сервер с вечной лицензией ispmanager lite 5
  2. 10-20 пользователей на сервере
  3. Google Calendar с регулярными напоминаниями у кого закончился хостинг
  4. Душащая жаба платить за что либо еще, тем более на подписке

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

Конечно же сначала погуглил поискал, но не нашел решений все сводилось к тому что нужно взять подписку BILLmanager, но пункт 4 у меня очень важный и серьезный, от него избавляться не буду. Да и решение оказалось не таким уж и сложным.

Итак, что делаем.

Cоздаём папку users.addon, в директории /usr/local/mgr5/etc/sql/, два пустых файла:

  1. pay_date
  2. uwemail

Это даст команду панели создать в базе
/usr/local/mgr5/etc/ispmgr.db
в таблице users два соответствующих поля куда будут писаться значения с админ панели.

Создаем файл файл ispmgr_mod_pay_data.xml в папке /usr/local/mgr5/etc/xmlс содержимым

<?xml version="1.0" encoding="UTF-8"?><mgrdata><metadata name="user.edit"><form><page name="main"><field name="pay_date"><input type="text" name="pay_date"/></field><field name="uwemail"><input type="text" name="uwemail"/></field></page></form></metadata><lang name="ru"><messages name="user.edit"><msg name="pay_date" sqlname="pay_date">Оплачено до</msg><msg name="uwemail" sqlname="uwemail">Пользовательский email</msg></messages></lang><lang name="en"><messages name="user.edit"><msg name="pay_date" sqlname="pay_date">Paid before</msg><msg name="uwemail" sqlname="uwemail">User email</msg></messages></lang></mgrdata>

Это дает правило панели что бы наши поля отображались в форме редактирования пользователя.

Перезагружаем панель:

/usr/local/mgr5/sbin/mgrctl -m ispmgr exit

Получаем:

image

В поля пишем до какого дня должен хостинг работать, и какой email пользователя, куда слать напоминания о том что скоро закончиться хостинг.

Теперь нужно создать скрипт который будет напоминать пользователям о том что хостинг заканчивается с некой периодичностью. Уведомлять админа о том что хостинг заканчивается. Уведомлять пользователя и админа о том что пользователь отключен.

Мне близок php на нем и написал скрипт.

<?php$adminemail = "admin@gmail.com"; // email админа$day_send_message = [30,7,5,3,1]; // за сколько дней и с какой переодичностью будет напоминать пользователю что хостинг заканчивается$db = new SQLite3('/usr/local/mgr5/etc/ispmgr.db');$results = $db->query('SELECT * FROM users WHERE active == "on" AND pay_date IS NOT NULL');while ($user = $results->fetchArray()) {$days_left=floor( ( strtotime($user['pay_date']) - time() ) / (60 * 60 * 24));if(in_array($days_left, $day_send_message)){if($user['uwemail'] != ""){mail($user['uwemail'], 'ISPMANAGER заканчивается хостинг через '.$days_left.' дней\я', "Текст для пользователя о том что осталось столько то дней");}}if( $days_left == 3 ) {mail($adminemail, 'ISPMANAGER USER '.$user['name'], $user['name'] . " Закончится хостинг через ".$days_left." дня");}if($days_left <= 0){mail($adminemail, 'ISPMANAGER USER '.$user['name'].' DISABLED', $user['name'].' Отключен');exec("/usr/local/mgr5/sbin/mgrctl -m ispmgr user.suspend elid=".$user["name"]);if( $user['uwemail'] != "" ) {mail($user['uwemail'], 'ISPMANAGER хостинг отключен', 'Текст для пользователя что хостинг закончился'); }}// при желании можно еще написать небольшой IF что бы данные удалялись через некоторое время, но мне это не нужно}

Этот скрипт сохраняем куда угодно и называем как угодно, добавляем в cron задачу для вызова его раз в сутки. Все готово.

Теперь совесть чистая, жаба удовлетворена, дополнительных затрат не понес.

Осталось заполнить данными в пользователей к какой дате оплачен хостинг, и email пользователей куда слать напоминания пользователям.

Рад если кому то поможет.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru