Аутоматско искључивање корисника у ИСПМанагер5 лите без БИЛЛманагер-а

Дато:

  1. ВПС сервер са трајном лиценцом испманагер лите 5
  2. 10-20 корисника по серверу
  3. Гугл календар са редовним подсетницима за оне којима понестаје новца хостинг
  4. Срамота је платити било шта друго, поготово уз претплату.

Циљ је да се отарасимо Гоогле календара и ручних подсетника клијенту да треба да плати хостинг. Ослободите се „пустите га да ради још мало, ускоро ће платити“, „некако је незгодно искључити га“, и повери ово машини без душе.

Наравно, прво сам гуглао и тражио, али нисам нашао никаква решења, све се свело на то да треба да се претплатите на БИЛЛманагер, али тачка број 4 је веома важна и озбиљна за мене, нећу добити отарасим. И испоставило се да одлука није била тако тешка.

Па шта да радимо?

Направите фасциклу усерс.аддон, у директоријуму /уср/лоцал/мгр5/етц/скл/, две празне датотеке:

  1. паи_дате
  2. увемаил

Ово ће командовати панелу да се креира у бази података
/уср/лоцал/мгр5/етц/испмгр.дб
у табели корисника постоје два одговарајућа поља у која ће бити уписане вредности ​​са админ панела.

Направите датотеку под називом испмгр_мод_паи_дата.кмл у фасцикли /уср/лоцал/мгр5/етц/кмл са садржајем

<?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

Добијамо:

Аутоматско искључивање корисника у ИСПМанагер5 лите без БИЛЛманагер-а

У пољима уписујемо до ког дана хостинг треба да ради, и који мејл корисника, где да пошаље подсетнике да ће хостинг ускоро престати.

Сада треба да направимо скрипту која ће подсећати кориснике да се хостинг завршава у одређеним интервалима. Обавестите администратора да се хостинг завршава. Обавестите корисника и администратора да је корисник онемогућен.

Свиђа ми се пхп на њему и написао сам скрипту.

<?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 что бы данные удалялись через некоторое время, но мне это не нужно
}

Чувамо ову скрипту било где и зовемо је како год желимо и додајемо црон задатак да је позивамо једном дневно. Све је спремно.

Сада ми је савест чиста, жаба је задовољна, а нисам имао никакве додатне трошкове.

Остаје само да се попуне подаци у корисницима ког датума је хостинг плаћен, и мејл корисника где да се шаљу подсетници корисницима.

Драго ми је ако некоме помогне.

Извор: ввв.хабр.цом

Купите поуздан хостинг за сајтове са ДДоС заштитом, ВПС ВДС сервере 🔥 Купите поуздан веб хостинг са DDoS заштитом, VPS VDS сервере | ProHoster