четверг, 5 февраля 2015 г.

SSH из 1С8

Источник: http://www.forum.mista.ru/topic.php?id=661180



Специально для мастер хоста. 
функция ПодключитьSSH() экспорт
    ПутьPytty=ПолучитьИмяВременногоФайла("exe");
    ПутьФайлу=Новый Файл (ПутьPytty);
    макет=ПолучитьОбщийМакет("putty");
    макет.Записать(ПутьPytty);
    Если  ПутьФайлу.Существует() Тогда
        ИмяСкрипта=ПолучитьИмяВременногоФайла("vbs");
        Скрипт = Новый ЗаписьТекста(ИмяСкрипта, КодировкаТекста.ANSI);  
        СтрокаВыполнения="  
        | File = """+ПутьPytty+"""
        |";
        СтрокаВыполнения=СтрокаВыполнения+" 
        | Set ws = Wscript.CreateObject(""Wscript.Shell"")
        | CommandString = """""""" &File& """""" -ssh -l uххххххх -pw пароль -L 3306:хххххх.mysql.masterhost.ru:3306 u333431.ssh.masterhost.ru ""  
        | 'MsgBox (CommandString)
        |  Return = ws.Run(CommandString, 1, TRUE) 
        |
        |";
        //
 
        Скрипт.Записать(СтрокаВыполнения);
        //
 
        Скрипт.Закрыть();
        
        cmdLine="wscript.exe "+ИмяСкрипта;
        
        WshShell = Новый COMОбъект("WScript.Shell");
        Попытка
            WshShell.Run(cmdLine, 0, "False");
        исключение
        КонецПопытки;
        Общий.ПаузаВыполения(5);
        попытка
            УдалитьФайлы(ИмяСкрипта);
        исключение
        КонецПопытки;

    иначе
        Сообщить("Программма putty не найдена");
        
    КонецЕсли;
    возврат ПутьФайлу;
КонецФункции    

функция ОтключитьSSH(ПутьКФайлу) экспорт
    ИмяСкрипта=ПолучитьИмяВременногоФайла("vbs");
    Скрипт = Новый ЗаписьТекста(ИмяСкрипта, КодировкаТекста.ANSI);  
    СтрокаВыполнения="  
    | File = """+ПутьКФайлу.Имя+"""
    |";
    СтрокаВыполнения=СтрокаВыполнения+" 
    | Set ws = Wscript.CreateObject(""Wscript.Shell"")
    | CommandString = ""taskkill /F /IM """""" &File& """"""""  
    | 'MsgBox (CommandString)
    |  Return = ws.Run(CommandString, 1, TRUE) 
    |
    |";
    //
 
    Скрипт.Записать(СтрокаВыполнения);
    //
 
    Скрипт.Закрыть();
    
    cmdLine="wscript.exe "+ИмяСкрипта;
    
    WshShell = Новый COMОбъект("WScript.Shell");
    Попытка
        WshShell.Run(cmdLine, 0, "False");
    исключение
    КонецПопытки;
    Общий.ПаузаВыполения(3);
    попытка
        УдалитьФайлы(ПутьКФайлу.ПолноеИмя);
        УдалитьФайлы(ИмяСкрипта);

    исключение
    КонецПопытки;
КонецФункции

Комментариев нет:

Отправить комментарий