A felhasználók automatikus leválasztása az ISPManager5 lite alkalmazásban BILLmanager nélkül

adott:

  1. VPS szerver örökös licenccel ispmanager lite 5
  2. 10-20 felhasználó szerverenként
  3. Google Naptár rendszeres emlékeztetőkkel azoknak, akiknek kifogyott a tárhely
  4. Kár fizetni bármi másért, pláne előfizetéssel.

A cél az, hogy megszabaduljunk a Google naptártól és a kézi emlékeztetőktől az ügyfél számára, hogy fizetnie kell a tárhelyért. Szabadulj meg a „dolgozzon még egy kicsit, mindjárt fizet”, „valahogy kényelmetlen kikapcsolni”, és bízd ezt egy lelketlen gépre.

Persze először gugliztam és keresgéltem, de nem találtam megoldást, az egész odáig fajult, hogy elő kell fizetni a BILLmanagerre, de a 4-es pont nagyon fontos és komoly számomra, nem fogom megkapni megszabadulni tőle. És kiderült, hogy a döntés nem volt olyan nehéz.

Szóval mit csináljunk?

Hozzon létre egy users.addon mappát a /usr/local/mgr5/etc/sql/ könyvtárban két üres fájllal:

  1. fizetési_dátum
  2. uwemail

Ez utasítja a panelt, hogy hozzon létre az adatbázisban
/usr/local/mgr5/etc/ispmgr.db
a felhasználók táblázatában két megfelelő mező található, ahová az adminisztrációs panel értékeit írják.

Hozzon létre egy ispmgr_mod_pay_data.xml nevű fájlt a /usr/local/mgr5/etc/xml mappában a tartalommal

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

Ez egy szabályt ad a panelnek, így a mezőink a felhasználó szerkesztési űrlapján jelennek meg.

Indítsa újra a panelt:

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

Kapunk:

A felhasználók automatikus leválasztása az ISPManager5 lite alkalmazásban BILLmanager nélkül

A mezőkbe írjuk, hogy milyen napig működjön a tárhely, és milyen e-mail-címet küld a felhasználónak, hova küldjünk emlékeztetőt, hogy a tárhely hamarosan véget ér.

Most létre kell hoznunk egy szkriptet, amely emlékezteti a felhasználókat arra, hogy a tárhely bizonyos időközönként véget ér. Értesítse az adminisztrátort, hogy a tárhely befejeződik. Értesítse a felhasználót és a rendszergazdát, hogy a felhasználó le van tiltva.

Szeretem a php-t rajta és írtam egy scriptet.

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

Ezt a szkriptet bárhová mentjük, és ahogy akarjuk, hívjuk, és hozzáadunk egy cron feladatot, amely naponta egyszer meghívja. Minden készen áll.

Most már tiszta a lelkiismeretem, elégedett a varangy, és semmi többletköltségem nem merült fel.

Nem kell mást tenni, mint kitölteni a felhasználók adatait, hogy melyik dátumon fizették ki a tárhelyet, valamint a felhasználók e-mail-címét, hogy hova küldjenek emlékeztetőket a felhasználóknak.

Örülök, ha valakinek segít.

Forrás: will.com

Hozzászólás