ISPManager5 lite-n erabiltzaileen deskonexio automatikoa BILLmanager gabe

Emana:

  1. VPS zerbitzaria betiko lizentzia duen ispmanager lite 5
  2. 10-20 erabiltzaile zerbitzari bakoitzeko
  3. Google Calendar ohiko abisuekin hostinga gabe geratu direnentzat
  4. Pena da beste edozer ordaintzea, batez ere harpidetzarekin.

Helburua da Google-ren egutegia eta eskuzko abisuak kentzea bezeroari hostinga ordaindu behar duela. Askatu "utzi apur bat gehiago lan egiten, laster ordainduko du", "nolabait deserosoa da itzaltzea" eta utzi hau arimarik gabeko makina bati.

Noski, lehenengo Googlen egin nuen eta bilatu nuen, baina ez nuen irtenbiderik aurkitu, BILLmanager-era harpidetu behar zarela laburbildu zen guztia, baina 4. puntua oso garrantzitsua eta serioa da niretzat, ez dut lortuko kendu. Eta erabakia ez zen hain zaila izan.

Orduan, zer egiten dugu?

Sortu karpeta bat users.addon, /usr/local/mgr5/etc/sql/ direktorioan, bi fitxategi huts:

  1. ordainketa_data
  2. uwemail

Honek panelari datu-basean sortzeko aginduko dio
/usr/local/mgr5/etc/ispmgr.db
Erabiltzaileen taulan dagozkien bi eremu daude non administrazio paneleko balioak idatziko diren.

Sortu ispmgr_mod_pay_data.xml izeneko fitxategia /usr/local/mgr5/etc/xml karpetan edukiarekin

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

Honek panelari arau bat ematen dio, gure eremuak erabiltzailearen edizio formularioan bistaratzeko.

Berrabiarazi panela:

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

Lortzen dugu:

ISPManager5 lite-n erabiltzaileen deskonexio automatikoa BILLmanager gabe

Eremuetan ostalaritzak zein egun arte funtzionatu behar duen idazten dugu, eta erabiltzailearen zein e-posta, non bidali abisuak ostalaritza laster amaituko den.

Orain erabiltzaileei ostalaritza tarte batzuetan amaitzen dela gogoraraziko dien script bat sortu behar dugu. Jakinarazi administratzaileari hostinga amaitzen ari dela. Jakinarazi erabiltzaileari eta administratzaileari erabiltzailea desgaituta dagoela.

PHP gustatzen zait eta script bat idatzi dut.

<?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 Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠ΄Π°Π»ΡΠ»ΠΈΡΡŒ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, Π½ΠΎ ΠΌΠ½Π΅ это Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ
}

Script hau edonon gordetzen dugu eta nahi dugun moduan deitzen diogu eta cron zeregin bat gehitzen diogu egunean behin deitzeko. Dena prest dago.

Orain nire kontzientzia garbi dago, apoa ase, eta ez dut kostu gehigarririk egin.

Ostalaritza zein datatan ordaindu den erabiltzaileen datuak eta erabiltzaileei abisuak bidaltzeko erabiltzaileen posta elektronikoa betetzea besterik ez da geratzen.

Pozik norbaiti laguntzen badio.

Iturria: www.habr.com

Gehitu iruzkin berria