Удаление клиентов с устройства Mikrotik Routerboard происходит в два этапа. На первом этапе администратор вводит ID пользователя, которого нужно удалить. Скрипт извлекает из базы все необходимые данные для удаления и передает их другому скрипту, который и удаляет клиента с устройства Mikrotik Routerboard.
Дадим имя скриптам del_user.py и del_user_mikrotik.py.
del_user.py — подготавливает данные;
del_user_mikrotik.py — удаляет клиента с устройства Mikrotik Routerboard.
Рассмотрим скрипт del_user.py:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db, time, del_user_mikrotik
def f_del_user(id_user):
if raw_input("Вы уверенны что хотите удалить пользователя? y/n: ")=="y":
cur = mysql_db.db.cursor()
sql = "SELECT ip_user, device FROM users WHERE id = '%s'" % (id_user)
cur.execute(sql)
user_info = cur.fetchone()
cur.close()
del_ip = user_info[0]
device = user_info[1]
cur = mysql_db.db.cursor()
sql = "SELECT login_device, password_device, ip_device FROM devices WHERE id = '%s'" % (device)
cur.execute(sql)
dev_info = cur.fetchone()
cur.close()
login_device = dev_info[0]
password_device = dev_info[1]
ip_device = dev_info[2]
del_user_mikrotik.del_user_mikrotik(del_ip, login_device, password_device, ip_device)
cur = mysql_db.db.cursor()
sql = "DELETE FROM users WHERE id = '%s'" % (id_user)
cur.execute(sql)
cur.close()
print "\033[31m| Пользователь удален |\033[0m"
time.sleep(1)
return()
else:
print "\033[31m| Пользователь не удален |\033[0m"
time.sleep(1)
return()
f_del_user(4)
Разбираем скрипт.
Импортируем модули:
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db, time, del_user_mikrotik
Создаем функцию f_del_user, которая будет принимать параметр id_user:
def f_del_user(id_user):
Выводим сообщение для администратора (Вы уверенны что хотите удалить пользователя? y/n:):
if raw_input("Вы уверенны что хотите удалить пользователя? y/n: ")=="y":
Если администратор выбрал y: извлекаем из базы данные об IP-адресе пользователя и ID устройства Mikrotik Routerboard, к которому он подключен.
cur = mysql_db.db.cursor()
sql = "SELECT ip_user, device FROM users WHERE id = '%s'" % (id_user)
cur.execute(sql)
user_info = cur.fetchone()
cur.close()
del_ip = user_info[0] — создаем переменную del_ip и заносим в нее значение IP-адреса пользователя.
device = user_info[1] — создаем переменную device и заносим в нее ID устройства Mikrotik Routerboard.
Извлекаем данные об устройстве, с ID равным переменной device:
cur = mysql_db.db.cursor()
sql = "SELECT login_device, password_device, ip_device FROM devices WHERE id = '%s'" % (device)
cur.execute(sql)
dev_info = cur.fetchone()
cur.close()
login_device = dev_info[0] — в переменную login_device вводим данные о логине администратора Mikrotik Routerboard.
password_device = dev_info[1] — в переменную password_device вводим информацию о пароле администратора Mikrotik Routerboard.
ip_device = dev_info[2] — в переменную ip_device вводим информацию об IP-адресе Mikrotik Routerboard.
Вызываем функцию для удаления клиента с устройства Mikrotik Routerboard и передаем в нее необходимые аргументы для удаления клиента:
del_user_mikrotik.del_user_mikrotik(del_ip, login_device, password_device, ip_device)
Удаляем пользователя из базы данных:
cur = mysql_db.db.cursor()
sql = "DELETE FROM users WHERE id = '%s'" % (id_user)
cur.execute(sql)
cur.close()
Выводим сообщение "пользователь удален":
print "\033[31m| Пользователь удален |\033[0m"
time.sleep(1)
return()
Если администратор не подтвердил удаление, выводим сообщение "пользователь не удален":
else:
print "\033[31m| Пользователь не удален |\033[0m"
time.sleep(1)
return()
f_del_user(4) — вызов функции.
Евгений Рудченко специально для ASP24.
