Givet:
- VPS-server med evig licens för ispmanager lite 5
- 10-20 anvÀndare pÄ servern
- Google Kalender med regelbundna pÄminnelser om vem som har slutat hosting
- 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:
- pay_date
- 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 exitVi fÄr:

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
