Automatické odpojení uživatelů v ISPManager5 lite bez BILLmanageru

Dané:

  1. VPS server s doživotní licencí ispmanager lite 5
  2. 10-20 uživatelů na serveru
  3. Google Kalendář s pravidelnými připomínkami, kdo měl skončit hosting
  4. Dusí mne myšlenka platit za něco jiného, zejména za předplatné

Cíl je zbavit se Google Kalendáře a ručních připomínek klientovi, že musí zaplatit za hosting. Zbavit se pocitu "nechme ho ještě chvíli pracovat, brzy zaplatí" a "není příjemné odpojovat" a svěřit to bezduché mašině.

Samozřejmě jsem nejprve googlil, hledal, ale nenašel jsem žádná řešení, všechno se to točilo kolem toho, že je třeba mít předplatné BILLmanager. Ale bod č. 4 je pro mne velmi důležitý a vážný, od toho se nehodlám vzdát. A řešení se ukázalo být docela jednoduché.

Takže, co děláme.

Vytvoříme složku users.addon v adresáři /usr/local/mgr5/etc/sql/ a dva prázdné soubory:

  1. pay_date
  2. uwemail

To dá panelu příkaz vytvořit v databázi
/usr/local/mgr5/etc/ispmgr.db
v tabulce users dvě odpovídající pole, do kterých budou zapisovány hodnoty z administrativního panelu.

Vytvoříme soubor ispmgr_mod_pay_data.xml ve složce /usr/local/mgr5/etc/xml s obsahem

Do zaplacení</msg>
			Uživatelský email</msg>
		
		
	
		
			Paid before</msg>
			User email</msg>

To dává pravidlo panelu, aby se naše pole zobrazovala v formuláři pro úpravu uživatele.

Restartujeme panel:

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

Dostáváme:

Automatické odpojení uživatelů v ISPManager5 lite bez BILLmanageru

Do polí píšeme, do kdy má hosting pracovat a jaký email uživatele, kam poslat připomínky, že brzy skončí hosting.

Teď je potřeba vytvořit skript, který bude uživatelům připomínat, že hosting končí s určitou periodicitou. Upozorňovat administrátora, že hosting končí. Upozorňovat uživatele a administrátora, že uživatel je odpojen.

Jsem blízký PHP, na něm jsem napsal skript.

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 hosting končí za '.$days_left.' dní', "Text pro uživatele o tom, kolik dní zbývá");
			}
		}
		if( $days_left == 3 ) {
			mail($adminemail, 'ISPMANAGER UŽIVATEL '.$user['name'], $user['name'] . " hosting končí za ".$days_left." dní");
		}
		if($days_left <= 0){
			mail($adminemail, 'ISPMANAGER UŽIVATEL '.$user['name'].' DEAKTIVOVÁN', $user['name'].' byl deaktivován');
			exec("/usr/local/mgr5/sbin/mgrctl -m ispmgr user.suspend elid=".$user["name"]);
			if( $user['uwemail'] != "" ) {
				mail($user['uwemail'], 'ISPMANAGER hosting byl vypnut', 'Text pro uživatele, že hosting skončil'); 
			}
		}
		// pokud si někdo přeje, může napsat malý IF, aby se data vymazala po určité době, ale já to nepotřebuji
}

Tento skript uložíme kamkoli a pojmenujeme, jak chceme, přidáme do cron úlohu pro jeho volání jednou denně. Všechno je hotovo.

Teď je svědomí čisté, žába je spokojená, žádné další náklady nevznikly.

Zbývá vyplnit údaji uživatelů, k jakému datu byl hosting zaplacen, a emaily uživatelů, na které se mají posílat připomínky.

Rád, pokud to někomu pomůže.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster