myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Rund um die Programmierung » Machbarkeit? Mit SSH Linux verbinden, Kommando eingeben und Ausgabe auslesen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Machbarkeit? Mit SSH Linux verbinden, Kommando eingeben und Ausgabe auslesen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Rico913
myCSharp.de-Mitglied

Dabei seit: 29.04.2020
Beiträge: 38


Rico913 ist offline

Machbarkeit? Mit SSH Linux verbinden, Kommando eingeben und Ausgabe auslesen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi,

da ich relativ neu in der C#-Programmierung bin, habe ich eine Frage der Machbarkeit?

Ist es überhaupt möglich,
1. eine SSH Verbindung zu einem Linuxsystem aufzubauen (Hab ich schon gegoogelt -> geht)
2. ein Kommando zu geben (gegoogelt -> geht wohl auch)
3. die Ausgabe auszulesen und im Form anzuzeigen -> ???

Zum Hintergrund:
Wir haben auf einem Linuxsystem ein Tool laufen. Um dieses zu benutzen, verbinden wir uns über Putty mit dem entsprechenden Server. Auf diesem müssen wir einen Key generieren (Zwei-Faktor-Authentisierung). Diesen Key erhalten wir über das Kommando - get_verification_code.
Anschließend wird der Code ausgegeben.
17.05.2020 22:27 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.817
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Fragen wie "Geht das?" können immer mit Ja beantwortet werden - es ist immer nur eine Frage des Aufwands, des Wissens und der Zeit.
Daher sind solche Fragen meist nicht wirklich hilfreich ;-)

Was Du hier für einen Fall hast nennt man einfach  Client-Server-Modell - ein Prinzip, das es seit weit über 50 Jahren gibt.
17.05.2020 23:06 Beiträge des Benutzers | zu Buddylist hinzufügen
BerndFfm BerndFfm ist männlich
myCSharp.de-Team

avatar-3299.jpg


Dabei seit: 20.01.2006
Beiträge: 3.587
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Frankfurt a.M.


BerndFfm ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ja ! Geht sogar sehr gut !

Ich starte auf einem Web-Shop das Backup und kopiere die Sicherungsdatei dann zu mir.

Auf dem NAS starte ich Sync und Updates.

Die Ausgabe zeige ich ständig an z.B. Prozentangabe und schreibe sie dann in ein Log File.

C#-Code:
using Renci.SshNet;

mel2 += "\r\nScrub :\r\n";
mel2 += sys.Now().ToQuasarDateTimeString() + "\r\n";
mel2 += "100%" + RunShellScript("snapraid -o 0 scrub").StringAfter("100%") + "\r\n";
File.AppendAllText(@"f:\Quasar3\Logs\NAS_Log_" + sys.Today().ToQuasarDateStringWithoutDotsYearFirst() + ".txt", mel2);

public string RunShellScript(string script)    // Seven-C NAS
{
    string mel = "";
    string host = "Seven-C-NAS";
    string username = "xxx";
    string password = "yyy";
    ShowBusyStatus("Starte Shell Kommando auf " + host + "\r\n" + script);
    using (var client = new SshClient(host, username, password))
    {
        client.Connect();
        SshCommand cmd = client.CreateCommand(script);
        IAsyncResult asynch = cmd.BeginExecute();
        StreamReader reader = new StreamReader(cmd.OutputStream);
        while (!asynch.IsCompleted)
        {
            string result = reader.ReadToEnd();
            if (string.IsNullOrEmpty(result)) continue;
            mel += result.Replace("\n", "\r\n");
                    ShowBusyStatus(result);
        }
    cmd.EndExecute(asynch);
    client.Disconnect();
    }
    return mel;
}

Grüße Bernd
18.05.2020 11:02 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 27.05.2020 17:33