Jump to content

импорт пользователей


Recommended Posts

требуемая задача: импортировать 300-400 пользователей, например из CSV-файла.

в файле по колонкам будут разбиты: ФИО, группа, адресс, IP, логин, пароль, тариф (порядок можно изменить).

кто что-то может подсказать по этому поводу?

Link to post
Share on other sites

требуемая задача: импортировать 300-400 пользователей, например из CSV-файла.

в файле по колонкам будут разбиты: ФИО, группа, адресс, IP, логин, пароль, тариф (порядок можно изменить).

кто что-то может подсказать по этому поводу?

Берем любимый язык программирования, разбираем CSV-файл.

Потом в цикле по пользователям делаем add_user (XML-RPC или sgconf_xml) за которым следует set_user (XML-RPC или sgconf_xml).

Если же пользоваться sgconf то это будет -n а потом изменение каждого поля отдельно.

При известной сноровке это можно реализовать даже на bash.

Link to post
Share on other sites

Напишу в этой же теме, хоть немного и не по импорту, но все же ... или в баги перенести.

Если запустить из Баша в цикле изменения многих пользователей - СТГ виснет. Вернее не отвечает на вопросы виндового конфигуратора, но при этом авторизаторы соединяются и остальное работает.

Скрипт простой - переводим мак-адреса из верхнего регистра в нижний и запускаем

/usr/sbin/sgconf set -s 192.168.x.x -p 9999 -a adminuser -w adminpass -u $login1 --ud0 $MAC

Так вот - если один раз супер. А если в цикле - после 5-6 прохода - глухо до перезапуска стг.

Link to post
Share on other sites

Если сами не можете и это нужно сделать один раз, то будет проще написать - кто может это сделать за небольшую плату. И вы не будете себе голову забивать лишней информацией и убивать несколько дней на изучение основ программирования и кто-то сможет Вам помочь и немного заработать. Я именно так и делаю - привлекаю людей, которые разбираются в чем-то лучше, чем я. И у меня работа не стоит из-за простоя и реализация намного лучше, чем сделал бы я. А дальше просто сопровождаю сам, так как было сделано как я хотел.

Link to post
Share on other sites

Напишу в этой же теме, хоть немного и не по импорту, но все же ... или в баги перенести.

Если запустить из Баша в цикле изменения многих пользователей - СТГ виснет. Вернее не отвечает на вопросы виндового конфигуратора, но при этом авторизаторы соединяются и остальное работает.

Скрипт простой - переводим мак-адреса из верхнего регистра в нижний и запускаем

/usr/sbin/sgconf set -s 192.168.x.x -p 9999 -a adminuser -w adminpass -u $login1 --ud0 $MAC

Так вот - если один раз супер. А если в цикле - после 5-6 прохода - глухо до перезапуска стг.

делай небольшую паузу после выполнения одной операции - виснуть не будет, проверено

Link to post
Share on other sites

Давайте называть вещи своими именами. Если нет любимого языка программирования то нужен не кусок кода а готовая работающая утилита. Так?

Link to post
Share on other sites

Напишу в этой же теме, хоть немного и не по импорту, но все же ... или в баги перенести.

Если запустить из Баша в цикле изменения многих пользователей - СТГ виснет. Вернее не отвечает на вопросы виндового конфигуратора, но при этом авторизаторы соединяются и остальное работает.

Скрипт простой - переводим мак-адреса из верхнего регистра в нижний и запускаем

/usr/sbin/sgconf set -s 192.168.x.x -p 9999 -a adminuser -w adminpass -u $login1 --ud0 $MAC

Так вот - если один раз супер. А если в цикле - после 5-6 прохода - глухо до перезапуска стг.

Да, есть такая бага в плагине конфигуратора. Сам пару раз наблюдал. Все руки не доходят исправить :)

Link to post
Share on other sites

С паузой как раз и приходится костыли забивать. Я когда-то уже писал про отправку сообщений через КК, тоже, если отправлять несколько - приходит только последнее. А с паузой приходят все.

Хотелось бы пример кусок кода любой операции через XML-RPC - остальные подгоню уже по надобности.

Например изменении любого поля.

Буду благодарен.

Link to post
Share on other sites

С паузой как раз и приходится костыли забивать. Я когда-то уже писал про отправку сообщений через КК, тоже, если отправлять несколько - приходит только последнее. А с паузой приходят все.

Хотелось бы пример кусок кода любой операции через XML-RPC - остальные подгоню уже по надобности.

Например изменении любого поля.

Буду благодарен.

В последних двух сборках есть каталог doc в котором есть файлик xmlrpc.php с примерами взаимодействия на PHP.

Link to post
Share on other sites

Давайте называть вещи своими именами. Если нет любимого языка программирования то нужен не кусок кода а готовая работающая утилита. Так?

можно в принципе и так сказать. был бы рад любой конкретной помощи.

Link to post
Share on other sites

Обережно, не тестив(!), але суть повинна бути ясна))

 

 

<?php

$file = file('file.csv');
$sg = "/usr/sbin/sgconf";
$sg_xml = "/usr/sbin/sgconf_xml";
$login = "admin";
$pass = "password";
$port = "2222";
$host = "localhost";

function encode12($src) {
   $len = strlen($src);
   $ofs = ord('a');
   $dst = "";
   for ($i = 0; $i <= $len; $i++) {
       $c1 = (ord($src [$i]) & 15) + $ofs;
       $c2 = (ord($src [$i]) >> 4) + $ofs;
       $dst .= chr($c1) . chr($c2);
   }
   return $dst;
}

foreach ($file as $val) {

   $ar = explode(';', $val);


   ////////////sgconf
   $cmd = $sg . ' set -s ' . $host . ' -p ' . $port . ' -a ' . $login . ' -w ' . $pass . ' -u ' . $ar[4];

   shell_exec($cmd . ' -n ');
   shell_exec($cmd . ' -A ' . $ar[0]);
   shell_exec($cmd . ' -G ' . $ar[1]);
   shell_exec($cmd . ' -D ' . $ar[2]);
   shell_exec($cmd . ' -I ' . $ar[3]);
   shell_exec($cmd . ' -o ' . $ar[5]);
   shell_exec($cmd . ' -t ' . $ar[6] . ':now');

////////////sgconf_xml
   /*
     $cmd2 = $sg_xml . '  -s ' . $host . ' -p ' . $port . ' -a ' . $login . ' -w ' . $pass . ' -r ';

     shell_exec($cmd2 . '  <AddUser> <login value="' . $arr[4] . '"/></AddUser>');
     shell_exec($cmd2 . '  <SetUser>
     <login value="' . $arr[4] . '"/>
     <name value="' . encode12($arr[0]) . '" />
     <group value="' . encode12($arr[1]) . '" />
     <address value="' . encode12($arr[2]) . '" />
     <ip value="' . $arr[3] . '" />
     <password value="' . $arr[5] . '" />
     <tariff now="' . $arr[6] . '" />
     </SetUser>');

    */
}
?>

 

Можна ще й xmlrpc прив'язати, в xmlrpc.php є приклад.

 

P.S. замініть делімітер на такий як у файлі csv

Link to post
Share on other sites
  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...