Desconnexió automàtica dels usuaris a ISPManager5 lite sense BILLmanager

Donat:

  1. Servidor VPS amb llicència perpètua ispmanager lite 5
  2. 10-20 usuaris per servidor
  3. Google Calendar amb recordatoris periòdics per a aquells que s'han quedat sense allotjament
  4. És una llàstima pagar per qualsevol altra cosa, sobretot amb una subscripció.

L'objectiu és desfer-se del calendari de Google i dels recordatoris manuals al client que ha de pagar per l'allotjament. Allibereu-vos de "deixeu-lo treballar una mica més, aviat pagarà", "és d'alguna manera inconvenient apagar-lo" i confieu-ho a una màquina sense ànima.

Per descomptat, primer vaig buscar i buscar a Google, però no vaig trobar cap solució, tot es va reduir al fet que t'has de subscriure a BILLmanager, però el punt número 4 és molt important i seriós per a mi, no ho aconseguiré. desfer-se'n. I la decisió no va resultar tan difícil.

Aleshores, què fem?

Creeu una carpeta users.addon, al directori /usr/local/mgr5/etc/sql/, dos fitxers buits:

  1. data_pagament
  2. uwemail

Això ordenarà al panell que creï a la base de dades
/usr/local/mgr5/etc/ispmgr.db
a la taula d'usuaris hi ha dos camps corresponents on s'escriuran els valors del tauler d'administració.

Creeu un fitxer anomenat ispmgr_mod_pay_data.xml a la carpeta /usr/local/mgr5/etc/xml amb el contingut

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

Això dóna al panell una regla perquè els nostres camps es mostrin al formulari d'edició de l'usuari.

Reinicieu el panell:

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

Tenim:

Desconnexió automàtica dels usuaris a ISPManager5 lite sense BILLmanager

En els camps escrivim fins a quin dia ha de funcionar l'allotjament, i quin correu electrònic de l'usuari, on enviar recordatoris que l'allotjament s'acabarà aviat.

Ara hem de crear un script que recordi als usuaris que l'allotjament acaba en alguns intervals. Aviseu a l'administrador que l'allotjament està acabant. Aviseu l'usuari i l'administrador que l'usuari està desactivat.

M'agrada php i vaig escriure un script.

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

Desem aquest script a qualsevol lloc i l'anomenem com vulguem, i afegim una tasca cron per cridar-lo una vegada al dia. Tot a punt.

Ara tinc la consciència tranquil·la, el gripau està satisfet i no he incorregut en cap cost addicional.

Només queda omplir les dades dels usuaris en quina data es va pagar l'allotjament i el correu electrònic dels usuaris on enviar recordatoris als usuaris.

M'alegro si ajuda algú.

Font: www.habr.com

Afegeix comentari