Automatisk afbrydelse af brugere i ISPManager5 lite uden BILLmanager

Givet:

  1. VPS-server med evig licens ispmanager lite 5
  2. 10-20 brugere pr. server
  3. Google Kalender med regelmæssige påmindelser til dem, der er løbet tør for hosting
  4. Det er en skam at betale for andet, især med et abonnement.

Målet er at slippe af med Google-kalender og manuelle påmindelser til kunden om, at han skal betale for hosting. Frigør dig selv fra "lad ham arbejde lidt mere, han betaler snart", "det er på en eller anden måde ubelejligt at slukke det", og overlad dette til en sjælløs maskine.

Jeg har selvfølgelig først Googlet og søgt, men fandt ingen løsninger, det hele bundede i, at du skal abonnere på BILLmanager, men punkt nr. 4 er meget vigtigt og seriøst for mig, det får jeg ikke slippe af med det. Og beslutningen viste sig ikke at være så svær.

Så hvad gør vi?

Opret en mappe users.addon i mappen /usr/local/mgr5/etc/sql/, to tomme filer:

  1. betalingsdato
  2. din e-mail

Dette vil kommandere panelet til at oprette i databasen
/usr/local/mgr5/etc/ispmgr.db
i brugertabellen er der to tilsvarende felter, hvor værdierne fra admin panelet vil blive skrevet.

Opret en fil kaldet ispmgr_mod_pay_data.xml i mappen /usr/local/mgr5/etc/xml med indholdet

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

Dette giver panelet en regel, så vores felter vises i brugerens redigeringsformular.

Genstart panelet:

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

Vi får:

Automatisk afbrydelse af brugere i ISPManager5 lite uden BILLmanager

I felterne skriver vi indtil hvilken dag hostingen skal virke, og hvilken e-mail på brugeren, hvor man skal sende påmindelser om at hostingen snart slutter.

Nu skal vi oprette et script, der vil minde brugerne om, at hosting slutter med nogle intervaller. Giv administratoren besked om, at hosting slutter. Giv brugeren og administratoren besked om, at brugeren er deaktiveret.

Jeg kan godt lide php på det og skrev et 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 что бы данные удалялись через некоторое время, но мне это не нужно
}

Vi gemmer dette script hvor som helst og kalder det, hvad vi vil, og tilføjer en cron-opgave for at kalde det én gang om dagen. Alt er klar.

Nu er min samvittighed ren, tudsen er tilfreds, og jeg har ikke haft ekstra omkostninger.

Tilbage er blot at udfylde dataene i brugerne, hvilken dato hostingen blev betalt for, og e-mailen på brugerne, hvor de skal sende påmindelser til brugerne.

Glad hvis det hjælper nogen.

Kilde: www.habr.com

Tilføj en kommentar