Automatisk frakobling av brukere i ISPManager5 lite uten BILLmanager

gitt:

  1. VPS-server med evigvarende lisens ispmanager lite 5
  2. 10-20 brukere per server
  3. Google Kalender med regelmessige påminnelser for de som har gått tom for hosting
  4. Det er synd å betale for noe annet, spesielt med et abonnement.

Målet er å kvitte seg med Google-kalender og manuelle påminnelser til klienten om at han må betale for hosting. Fri deg selv fra "la ham jobbe litt mer, han betaler snart", "det er på en eller annen måte upraktisk å slå det av", og overlate dette til en sjelløs maskin.

Jeg har selvfølgelig først googlet og søkt, men fant ingen løsninger, det hele kokte ned til at du må abonnere på BILLmanager, men punkt nr. 4 er veldig viktig og seriøst for meg, det får jeg ikke kvitt det. Og avgjørelsen viste seg å ikke være så vanskelig.

Så hva gjør vi?

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

  1. betalingsdato
  2. din e-post

Dette vil kommandere panelet til å opprette i databasen
/usr/local/mgr5/etc/ispmgr.db
i brukertabellen er det to tilsvarende felt der verdiene fra administrasjonspanelet vil bli skrevet.

Opprett en fil kalt ispmgr_mod_pay_data.xml i mappen /usr/local/mgr5/etc/xml med innholdet

<?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 gir panelet en regel slik at feltene våre vises i brukerens redigeringsskjema.

Start panelet på nytt:

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

Vi får:

Automatisk frakobling av brukere i ISPManager5 lite uten BILLmanager

I feltene skriver vi til hvilken dag hostingen skal fungere, og hvilken e-post til brukeren, hvor man skal sende påminnelser om at hostingen snart avsluttes.

Nå må vi lage et skript som vil minne brukerne om at hosting avsluttes med noen intervaller. Gi beskjed til administratoren om at hosting avsluttes. Varsle brukeren og administratoren om at brukeren er deaktivert.

Jeg liker php på det og skrev et manus.

<?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 lagrer dette skriptet hvor som helst og kaller det hva vi vil, og legger til en cron-oppgave for å kalle det en gang om dagen. Alt er klart.

Nå er samvittigheten ren, padden er fornøyd, og jeg har ikke fått noen ekstra kostnader.

Alt som gjenstår er å fylle ut dataene i brukerne på hvilken dato hostingen ble betalt for, og e-posten til brukerne hvor de skal sende påminnelser til brukerne.

Glad om det hjelper noen.

Kilde: www.habr.com

Legg til en kommentar