Массовое добавление/удаление доменов в ISPManager 5

Тема в разделе "Софт / Скрипты", создана пользователем Black Insider, 24.02.16.

  1. Insider

    Insider Администратор Команда форума

    Сообщения:
    1.025
    Симпатии:
    685
    Баллы:
    209
    Поделитесь, пожалуйста, каким-нибудь скриптом/софтом для пакетного добавления/удаления доменов из ISPManger 5.

    Раньше использовал плагин пандоры, но с последними версиями панели не работает.
     
  2. bro

    bro Участник

    Сообщения:
    228
    Симпатии:
    89
    Баллы:
    36
    Сейчас ispmanager под рукой нет, проверить не на чем.
    Только умоляю, не костыль зеннопостером - там же api есть, в 4 ветке добавлял однострочным скриптом на bash.

    http://novall.net/hosting/komandy-dlya-raboty-s-api-paneli-upravleniya-ispmanager-5.html
    На баше будет например так:
    Код:
    for i in $(cat domains.txt) ; do /usr/local/mgr5/sbin/mgrctl -m ispmgr webdomain.edit elid=$i owner=username docroot=/var/www/$i php_mode=php_mode_mod php_version=5.4 active=on analyzer=off ipaddr=127.0.0.1 ; done
    Большинство параметров наверняка необязательны, их можно не указывать. Это просто пример.
     
    Black Insider нравится это.
  3. Фломастер

    Фломастер Новичок

    Сообщения:
    132
    Симпатии:
    10
    Баллы:
    24
    с последней это с какой? с пятой работает же
     
  4. Insider

    Insider Администратор Команда форума

    Сообщения:
    1.025
    Симпатии:
    685
    Баллы:
    209
    ISPmanager Lite 5.51.0

    На двух серверах стоит и ни на один пандора не добавляет. Топпер сказал, что у него такой версии нет и проверить не может. В любом случае удалять он все равно домены не мог.
     
  5. bro

    bro Участник

    Сообщения:
    228
    Симпатии:
    89
    Баллы:
    36
    @Black Insider мой вариант чем-то не подходит?
     
  6. Insider

    Insider Администратор Команда форума

    Сообщения:
    1.025
    Симпатии:
    685
    Баллы:
    209
    Не заметил. Спасибо.
     
  7. bro

    bro Участник

    Сообщения:
    228
    Симпатии:
    89
    Баллы:
    36
    Удаление:
    Код:
    for i in $(cat domains.txt); do /usr/local/mgr5/sbin/mgrctl -m ispmgr webdomain.delete elid=$i ; done
    Перенос строк в файле domains.txt должен быть \n (unix lf), а не \r\n (windows clrf).
     
    Black Insider нравится это.
  8. Insider

    Insider Администратор Команда форума

    Сообщения:
    1.025
    Симпатии:
    685
    Баллы:
    209
    Спасибо. То что нужно.
     
  9. Mary Huana

    Mary Huana Участник

    Сообщения:
    80
    Симпатии:
    59
    Баллы:
    25
    Код:
    <?php
      $isp_url = "https://127.0.0.0:1500/ispmgr";
      $isp_login = "root";
      $isp_pass = "";
      $domain_owner = "user";
      $domain_ip = "";
      /*
      * у каждого домена свои ип в фаил пишем site.ru;127.0.0.0
      * в противном случаи заполняем $domain_ip = "";
      */
      $domain_array = file("domains.txt");
    
      if($isp_pass == "") {
      print "Please enter the ISP password for $isp_login: ";
      $isp_pass = trim(fgets(STDIN));
      if($isp_pass == "") die("Password is empty\r\n");
      }
    
      $ch = curl_init();
      curl_setopt_array($ch, array(CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_SSL_VERIFYPEER => false));
    
      foreach($domain_array as $domains){
    
      if(empty($domain_ip)) {
      list($domain, $domain_ip) = explode(';', $domains);
      $domain = trim($domain);
      $domain_ip = trim($domain_ip);
      }else{
      $domain = trim($domain);
      }
    
      $params['out'] = 'json';
      $params['func'] = 'webdomain.edit';
      $params['sok'] = 'yes';
      $params['name'] = $domain;
      $params['aliases'] = (strpos($domain, 'www.') === 0 ? substr($domain, 4) : 'www.' . $domain);
      $params['owner'] = $domain_owner;
      $params['php'] = 'on';
      $params['php_enable'] = 'on';
      $params['php_mode'] = 'php_mode_cgi';
      $params['cgi'] = (strpos($php, 'cgi') !== null ? 'on' : 'off');
      $params['ipaddrs'] = $domain_ip;
      $params['ipsrc'] = ($domain_ip == '') ? 'auto' : 'manual';
      $params['email'] = 'webmaster@' . $domain;
    
      $url = $isp_url . '?authinfo=' . urlencode($isp_login) . ':' . urlencode($isp_pass) . '&' . http_build_query($params);
      curl_setopt($ch, CURLOPT_URL, $url);
    
      $response = (array)json_decode(curl_exec($ch), true);
      $error = $response['doc']['error'];
    
      if(!empty($error)){
      $result = 'ERROR: '.$error['msg']['$'];
      echo $msg;
      }else{
      $result = 'OK';
      }
    
      echo "$domain\t$result\r\n";
      }
    curl_close($ch);
    ?>
    
     
    noreff и Black Insider нравится это.
  10. AZANIR

    AZANIR Участник

    Сообщения:
    103
    Симпатии:
    27
    Баллы:
    30
    зайдите в "расширения" и установите плагин "Mass WWW domain create using template directory." будет кнопка которая делает то что вам нужно.
    ------------------- Добавлено 18.03.16 -------------------
    или на худой конец пользуйте вот софт, хотя в пандоре уже все сделанно.
    https://dropmefiles.com/K7i4R

    [​IMG]
     
    noreff нравится это.
  11. armor

    armor Участник

    Сообщения:
    87
    Симпатии:
    50
    Баллы:
    31
    скрипт добавляет только первый домен из списка =\
     
    Mary Huana нравится это.
  12. Mary Huana

    Mary Huana Участник

    Сообщения:
    80
    Симпатии:
    59
    Баллы:
    25
    тупанул, ща все гуд
    Код:
    <?php
      $isp_url = "https://127.00.0.0:1500/ispmgr";
      $isp_login = "root";
      $isp_pass = "";
      $domain_owner = "vasay";
      $domain_ip = "";
      /*
      * у каждого домена свои ип в фаил пишем site.ru;127.0.0.0
      * в противном случаи заполняем $domain_ip = "";
      */
      $domain_array = file("domains.txt");
    
      $ch = curl_init();
      curl_setopt_array($ch, array(CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_SSL_VERIFYPEER => false));
    
      foreach($domain_array as $domains){
    
      if(empty($domain_ip)) {
      list($domain, $ip) = explode(';', $domains);
      $domain = trim($domain);
      $ip = trim($ip);
      }else{
      $domain = trim($domains);
      $ip = trim($domain_ip);
      }
    
      $params['out'] = 'json';
      $params['func'] = 'webdomain.edit';
      $params['sok'] = 'yes';
      $params['name'] = $domain;
      $params['aliases'] = (strpos($domain, 'www.') === 0 ? substr($domain, 4) : 'www.' . $domain);
      $params['owner'] = $domain_owner;
      $params['php'] = 'on';
      $params['php_enable'] = 'on';
      $params['php_mode'] = 'php_mode_mod';
      //$params['cgi'] = (strpos($php, 'cgi') !== null ? 'on' : 'off');
      $params['ipaddrs'] = $ip;
      $params['ipsrc'] = ($ip == '') ? 'auto' : 'manual';
      $params['email'] = 'webmaster@' . $domain;
    
      $url = $isp_url . '?authinfo=' . urlencode($isp_login) . ':' . urlencode($isp_pass) . '&' . http_build_query($params);
      curl_setopt($ch, CURLOPT_URL, $url);
    
      $response = (array)json_decode(curl_exec($ch), true);
      $error = $response['doc']['error'];
    
      if(!empty($error)){
      $result = 'ERROR: '.$error['msg']['$'];
      }else{
      $result = 'OK';
      }
    
      echo "$domain\t$result\r\n";
      }
    curl_close($ch);
    ?>
    
     
    armor нравится это.

Поделиться этой страницей