Помогите со сниппетом перезагрузки сервера

  • Автор темы Автор темы backoff
  • Дата начала Дата начала
Блин, я бы помог если б знал...

Были материалы по поднятию проксей, можно от туда выдернуть ту часть что по SSH шлет команды.
 
Были материалы по поднятию проксей, можно от туда выдернуть ту часть что по SSH шлет команды.
да пытался, но чето там так нагорожено, не получилось с синтаксисом
 
Просили в личку, оставлю для потомков. Вот код, но в шабе там еще доп. библиотеки прописаны, айпи и пароли на свои поменять надо:
C#:
Развернуть Свернуть Копировать
project.Variables["ip"].Value = "93.235.172.23";
project.Variables["user_SSH"].Value = "root";
project.Variables["password_SSH"].Value = @"3blajkd_dCK";

string ip = project.Variables["ip"].Value;
string user = project.Variables["user_SSH"].Value;
string pass = project.Variables["password_SSH"].Value;

SshClient sshClient = new SshClient(ip, 22, user, pass);

        sshClient.Connect();   
        
            IDictionary<Renci.SshNet.Common.TerminalModes, uint> termkvp = new Dictionary<Renci.SshNet.Common.TerminalModes, uint>();
            termkvp.Add(Renci.SshNet.Common.TerminalModes.ECHO, 53);
            ShellStream shellStream = sshClient.CreateShellStream("xterm", 80,24, 800, 600, 1024, termkvp);
            System.Threading.Thread.Sleep(1000 * 1);
            shellStream.WriteLine("reboot");
            System.Threading.Thread.Sleep(1000 * 1);
            StreamReader reader = new StreamReader(shellStream);
            string out1 = reader.ReadToEnd();
            
            sshClient.Disconnect();
        
            return out1;
урлы по теме:
 

Вложения

Вот код, но в шабе там еще доп. библиотеки прописаны, айпи и пароли на свои поменять надо:
вот такое выдает

C#:
Развернуть Свернуть Копировать
Тип    Время    Сообщение
    15:41:28    Выполнение действия CSharp OwnCode. [Строка: 24; Cтолбец: 0] Не удалось загрузить файл или сборку "Renci.SshNet, Version=2014.4.6.0, Culture=neutral, PublicKeyToken=1cee9f8bde3db106" либо одну из их зависимостей. Найденное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

либу качал из ссылки твоей


Где может пригодиться?
это перезагружает сервер, пригодится может для перезагрузки сервака :)
 
У меня код отрабатывает успешно, но перезагрузка не происходит.
Может пользователь от которого происходит авторизация нужно добавить какие-то права? Кто может подсказать?
 
  • Спасибо
Реакции: KolkaPetkinSyn
  • Спасибо
Реакции: KolkaPetkinSyn
Ну а если руками команду ввести, ребутнет?
 
Я его победил
C#:
Развернуть Свернуть Копировать
string ip = project.Variables["ip"].Value;
string user = project.Variables["user_SSH"].Value;
string pass = project.Variables["password_SSH"].Value;

SshClient sshClient = new SshClient(ip, 22, user, pass);

        sshClient.Connect();   
        
            IDictionary<Renci.SshNet.Common.TerminalModes, uint> termkvp = new Dictionary<Renci.SshNet.Common.TerminalModes, uint>();
            termkvp.Add(Renci.SshNet.Common.TerminalModes.ECHO, 53);
            ShellStream shellStream = sshClient.CreateShellStream("xterm", 80,24, 800, 600, 1024, termkvp);
            System.Threading.Thread.Sleep(1000 * 1);
            shellStream.WriteLine("sudo reboot");
            System.Threading.Thread.Sleep(1000 * 1);
            shellStream.WriteLine(pass);//Добавил строку подтверждения пароля
            System.Threading.Thread.Sleep(1000 * 1);
            StreamReader reader = new StreamReader(shellStream);
            string out1 = reader.ReadToEnd();
            
            sshClient.Disconnect();
        
            return out1;
 
Скорее всего у меня у пользователя нет root прав изначально. Поэтому нужно подтверждать подобные команды паролем
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)