1

Temat: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Witam,
Chciałbym zapytać jak napisać skrypt w bashu, który automatycznie loguje się po ssh na jakąś maszynę i wykonuje jakieś polecenia a wynik przesyła np. do pliku znajdującego się na maszynie z której wykonywany był skrypt.
Bardzo proszę o pomoc...

2

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Zrób sobie autoryzację po kluczach (bo inaczej nie masz jak hasła podać) i

ssh user@maszyna ls / > plik.txt

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez grqq 2011-07-08 12:45:24)

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Cezary napisał/a:

Zrób sobie autoryzację po kluczach (bo inaczej nie masz jak hasła podać) i

ssh user@maszyna ls / > plik.txt

No ok działa. Teraz napisałem taki skrypcik:

#!/bin/sh
echo -n "Wpisz komende która ma być wykonywana po zalogowaniu:\a"
read komenda
ssh -i /home/grzesiek/.ssh/id_rsa root@xxxx.dyndns.org $komenda > /tmp/plik.txt
cat /tmp/plik.txt 

I skrypt mi zwraca że nie znalazl komendy np. ifconfig
Już wiem, trzeba podać całą ścieżkę np. /sbin/ifconfig. Ale nie da się tego jakoś obejść ? tak tylko żeby samą nazwę podawać bez ścieżki ?

4

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Zmienna PATH?

Zobacz

ssh ... PATH=/bin:/sbin ifconfig

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

No ok dzięki bardzo. Wszystko działa mniej więcej. Z tym że rozumiem że tylko jedną z tych ścieżek mogę dodać do zmiennej ? Inaczej się chyba nie da...

6

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Właśnie w/w masz dwie. Możesz dodać ile chcesz oddzielone :

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Cezary napisał/a:

Właśnie w/w masz dwie. Możesz dodać ile chcesz oddzielone :

mam taki skrypt:

#!/bin/sh
echo -n "Wpisz komende która ma być wykonywana po zalogowaniu:\a"
read komenda
PATH=/bin:/sbin/
ssh -i /home/xxx/.ssh/id_rsa root@xxxx.dyndns.org $PATH$komenda
# > /tmp/plik.txt
#cat /tmp/plik.txt

No i nie działa...

8

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

.... bo taki skrypt przy wprowadzeniu ls generuje

ssh -i /home/xxx/.ssh/id_rsa root@xxxx.dyndns.org /bin:/sbin/ls

a ma być

ssh -i /home/xxx/.ssh/id_rsa root@xxxx.dyndns.org PATH=/bin:/sbin/ ls

Widzisz różnicę?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Widzę. Już zajarzyłem. Dzięki bardzo. Wszystko działa.

10

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Jeśli skrypt będzie wykonywany na "zwykłym" systemie to można użyć expect.

11 (edytowany przez onken 2019-10-27 19:28:24)

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Gdzie robię błąd ?

chce wykonać skrypt w bashu (po automatycznym zalogowaniu)

A dostaję:

ssh -i /root/.ssh/id_rsa root@ssh.hosting.pl PATH= bash /home/klient.hosting.pl/ala/skrypty/teleman.sh

bash: bash: Nie ma takiego pliku ani katalogu

lub ( po usunieciu PATH= bash )

bash: /home/klient.hosting.pl/ala/skrypty/teleman.sh: /bin/sh^M: zły interpreter: Nie ma takiego pliku ani katalogu
root@LEDE:~#

Katalogi oczywiście są, pliki też.
Jak wpisze ręcznie to działa ok.
Uruchomione że skryptu nie widzi ścieżek..

Help..... smile

12

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Cezary

Help smile

13

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

To jest źle: PATH= bash, tego ma bye być. A plik  teleman.sh musi się zaczynać od

#!/bin/sh

lub

#!/bin/bash

jeżeli używasz basha i jest on tam zainstalowany


Następna sprawa - skrypt ma windowsowe końce linii - zrobiłeś skrypt w windowsie  i zapisałeś tam - tak to nie działa. Końce mają być uniksowe: https://pl.wikipedia.org/wiki/Koniec_linii

Czy zainstaluj sobie edytor który potrafi odpowiednio zapisać plik a nie używasz notatnika czy worda do tego. Np. notepad++. Oczywiście są też gotowe programy który potrafią zmienić format końców linii, np. dos2unix

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

14 (edytowany przez onken 2019-10-27 21:41:51)

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Używam notepad++

Skrypty działają przecież pod Openwrt czy też pod innym linuxem, Debianem.

Problem powstaje że za nic w świecie nie mogę zmienić ścieżki po zdalnym zalogowaniu się, ten sam skrypt wpisany tzn uruchomiony już z konsoli działa poprawnie włącznie z lokalizacjami katalogów na danej zdalnej maszynie.

Edit, miałeś rację, mimo notepad++ wkradly sie dziwne końce linii...


A byłem pewny że notepad++ zrobił dobre formatowanie.

15

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Cezary smile

Już wszystko śmiga smile dzięki

Jeszcze jedno pytanie, jest jakaś szansa by przy wysyłaniu emaila z poziomu curl + załacznik, dodać temat tego emiala ?

Za nic w swieicie nie moge znalezc takiej opcji sad z konsoli

16

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

A zdradzisz nam czym i jak wysyłasz takiego mejla?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

17 (edytowany przez onken 2019-10-28 09:45:37)

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

loguje sie z poziomu LEDE, na debiana i stamtąd wysylam zalacznik wynikowy txt

Tyle ze w konsoli za nic w swiecie nie widze opcji wrzucenia tematu emaila

Przykład:

curl -u --ssl-reqd --mail-from "<sender@gmail.com>" --mail-rcpt "<receiver@server.tld>" --url smtps://smtp.gmail.com:465 -T file.txt

18

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

W treści mejla podajesz: https://ec.haxx.se/usingcurl-smtp.html czy https://stackoverflow.com/questions/147 … send-email

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

19

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Tak, to wiem

Ale mogę połaczyc i tresc i zalacznik ?

Bo najwazniejszy jest plik załacznika

20

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Masz jakieś opory w czytaniu manuala. Tak, zrobisz zwykłą treść mejla do którego dołączasz załącznik zakodowany w base64. Zrób sobie podgląd tekstowy źródła mejla to zobaczysz jak to wygląda.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

21

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

No własnie nie bardzo rozumiem, proszę o przykład smile

Jak wrzucam tresc emaila to nie dodaje mi załacznika z wynikowym plikiem tekstowym wtedy

22

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

https://stackoverflow.com/questions/447 … attachment

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

23

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Ale ja to widziałem smile
Od dwóch dni czytam i czytam ,ale tam załącznikime jest treść emaila.

A mi chodzi o tresc emaila tj dokładnie temat emaila + załącznik txt

24

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

--MULTIPART-MIXED-BOUNDARY
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Disposition: inline
Content-Id: <admin.png>
iVBORw0KGgoAAAANSUhEUgAAAIAAAACgCAIAAABL8POqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
B3RJTUUH4AQNDwEVouBdqAAAG2xJREFUeNrtfX9oHFe25jdDBU5BG25BG7pABhXEkDJjSIsYIs1m
WbfJA8ubhcjjgdiTQNJOYCInj0RKYGIl8CbyPF4iZSCxEkgsB5LIgWQlL2Pcfow3bdgw0mMzox6e
....


--MULTIPART-MIXED-BOUNDARY
Content-Type: text/plain
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename=log.txt
c29tZSBsb2cgaW4gYSB0eHQgZmlsZSB0byBhdHRhY2ggdG8gdGhlIG1haWwK


--MULTIPART-MIXED-BOUNDARY--

To jest załącznik. Pisałem - otwórz sobie źródło mejla to zobaczysz jak to na surowo wygląda. Bo nie wiem czy ktoś Cię uświadomił, ale w mejlu nie jest przesyłany "obrazek".

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

25 (edytowany przez onken 2019-10-28 10:25:23)

Odp: Skrypt logujący się automatycznie po ssh na zdalna maszynę.

Cezary

Ale ja wiem ze ta tresc emala to jest "załacznik" odpowienio przerabiany przez program pocztowy

Ale to podpowiedz mi prosze jak mam w takim razie połaczyc teraz "zalacznik" z tematem emaila z zalacznikiem z trescia wynikową wykonanego skryptu smile ?

Albo po prostu do mojego pliku wynikowego musiałbym dodac na początek tekst z :

Subject: mmmmm

Ale jak ?