[ERLEDIGT] QNAP NAS herunterfahren/standby

Begonnen von Breaked, 14 Juni 2016, 22:03:53

Vorheriges Thema - Nächstes Thema

Breaked

Das aktuelle Skript sieht so aus

#!/bin/bash
username="$1"
hostname="$2"
ssh "$username"@"$hostname" "/bin/echo mem > /sys/power/state 2>/dev/null"
DATE=$(date +%Y.%m.%d)
TIME=$(date +%T)
echo $DATE $TIME "3: QNAP TVS-463 in den Ruhemodus versetzen"
exit 0


Hab das \ wieder raus genommen.

Habe dann nochmal per Konsole ausgeführt, mit diesem Ergebnis

fhem@raspberrypi:~/FHEM$ bash qnap.sh
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
           [-D [bind_address:]port] [-e escape_char] [-F configfile]
           [-I pkcs11] [-i identity_file]
           [-L [bind_address:]port:host:hostport]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-R [bind_address:]port:host:hostport] [-S ctl_path]
           [-W host:port] [-w local_tun[:remote_tun]]
           [user@]hostname [command]
2016.06.17 20:22:01 3: QNAP TVS-463 in den Ruhemodus versetzen
fhem@raspberrypi:~/FHEM$
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux


#!/bin/bash
username="$1"
hostname="$2"
ssh "$username"@"$hostname" "/bin/echo mem > /sys/power/state 2>/dev/null"
DATE=$(date +%Y.%m.%d)
TIME=$(date +%T)
echo $DATE $TIME "3: QNAP TVS-463 in den Ruhemodus versetzen"
exit 0


Warum codest Du nicht username und hostname hart ein. username muß ja fhem sein, und noch mal unter /opt/fhem/ auf dem pi muß auch der .ssh ordner mit dem Zertifikat liegen.


#!/bin/bash
username="$1"
hostname="$2"
ssh fhem@IP_QNAP '/bin/echo mem > /sys/power/state 2>/dev/null'
DATE=$(date +%Y.%m.%d)
TIME=$(date +%T)
echo $DATE $TIME "3: QNAP TVS-463 in den Ruhemodus versetzen"
exit 0


Bitte anstelle IP_QNAP die tatsächliche ip eingeben. Aber ich denke mal bevor Du irgendwas weiter machst, teste erstmal ob fhem überhaupt ssh zu Deinem QNAP mit Zertifikat kann.


su -s /bin/bash -c ssh fhem@IP_QNAP '/bin/echo mem > /sys/power/state' fhem


Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Breaked

Danke dafür erstmal.

Habe ich jetzt grundsätzlich einen Denkfehler???
Ich logge mich doch aus fhem heraus mittels ssh auf den admin Account auf dem NAS ein und führe so dann das Skript aus!?

So wie du es geschrieben hast, muss ich ja mit dem User fhem auf mein NAS zugreifen und den Code ausführen, was aber ja meiner Meinung nach nicht funktionieren wird. Denn ein fhem Account besteht auf dem NAS ja gar nicht.


Vielleicht werkel ich aber auch schon zu lange an ein und der selben Sache rum ...
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Also irgendwie sind wir beide jetzt durcheinander.
So wie das Skript geschrieben ist und auch von Anfang an war, meldet sich das Skript per ssh auf einen Rechner ein und führt doch einen Befehl aus. Das Skript muß also auf dem fhem Server liegen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Breaked

Genau, nur du willst dich ja mit "deinem" Skript mit dem User fhem auf das QNAP einloggen, was sich ja widerspricht, da der User auf dem QNAP nicht existiert.
Das Skript liegt auf auf dem fhem Server, klar. Nur das Skript meldet sich mit admin@10.0.0.10 am QNAP an und fhem führt das Skript dann aus.

So ist zumindest meine Logik hinter dem ganzen Chaos :P

Werde mich sonst morgen nochmal dran setzen, eventuell fällt einem dann ja der Fehler auf.
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Ich habe Dir ja kein Skript gegeben sondern nur Code damit Du mal testen kannst ob Deine Zertifikatsauthentifizierung als fhem user klappt. also Du Dich im User Profil fhem als admin auf dem QNAP anmelden kannst.

Aber Du hast Recht, hier habe ich mich in der Tat vertan

#!/bin/bash
username="$1"
hostname="$2"
ssh fhem@IP_QNAP '/bin/echo mem > /sys/power/state 2>/dev/null'
DATE=$(date +%Y.%m.%d)
TIME=$(date +%T)
echo $DATE $TIME "3: QNAP TVS-463 in den Ruhemodus versetzen"
exit 0


Muss heißen


#!/bin/bash
ssh admin@10.0.0.10 '/bin/echo mem > /sys/power/state 2>/dev/null'
DATE=$(date +%Y.%m.%d)
TIME=$(date +%T)
echo $DATE $TIME "3: QNAP TVS-463 in den Ruhemodus versetzen"
exit 0


Sorry
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Breaked

Okay, das war ein Missverständnis.
Habe den Code aber so mal in der Konsole ausgeführt mit folgendem Ergebnis:
pi@raspberrypi ~ $ su -s /bin/bash -c ssh fhem@10.0.0.10 '/bin/echo mem > /sys/power/state' fhem
Kein Passworteintrag für Benutzer »fhem@10.0.0.10«

Das scheint nicht zu funktionieren.

Genau so, wie du den Skript-Code (überarbeitet) geschrieben hast, habe ich ihn auch schon bei mir drin.
Ausführen in FHEM lasse ich ihn damit:
attr QNAP shutdownCmd {system("/opt/fhem/FHEM/qnap.sh")}

QNAP fährt in den Ruhezustand, aber die FHEM Oberfläche hängt sich eben auf.
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux


pi@raspberrypi ~ $ su -s /bin/bash -c ssh fhem@10.0.0.10 '/bin/echo mem > /sys/power/state' fhem
Kein Passworteintrag für Benutzer »fhem@10.0.0.10«

Kann ja auch nicht. Du musst ja wirklich admin statt fhem nehmen denn nur admin ist auf dem QNAP als User drauf.


ok das müssen wir mal besser testen.


usermod -s /bin/bash fhem


danach


su fhem


nun solltest Du fhem sein


whoami


sollte fhem sagen

Wenn ja machst Du folgendes

ssh admin@10.0.0.10


nun solltest Du auf dem QNAP sein.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Breaked

Das habe ich ja quasi schon probiert, was ja funktioniert.

Hatte in sudo nano /etc/passwd
fhem:x:999:20::/opt/fhem:/bin/false auf
fhem:x:999:20::/opt/fhem:/bin/bash geändert, sowie dem User fhem ein Passwort vergeben um mich direkt per ssh einloggen zu können.

Dementsprechend dann eingeloggt auf dem pi als User fhem ssh admin@10.0.0.10 ausgeführt.
Und zack - ich bin ohne Passwortabfrage auf dem QNAP.

Standby funktioniert auf dem QNAP ja, wegen des aufhängen seitens FHEM: Kann es damit zusammenhängen, dass die ssh-Verbindung dann quasi abrupt getrennt wird und FHEM damit nicht klar kommt? Kam mir gerade so in den Sinn...
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Lass uns mal bitte kleine Schritte machen und uns ran tasten.

Jetzt machst Du das erst mal wieder rückgangig so das der User pi wieder nur /bin/false als shell hat. dann anmelden am pi als user root und noch mal das hier probieren


su -s /bin/bash -c ssh admin@10.0.0.10 '/bin/echo mem > /sys/power/state' fhem
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Breaked

Sorry, wie genau mach ich das rückgängig?

Quasi fhem Login deaktivieren?
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

na genau so wie du es mir geschrieben hast.

/etc/passwd und dann aus bash false machen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Breaked

#27
Da bekomme ich die Ausgabe

root@raspberrypi ~ $ su -s /bin/bash -c ssh admin@10.0.0.10 '/bin/echo mem > /sys/power/state' fhem
Kein Passworteintrag für Benutzer »admin@10.0.0.10«
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de

CoolTux

Guten Morgen,

Ok dann lassen wir das erstmal. Pass mal Dein Script bitte korrekt an. Also mit admin und IP.

Dann machst Du einfach

su -s /bin/bash -c /Pfad/zum/Skript fhem


Hier sollte auf jeden was passieren
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Breaked

Moin,

das Script sieht so aus:
#!/bin/bash
ssh admin@10.0.0.10 '/bin/echo mem > /sys/power/state 2>/dev/null'
DATE=$(date +%Y.%m.%d)
TIME=$(date +%T)
echo $DATE $TIME "3: QNAP TVS-463 in den Ruhemodus versetzen"
exit 0


Den Befehl für die Konsole so ausgeführt:
pi@raspberrypi ~ $ su -s /bin/bash -c /opt/fhem/FHEM/qnap.sh fhem
Passwort:
ssh: connect to host 10.0.0.10 port 22: No route to host
2016.06.18 10:29:45 3: QNAP TVS-463 in den Ruhemodus versetzen


NAS fährt in den Ruhemodus und FHEM stürzt NICHT ab! :)

Allerdings, wie du siehst, wurde ein Passwort eingefordert. Da bin ich mir nicht sicher wieso.
Bereit für dein eigenes Smart Home?
http://ownsmarthome.de