LudwigII
Anmeldungsdatum: 11. September 2016
Beiträge: Zähle...
|
Hallo,
ich moechte gerne ein locales script an einen SSH server uebergeben bzw ausfuhren leider wird der Dateiname im script nicht uebergeben hat jemand eine ahnung wie man das noch machen kann oder welche moeglichkeiten es gitb. | # !/bin/bash
for datei in *.mp4; do
echo $datei;
download=echo wget http://www.domain.de/verzeichnis/down/$datei;
echo $download;
done
|
| ssh benutzer@host 'bash -s' < shell_wget.sh
|
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Hallo! Bin mir gerade nicht sicher und es ist auch schon spät, aber maskiere mal deine $-Zeichen. Also
| # !/bin/bash
for datei in *.mp4; do
echo \$datei;
download=echo wget http://www.domain.de/verzeichnis/down/$datei;
echo \$download;
done
|
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 13177
|
Herzlich willkommen hier im Forum! LudwigII schrieb:
ich moechte gerne ein locales script an einen SSH server uebergeben bzw ausfuhren leider wird der Dateiname im script nicht uebergeben
Ich sehe da nichts, was übergeben wird. Was meinst Du damit? Was ist das Ziel?
hat jemand eine ahnung wie man das noch machen kann oder welche moeglichkeiten es gitb.
Bestimmt - wenn wir erst mal verstanden haben, was Du machen möchtest. ☺ Zeile 4 sieht eigentümlich aus. Die macht möglicherweise nicht, was Du möchtest. Hier wird die Variable $download mit dem Wert "echo" besetzt und dann wird wget aufgerufen. Die Variable $download wird aber von wget überhaupt nicht ausgewertet. Also ist das witzlos.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
LudwigII schrieb: ich moechte gerne ein locales script an einen SSH server uebergeben bzw ausfuhren
Für mich sieht das eher aus, als wölltest du Dateien dahin kopieren:
scp *.mp4 benutzer@host:
|
LudwigII
(Themenstarter)
Anmeldungsdatum: 11. September 2016
Beiträge: 11
|
Danke für die Antworten, ja "misterunknown" in gewisserweiße hast du recht, im prinzip sollen alle datein auf Server1 per ssh und wget auf dem Server2 kopiert werden
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
LudwigII schrieb: Danke für die Antworten, ja "misterunknown" in gewisserweiße hast du recht, im prinzip sollen alle datein auf Server1 per ssh und wget auf dem Server2 kopiert werden
In diesem Fall kannst du wget einfach weglassen, und die Dateien, wie von mir beschrieben, direkt per scp (Dateitransfer per SSH) kopieren.
|
LudwigII
(Themenstarter)
Anmeldungsdatum: 11. September 2016
Beiträge: 11
|
Super danke "misterunknown" hat funktoniert aber hab noch eine frage wie kann ich jetzt noch den Ordner auf dem Zielserver angeben als sprich wohin die datein kopiert werden sollen, und gibt es eine möglichkeit das passwort zu hinterlegen damit ich es nicht jedesmal eingeben muss ??
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
LudwigII schrieb: Super danke "misterunknown" hat funktoniert aber hab noch eine frage wie kann ich jetzt noch den Ordner auf dem Zielserver angeben als sprich wohin die datein kopiert werden sollen, und gibt es eine möglichkeit das passwort zu hinterlegen damit ich es nicht jedesmal eingeben muss ??
Generell:
scp <daten> user@zielhost:pfad
Ein paar Grundregeln:
Der Doppelpunkt hinter dem Zielhostname ist Pflicht. Wenn hinter dem Doppelpunkt nichts steht, wird ins Home-Verzeichnis des Users kopiert. Beginnt der Pfad mit einem Slash, wird er als absolut angesehen, ansonstenist er relativ zum Home-Verzeichnis des Users
| # Ins Home von user kopieren
scp <daten> user@zielhost:
# Nach /var/www/html kopieren:
scp <daten> user@zielhost:/var/www/html
# Nach ~/Bilder kopieren:
scp <daten> user@zielhost:Bilder
|
|
LudwigII
(Themenstarter)
Anmeldungsdatum: 11. September 2016
Beiträge: 11
|
klappt leider nicht wenn ich einen pfad angeben erhalte ich immer die meldung "No such file or directory" ??
|
LudwigII
(Themenstarter)
Anmeldungsdatum: 11. September 2016
Beiträge: 11
|
mein fehler hatte den pfad nicht richtig angegeben
|
LudwigII
(Themenstarter)
Anmeldungsdatum: 11. September 2016
Beiträge: 11
|
misterunknown hab nochmal ne Frage ist es möglich über den scp befehl eine muster erkennung mitzugeben zum beispiel kopiere alle datein die "-maxmuster.mp4" ins verzeichniss XY enthalten und alle die das nicht enthalten in das verzeichniss YXZ ???
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
LudwigII schrieb: misterunknown hab nochmal ne Frage ist es möglich über den scp befehl eine muster erkennung mitzugeben zum beispiel kopiere alle datein die "-maxmuster.mp4" ins verzeichniss XY enthalten und alle die das nicht enthalten in das verzeichniss YXZ ???
Also man kann nicht innerhalb des Befehls unterscheiden. Du kannst aber für jedes Muster einen Befehl schreiben:
scp *-maxmuster.mp4 user@zielhost:XY
scp *-donaldtrump.mp4 user@zielhost:YXZ
Wenn du eine Fall-zu-Fall-Unterscheidung brauchst, eignet sich eine For-Schleife:
| for i in *.mp4; do
if [[ "$i" == *maxmuster* ]]; then
scp "$i" user@host:XY
else
scp "$i" user@host:YXZ
fi
done
|
LudwigII schrieb: gibt es eine möglichkeit das passwort zu hinterlegen damit ich es nicht jedesmal eingeben muss ??
Das kann man über Authentifizierung mit Public-Keys realisieren.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 13177
|
misterunknown schrieb:
Wenn du eine Fall-zu-Fall-Unterscheidung brauchst, eignet sich eine For-Schleife:
| for i in *.mp4; do
if [[ "$i" == *maxmuster* ]]; then
scp "$i" user@host:XY
else
scp "$i" user@host:YXZ
fi
done
|
So etwas finde ich eleganter mit case - und das funktioniert auch in der sh , die generell weniger Ressourcen benötigt: | for i in *.mp4; do
case "$i" in
*maxmuster*)
scp "$i" user@host:XY;;
*anderes*muster*)
scp "$i" user@host:EFG;;
*)
scp "$i" user@host:YXZ;;
esac
done
|
|