• 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

Fats

Member
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
 

P6CNAT

Advanced Hacker
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
 
OP
F

Fats

Member
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
 

panamajo

Guru
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.
 

P6CNAT

Advanced Hacker
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
 

regexer

Advanced Hacker
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
 

byron1778

Hacker
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