ICON meine ersten Probleme

  • Hallo,
    da dachte ich, versuch mal mit icon ein altes Problem von mir zu lösen, nämlich SCP mit Parameterübergabe.


    Wie muss ich die Parameter korrekt in diesem Aufruf übergeben?

    Egal, ich gebe ja nie auf und habe immer auch einen Plan B. Siehe hier, ich erzeuge einfach ein shell script.

    Code
    zeile1 :="#!/bin/bash"
    zeile2 := "scp " || waszusenden || " " || adresse1
    zeile3 := "exit 0"
    fh:=open("s1.sh","w")
    write ( fh,zeile1)
    write ( fh,zeile2)
    write ( fh,zeile3)
    close (fh)
    system("./s1.sh")

    Und somit is mein Problem gelöst, SCP mit Parameterübergabe.
    ./mscp 1 hallo.icn

    Habe ich gedacht, aber dann das:

    Nichts ist einfach im Leben:-)

    Nachtrag, das hier ist mein Ubuntu-Rechner, auf Raspberry klappt das alles gut.


    VM

    Einmal editiert, zuletzt von villamarinella (31. März 2016 um 08:06)

  • Hallo Villamarinella,

    probier mal so:

    Code
    system("scp " || waszusenden || " " || adresse1")

    || ist der Verkettungsoperator für Zeichenketten und verknüpft kleinere Zeichenketten zu einer großen. Damit der Inhalt der Variablen [font="Courier New"]waszusenden[/font] und [font="Courier New"]adresse1[/font] nicht als eine Zeichenkette sondern als getrennte Informationen übergeben werden, wird noch ein Leerzeichen dazwischen gesetzt.

    Zum Skript s1.sh: Dieses müsstest Du noch ausführbar machen...

    Code
    system("chmod +x s1.sh")


    bevor Du es aufrufst.

    Aber das sollte wirklich nur Plan B sein, da sowas auch ohne externes Skript geht.

    Wenn Du beim Aufruf den Pfad auf die zu übertragende Datei angibst (= Fehler in Deinem Aufruf), dann funktioniert das Icon-Programm:

    Test mit scp:
    [font="Courier New"]andreas@andreas-N73SV:~$ scp /home/andreas/icon9_51/bin/optest.icn pi@192.168.2.100:/home/pi
    pi@192.168.2.100's password:
    optest.icn 100% 140 0.1KB/s 00:00
    andreas@andreas-N73SV:~$[/font]
    ==> Funktioniert.

    Test mit Icon-Programm:
    Und hier die Ausgabe
    [font="Courier New"]andreas@andreas-N73SV:~/icon9_51/bin$ optest /home/andreas/icon9_51/bin/optest.icn pi@192.168.2.100:/home/pi
    pi@192.168.2.100's password:
    optest.icn 100% 164 0.2KB/s 00:00
    andreas@andreas-N73SV:~/icon9_51/bin$ [/font]
    ==> Funktioniert ebenso...

    zum Programm

    Code
    procedure main(param)
    # write("Kommando: scp ", param[1], " ", param[2])
       system("scp " || param[1] || " " || param[2])
    end

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (31. März 2016 um 12:29)

  • Vielen Dank noch einmal, besonders dafür mich auf diese Icon Idee zu bringen.

    Alles läuft prima, hier mein zweites Baby, HTML Dateien mit aktuellen Daten versorgen, bezogen auf meine anderes Posting zur Programmüberwachung. Wenn ich also schon die Meldung abrufen kann wie lange motion nun schon läuft, warum dann das nicht auf der Webseite anzeigen.
    Ist zwar auch Krücke, aber ich liebe Krücken.

    Eines noch dazu, das Programm erwartet die Datei iconx im ausführenden Verzeichnis. Ist nicht der Raspi auf dem icon installiert ist. Habs hinkopiert, läuft.

    VM

  • ich muss noch einmal auf das o. g. folgende Problem zurück kommen:


    Ich kann mit diesem Befehl Daten an jeden Raspi schicken, aber nicht an den raspi auf dem icon installiert ist.
    Da kann ich im Moment garnix hinschicken. Und das ist übel:-)

    Ausserdem wüsste ich noch gerne wie ich das Programm verlassen kann ohne das main betreten wird.
    VM

    Einmal editiert, zuletzt von villamarinella (1. April 2016 um 23:40)

  • Hallo Villamarinella,


    Ich kann mit diesem Befehl Daten an jeden Raspi schicken, aber nicht an den raspi auf dem icon installiert ist.
    Da kann ich im Moment garnix hinschicken. Und das ist übel:-)

    VM

    dazu habe ich ein paar Fragen / Gedanken:
    1. Kannst Du von dem RPi, auf dem Icon installiert ist, mit Deinem Icon-Programm an jeden anderen Rechner Dateien senden (mit [font="Courier New"]scp[/font] oder Deinem selbstgeschriebenem Programm)?
    2. Bist Du in dem Fall user [font="Courier New"]pi[/font] oder user [font="Courier New"]root[/font]?
    3. Da auf jedem meiner Rechner Icon installiert ist und der oben gepostete Dreizeiler von mir in alle Richtungen funktioniert, kann ich Deine Beobachtungen leider nicht nachvollziehen. Andererseits arbeite ich nicht als user [font="Courier New"]root[/font] sondern als der User, auf dessen Account Icon installiert wurde.
    4. Ein [font="Courier New"]ping[/font] auf den RPi mit installiertem Icon funktioniert aber?
    5. Wenn Du mit [font="Courier New"]scp[/font] kopierst, dann ist es vollkommen egal, ob auf dem Sender Icon installiert ist oder nicht...

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Also, mein Programm funktioniert dank Deiner Hile einwandfrei.
    Habe es also auf jeden Rechner, wie auch immer, transportiert.
    Auf den icon mittels nano alles erzeugt, auf die anderen vom icon aus kopiert.
    Das Programm arbeitet mit jedem user ( auf ubuntu bin ich kl ).
    Ich schreibe das übrigens auf Ubuntu und compiliere es dann nur noch auf dem raspi für andere raspis.

    Von dem icon Rechner kann ich überall hin kopieren.

    Ich komme auch als pi oder als root jederzeit auf diesen Rechner.

    OK, ich habe icon als user root ins pi verzeichnis nach Deinen Angaben installiert. Was zur Folge hat das ich als pi nicht im icon Verzeichnis eine Datei anlegen kann. Meine raspis sind nun mal ALLE root!
    Aber soweit kann ich ja alles machen.

    Ich kann von keinem anderen raspi auf den icon mit scp.

    Eines noch am Rande, der Parameter myscp.* erzeugt einen Fehler, es muss "myscp.*" sein.

    Hier mal ein Teilauszug vom debug scp.
    Die Schlüssel sind ausgetauscht und akzeptiert worden eigentlich ist alles ok, nur dann bricht es wohl ab.

    Klaus
    AAAAAAAAAAAAAAAAAAAhHHHHHHHHHHHHHHHHh
    warte mal, ich ahne was., ich muss nur lesen lernen!!!!!!!!!!!!!

    Ich habe die Rechte im icon Verzeichnsi von root auf pi ändern müssen.

    Und alles ist "FAST" ok.

    ich kann nur nichts mehr an den user root schicken................

    Nur noch an pi

    Naja, immerhin kann ich was schicken, das reicht ja auch erst einmal.

    VM

    Einmal editiert, zuletzt von villamarinella (2. April 2016 um 00:18)

  • Hallo Villamarinella,

    einen Verdacht habe ich. Hast Du die Datei

    Code
    .bashrc


    an root angepasst?

    Dort sollte ja etwas stehen wie:


    Ursprünglich hatte ich die Installation ja auf X = /home/pi festgelegt. Wenn Du dies nicht geändert hast, erklärt dies einige der von Dir beschriebenen Phänomene.

    Was ist denn die Ausgabe von

    Code
    echo $PATH
    echo $LPATH


    Wenn Du hier einen Mix von /home/pi und /root (so lautet wohl das Home-Verzeichnis von root) hast, dann folgen hieraus auch einige Probleme, da zu.B. auch Ausführrechte entscheidend sind. Wer ist der Eigentümer des erzeugten Programms, wer hat Ausführrechte etc.?

    Was ist die Ausgabe von

    Code
    ls -al /Pfad/zu/Deinem/in_Icon_geschriebenem_myscp

    Und was ist die Ausgabe von

    Code
    pwd

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hier die Daten:

    Das reicht für heute, ich hab alles im Griff.
    Nur noch ein Tip bitte, wie komme ich aus dem Programm raus,

    Ohne Parameter kommt zwar eine entsprechend Meldung, dann geht das Programm aber weiter und crasht.

    VM
    Automatisch zusammengefügt:
    Vergessen wir das Ganze.

    Ich habe alle Pfadangaben entfernt und alles ist wieder ok.

    Ich denke auch nicht das ich die für das wenige was ich mache benötige.

    VM

    Einmal editiert, zuletzt von villamarinella (2. April 2016 um 01:43)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!