• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Gelöst] FTP-Login automatisieren

Hallo miteinander!

Wie kann ich den Login und Dateitransfer per FTP automatisieren? Ich stelle mir was vor wie:

Code:
ftp my.host.de -l myuser -p mypassword -upload myfile

Hat da jemand einen Tip?

Viele Grüße
Fats
 
Hallo Fats,

guck dir mal folgendes Shell Script an.

Code:
################################################################################
#
#  Script-File   : ftp_put.sh
#  Author        : Georg
#  Creation date : 21.01.1998
#  Description
#
#    This Script uses ftp to send files to foreign systems
#
#    Input parameter:
#       $1 = Destination Node
#       $2 = Username
#       $3 = Password
#       $4 = Destination directory
#       $5 = Filename
#
#  Changes
#
################################################################################

#-------------------------------------------------------------------------------
#  Check input parameter
#-------------------------------------------------------------------------------
if [ "$#" -lt 5 ]
then
  echo ' '
  echo 'Error: Not enough parameter in ftp_send.com!'
  echo ' Sourcenode                      : ' $1
  echo ' Username                        : ' $2
  echo ' Password                        : ' $3
  echo ' Directory z.B /pfad/pfad/   : ' $4
  echo ' Filename eg. "*.csv"         : ' $5
  echo 'Execution terminated!'
  echo ' '
  exit 1
fi


#---------------------------------------------------------------
# Define transfer function
#---------------------------------------------------------------
transfer()
{
 echo "[4m                                                                                [0m"
 echo "Transfer" $5  "von [1m" $1 "[0m" $4
 echo "[4m                                                                                [0m"
 ftp -i -n -v <<EOJ
 open $1
 user $2 $3
 binary
 cd   $4
 put  $5
 close
 quit
EOJ
}

#---------------------------------------------------------------
# Transfer data
#---------------------------------------------------------------
transfer $1 $2 $3 $4 $5

exit

Das kann ein einer crontab laufen oder von anderen Scripten ausgeführt werden.

Gruß
Georg
 
Hi Georg!

Vielen Dank für die Hilfe! Sieht gut aus! werde ich nachher mal ausprobieren.

Aber .. hmmm ... was sind das für merkwürdige Sonderzeichen (von [1m" $1 "[0m" $4) in der Transfer-Funktion? Oder ist da was mit dem CharSet schief gelaufen??

Viele Grüße
Fats
 
Hängt vom verwendeten FTP Client ab.
lukemftp unterstützt die Angabe von Zugangsdaten in der Form ftp://user:pass@server/directory

Bei ncftpget/put können die Zugangsdaten in einer separaten Datei abgelegt werden.
 
Hallo,

Betreff Sonderzeichen.
Da ist nichts schief gelaufen, das Script habe ich mal für Unix-Maschinen mit VT-Konsolen, Putty und Co geschrieben. VT-Konsolen verwenden diese Steuerzeichen für die Einstellung von Schriftattributen wie fett, blinkend, hintergrund usw. Die Linux-Konsole müsste diese Steuerzeichen auch interpretieren, kann man aber rausschmeissen.

Gruß
Georg
 
oder auch:
Code:
ftp -i user:password@host <<END_OF_FTP
cd pfad
get file.dat
mget *.txt
... weitere Befehle ...
END_OF_FTP

weiteres siehe man ftp
 
Hallo!

Ich bin mir nicht sicher, ob ich die Frage richtig verstanden habe, aber es gibt noch eine Moeglichkeit unter Linux / Unix FTP zu automatisieren!
Naemlich ueber die Datei .netrc
Mit der kann man auch FTP Vorgaenge automatisieren.

mfG
 
Oben