Dateinamen in ftp - automatisch einsetzen ?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Tobiax
Beiträge: 82
Registriert: 06.05.2004 12:16:36
Wohnort: Ruhrpott
Kontaktdaten:

Dateinamen in ftp - automatisch einsetzen ?

Beitrag von Tobiax » 29.07.2004 14:12:08

Mein Problem :

Ich bin der Nutzer 123 auf meinem System.
Jetzt habe ich ein shell-Skript, welches mir eine Datei versenden soll.
...
put /root/test/123.txt 123.txt
...

Dateiname und user sollen gleich sein.
Wenn ich jetzt ein andere User bin bsp 456, dann soll die Datei 456.txt heissen.
wie bekomme ich das hin ?
Zuletzt geändert von Tobiax am 10.08.2004 10:32:32, insgesamt 1-mal geändert.
Toby ...

Europas größte Magic - The Gathering Auktion per email unter http://www.magic-dealer.de

Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

Beitrag von eagle » 29.07.2004 14:46:32

Du musst in deinem Skript die Umgebungsvariable $USER auswerten.

Code: Alles auswählen

echo $USER "ist doof"
eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams

Tobiax
Beiträge: 82
Registriert: 06.05.2004 12:16:36
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von Tobiax » 29.07.2004 14:51:35

versteh ich nicht.

wie lauten denn die Zeilen ? Besonder die mit dem put
Toby ...

Europas größte Magic - The Gathering Auktion per email unter http://www.magic-dealer.de

Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

Beitrag von eagle » 29.07.2004 15:20:24

Tobiax hat geschrieben:wie lauten denn die Zeilen ? Besonder die mit dem put
Das Beispiel war nur ein Scherz 8) . Deine Zeile mit dem put sollte dann so lauten:

Code: Alles auswählen

put /root/test/$USER.txt $USER.txt 
eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams

Tobiax
Beiträge: 82
Registriert: 06.05.2004 12:16:36
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von Tobiax » 02.08.2004 11:04:34

danke für den Tip.

kann ich mir auch irgendwie die Zeit und das Datum so ausgeben lassen ?
Toby ...

Europas größte Magic - The Gathering Auktion per email unter http://www.magic-dealer.de

Benutzeravatar
rotwein
Beiträge: 619
Registriert: 03.06.2003 12:22:51
Wohnort: Altdorf (bei Nürtingen -> bei Stuttgart)

Beitrag von rotwein » 02.08.2004 11:14:00

An Datum + Zeit kommst Du mit dem Befehl Gruß rotwein

Tobiax
Beiträge: 82
Registriert: 06.05.2004 12:16:36
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von Tobiax » 02.08.2004 11:25:21

Ok.
ich will jetzt etwas in eine Datei umlenken.

Die Datei soll den Namen "USER_DATUM_ZEIT.txt" haben

für USER, DATUM, ZEIT sollen natürlich die entsprechenden einträge ersetzt werden.
Wie funktioniert das ?
Toby ...

Europas größte Magic - The Gathering Auktion per email unter http://www.magic-dealer.de

Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

Beitrag von eagle » 02.08.2004 11:48:02

Code: Alles auswählen

#!/bin/sh
DATE=`date -I'

cp myfile  $USER\_$DATE.txt
Für genauere Informationen über die date Syntax man date.

eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams

Tobiax
Beiträge: 82
Registriert: 06.05.2004 12:16:36
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von Tobiax » 02.08.2004 13:08:33

mal abgesehen davon, dass cp nicht funzt.
Das zeug kann ich nicht bei ftp verwenden
Toby ...

Europas größte Magic - The Gathering Auktion per email unter http://www.magic-dealer.de

Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

Beitrag von eagle » 02.08.2004 15:31:29

Tobiax hat geschrieben:mal abgesehen davon, dass cp nicht funzt.
Das zeug kann ich nicht bei ftp verwenden
Dann ersetze doch einfach cp mit put :roll: . Was kannst du bei ftp nicht verwenden?

eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams

Tobiax
Beiträge: 82
Registriert: 06.05.2004 12:16:36
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von Tobiax » 03.08.2004 10:42:07

die ganzen $ Befehle funktionieren nicht bei ftp.

wenn ich $USER.txt mit put übertrage, dan kommt auf der anderen seite auch eine Datei mit dem Namen "$USER.txt" an. Er ersetzt den namen nicht
Toby ...

Europas größte Magic - The Gathering Auktion per email unter http://www.magic-dealer.de

Tobiax
Beiträge: 82
Registriert: 06.05.2004 12:16:36
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von Tobiax » 10.08.2004 10:33:09

keiner ne Idee ?
Toby ...

Europas größte Magic - The Gathering Auktion per email unter http://www.magic-dealer.de

Benutzeravatar
rotwein
Beiträge: 619
Registriert: 03.06.2003 12:22:51
Wohnort: Altdorf (bei Nürtingen -> bei Stuttgart)

Beitrag von rotwein » 10.08.2004 11:10:09

Vielleicht script so ändern, dass zuerst in einem temp-Verzeichniss eine Datei $USER.txt angelegt wird (lokal). Hier müsste die Ersetzung funktionieren.
Danach diese Datei nehmen und übertragen.
Temp-Datei löschen.
bzw:
-zuerst leere Datei anlegen
-danach diese Datei füllen
-gefüllte Datei verschicken
-leeren Dummy löschen

Beim lokalen anlegen sollte $USER eigentlcih auf jeden fall ersetzt werden.

Was man auch noch probieren könnte (im Script)

Code: Alles auswählen

MyUser=$USER
oder so ähnlich und dann mit dieser Scriptinternen Variablen 'MyUser' weiterarbeiten...

Naja, maybe, kenn mich beim Scripten nicht so aus :oops:

Gruß rotwein

Tobiax
Beiträge: 82
Registriert: 06.05.2004 12:16:36
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von Tobiax » 10.08.2004 11:19:04

Die Idee ist ja nett, aber wie soll ich denn die Temp Datei mit ftp übertragen ?

da muss ich ja wieder den absoluten namen der Datei angeben.
Damit komme ich also nicht weiter,.
Toby ...

Europas größte Magic - The Gathering Auktion per email unter http://www.magic-dealer.de

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 10.08.2004 14:46:29

Du wirst die Sache ja aus einem Shell Skript heraus lösen müssen...

Also: "apt-get install ncftp". Da drin befindet sich ein Programm ncftpput, mit dem Du aus dem Shell Skript direkt Dateien per FTP versenden kannst. Dann kannst Du in dem Skript z.B. folgendes machen:

Code: Alles auswählen

ncftpput -u $USER -p PASSWORT remote.ftp.server.tld /pfad/zum/zielverzeichnis $USER.txt
Da das ganze dann in der Shell abläuft gehen auch die Variablensubstitutionen.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Antworten