Awtomatikong pagdiskonekta sa mga tiggamit sa ISPManager5 lite nga walay BILLmanager

Gihatag:

  1. VPS Server nga adunay walay katapusan nga lisensya ispmanager lite 5
  2. 10-20 nga tiggamit matag server
  3. Ang Google Calendar nga adunay regular nga mga pahinumdom alang sa mga nahutdan sa pag-host
  4. Makauulaw ang pagbayad sa bisan unsang butang, labi na sa usa ka suskrisyon.

Ang katuyoan mao ang pagtangtang sa Google calendar ug manual nga mga pahinumdom sa kliyente nga kinahanglan niyang bayran alang sa pag-host. Pahigawas ang imong kaugalingon gikan sa "patrabaho siya og gamay pa, magbayad siya sa dili madugay", "dili kombenyente nga i-off kini", ug itugyan kini sa usa ka walay kalag nga makina.

Siyempre, nag-una ko sa Google ug nangita, apan wala'y nakit-an nga bisan unsang mga solusyon, ang tanan nabuak sa kamatuoran nga kinahanglan nimo nga mag-subscribe sa BILLmanager, apan ang punto No. 4 hinungdanon kaayo ug seryoso alang kanako, dili nako makuha. kuhaa kini. Ug ang desisyon nahimo nga dili kaayo lisud.

Busa unsa ang atong buhaton?

Paghimo og folder users.addon, sa /usr/local/mgr5/etc/sql/ directory, duha ka walay sulod nga files:

  1. pay_date
  2. uwemail

Kini momando sa panel sa paghimo sa database
/usr/local/mgr5/etc/ispmgr.db
sa lamesa sa mga tiggamit adunay duha ka katugbang nga mga natad diin ang mga kantidad gikan sa admin panel isulat.

Paghimo og file nga gitawag og ispmgr_mod_pay_data.xml sa /usr/local/mgr5/etc/xml folder nga adunay sulod

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

Naghatag kini sa panel og usa ka lagda aron ang among mga field mapakita sa porma sa pag-edit sa user.

I-reboot ang panel:

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

Nakuha namon:

Awtomatikong pagdiskonekta sa mga tiggamit sa ISPManager5 lite nga walay BILLmanager

Sa mga natad nga among gisulat hangtod unsang adlaw ang pag-host kinahanglan molihok, ug kung unsang email sa tiggamit, kung diin ipadala ang mga pahinumdom nga ang pag-host matapos sa dili madugay.

Karon kinahanglan namong maghimo usa ka script nga magpahinumdom sa mga tiggamit nga ang pag-host matapos sa pipila ka mga agwat. Pahibalo sa admin nga ang pag-host natapos na. Pahibalo sa user ug admin nga ang user disabled.

Ganahan ko sa php niini ug nagsulat og script.

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

Among gitipigan kini nga script bisan asa ug gitawag kini bisan unsa nga gusto namo, ug gidugangan ang usa ka cron nga buluhaton aron tawagan kini kausa sa usa ka adlaw. Andam na ang tanan.

Karon limpyo na ang akong tanlag, natagbaw ang baki, ug wala na akoy dugang gasto.

Ang nahabilin mao ang pagpuno sa datos sa mga tiggamit kung unsang petsa gibayran ang pag-host, ug ang email sa mga tiggamit kung diin ipadala ang mga pahinumdom sa mga tiggamit.

Nalipay kung makatabang kini sa usa ka tawo.

Source: www.habr.com

Idugang sa usa ka comment