Automātiska lietotāju atvienošana ISPManager5 lite bez BILLmanager

Ņemot vērā:

  1. VPS serveris ar pastāvīgo licenci ispmanager lite 5
  2. 10-20 lietotāji uz vienu serveri
  3. Google kalendārs ar regulāriem atgādinājumiem tiem, kam ir beigusies mitināšana
  4. Žēl maksāt par jebko citu, it īpaši ar abonementu.

Mērķis ir atbrīvoties no Google kalendāra un manuāliem atgādinājumiem klientam, ka viņam ir jāmaksā par hostingu. Atbrīvojieties no “ļaujiet viņam strādāt vēl mazliet, viņš drīz maksās”, “kaut kā neērti to izslēgt” un uzticiet to bezdvēseles mašīnai.

Es, protams, vispirms googlē un meklēju, bet risinājumus neatradu, viss sagriezās līdz tam, ka vajag abonēt BILLmanager, bet punkts nr.4 man ir ļoti svarīgs un nopietns, nesanāks. atbrīvoties no tā. Un lēmums izrādījās ne tik grūts.

Tātad, ko mēs darām?

Izveidojiet mapi users.addon direktorijā /usr/local/mgr5/etc/sql/, divus tukšus failus:

  1. pay_date
  2. uwemail

Tas pavēlēs panelim izveidot datu bāzē
/usr/local/mgr5/etc/ispmgr.db
lietotāju tabulā ir divi atbilstoši lauki, kuros tiks ierakstītas vērtības no admin paneļa.

Izveidojiet failu ar nosaukumu ispmgr_mod_pay_data.xml mapē /usr/local/mgr5/etc/xml ar saturu

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

Tas panelim piešķir kārtulu, lai mūsu lauki tiktu parādīti lietotāja rediģēšanas veidlapā.

Pārstartējiet paneli:

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

Mēs iegūstam:

Automātiska lietotāju atvienošana ISPManager5 lite bez BILLmanager

Laukos ierakstām līdz kurai dienai hostingam jāstrādā un kāds lietotāja e-pasts, kur sūtīt atgādinājumus, ka hostings drīz beigsies.

Tagad mums ir jāizveido skripts, kas atgādinās lietotājiem, ka hostings beidzas ar dažiem intervāliem. Paziņojiet administratoram, ka mitināšana beidzas. Paziņojiet lietotājam un administratoram, ka lietotājs ir atspējots.

Man patīk php par to un uzrakstīju skriptu.

<?php
$adminemail = "[email protected]"; // 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 что бы данные удалялись через некоторое время, но мне это не нужно
}

Mēs saglabājam šo skriptu jebkurā vietā un saucam to, kā vien vēlamies, un pievienojam cron uzdevumu, lai to izsauktu vienu reizi dienā. Viss ir gatavs.

Tagad mana sirdsapziņa ir tīra, krupis apmierināts, un nekādas papildu izmaksas man nav radušās.

Atliek tikai aizpildīt lietotāju datus, kurā datumā par hostingu tika samaksāts, un lietotāju e-pastu, kur nosūtīt atgādinājumus lietotājiem.

Prieks, ja kādam palīdz.

Avots: www.habr.com

Pievieno komentāru