Меню
Контакты
107023, Москва, пл. Журавлёва, 10с3, подъезд 31, офис 309
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Интернет-магазин
сетевого оборудования
Москва +7 (495) 103-41-03 +7 (915) 420-28-94
107023, Москва, пл. Журавлёва, 10с3, подъезд 31, офис 309
Пн-Пт: с 9-00 до 17-00   Сб-вс: выходной
Заказать звонок

Как удалить клиентов с устройства Mikrotik Routerboard?

 23 Дек 2011    MikroTik, Scripts

Удаление клиентов с устройства 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.