Automatisk avstÀngning av anvÀndare i ISPManager5 lite utan BILLmanager

Givet:

  1. VPS-server med evig licens för ispmanager lite 5
  2. 10-20 anvÀndare pÄ servern
  3. Google Kalender med regelbundna pÄminnelser om vem som har slutat hosting
  4. Det kÀnns som att kvÀvas av att betala för nÄgot mer, sÀrskilt för en prenumeration

MÄlet Àr att bli av med Google Kalender och manuella pÄminnelser till kunderna om att de behöver betala för hosting. Att frigöra sig frÄn "lÄt oss vÀnta lite till, han kommer snart att betala" och "det Àr lite obekvÀmt att stÀnga av", och lÄta en sjÀlslös maskin hantera detta.

SjÀlvklart googlade jag först och letade, men jag hittade inga lösningar; allt handlade om att man behövde ta en prenumeration pÄ BILLmanager, men punkt nr 4 Àr vÀldigt viktig och allvarlig för mig, sÄ jag kommer inte att ge upp den. Och lösningen visade sig inte vara sÄ komplicerad.

SÄ, vad gör vi nu.

Vi skapar en mapp users.addon i katalogen /usr/local/mgr5/etc/sql/, tvÄ tomma filer:

  1. pay_date
  2. uwemail

Detta ger ett kommando till panelen att skapa i databasen
/usr/local/mgr5/etc/ispmgr.db
i tabellen users tvÄ motsvarande fÀlt dÀr vÀrdena frÄn adminpanelen kommer att skrivas.

Skapa en fil ispmgr_mod_pay_data.xml i mappen /usr/local/mgr5/etc/xml med följande innehÄll

Betald till
			AnvÀndarens e-post
		
	
	
		
			Paid before
			User email

Detta ger panelen en regel sÄ att vÄra fÀlt visas i formulÀret för anvÀndarredigering.

Vi laddar om panelen:

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

Vi fÄr:

Automatisk avstÀngning av anvÀndare i ISPManager5 lite utan BILLmanager

I fÀlten skriver vi vad som Àr sista dagen som hostingen ska fungera, och vilken e-postadress anvÀndaren har, dit pÄminnelser om att hostingen snart tar slut ska skickas.

Nu behöver vi skapa ett skript som pÄminner anvÀndare om att hostingen gÄr ut med viss regelbundenhet. Att meddela admin om att hostingen gÄr ut. Att meddela anvÀndaren och admin om att anvÀndaren har blivit avstÀngd.

Jag Àr nÀra bekant med PHP och har skrivit ett 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 gÄr ut om '.$days_left.' dagar', "Text till anvÀndaren om att det Àr '.$days_left.' dagar kvar");
			}
		}
		if( $days_left == 3 ) {
			mail($adminemail, 'ISPMANAGER ANVÄNDARE '.$user['name'], $user['name'] . " hosting gĂ„r ut om ".$days_left." dag");
		}
		if($days_left <= 0){
			mail($adminemail, 'ISPMANAGER ANVÄNDARE '.$user['name'].' AVSTÄNGD', $user['name'].' AvstĂ€ngd');
			exec("\/usr\/local\/mgr5\/sbin\/mgrctl -m ispmgr user.suspend elid=".$user["name"]);
			if( $user['uwemail'] != "" ) {
				mail($user['uwemail'], 'ISPMANAGER hosting avstÀngd', 'Text till anvÀndaren om att hosting har avslutats'); 
			}
		}
		// om man vill kan man ocksÄ lÀgga till en liten IF för att data tas bort efter en tid, men jag behöver inte det
}

Spara detta skript var som helst och namnge det som du vill, lÀgg till en cron-jobb för att köra det en gÄng om dagen. Allt klart.

Nu Àr samvetet rent, grodan nöjd, inga extra kostnader har Ädragits.

ÅterstĂ„r att fylla i anvĂ€ndarnas betalningsdatum för hosting och anvĂ€ndarnas e-postadresser för att skicka pĂ„minnelser.

Glad om det kan hjÀlpa nÄgon.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster