5 votos

Es posible automatizar FTP en la Terminal?

Quiero añadir un comando FTP a mi crontab para descargar automáticamente un archivo. ¿Cómo puedo hacer esto?

6voto

shsteimer Puntos 8749

La manera más fácil de hacerlo es con wget. Por ejemplo:

Ian-Cs-MacBook-Pro:ianc ian$ wget ftp://gnjilux.cc.fer.hr/welcome.msg
--2011-08-02 19:48:00--  ftp://gnjilux.cc.fer.hr/welcome.msg
           => `welcome.msg'
Resolving gnjilux.cc.fer.hr... 161.53.74.67
Connecting to gnjilux.cc.fer.hr|161.53.74.67|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD not needed.
==> SIZE welcome.msg ... 1462
==> PASV ... done.    ==> RETR welcome.msg ... done.
Length: 1462 (1.4K) (unauthoritative)

100% [======================================================================================================================================================================================================================================>] 1,462       --.-K/s   in 0s      

2011-08-02 19:48:03 (63.4 MB/s) - `welcome.msg' saved [1462]

wget admite opciones para proporcionar un nombre de usuario (--user=usuario) y la contraseña (--password=contraseña) si el acceso FTP anónimo no está disponible. Y un --quiet modo así es cron-friendly y no llenar tu bandeja de entrada local sin mensajes para el éxito de descargas.

4voto

Usted puede usar curl, que está disponible en Mac OSX ya y puede que no-ftp anónimo) el uso de los inicios de sesión se almacenan en .netrc (por lo que la contraseña no se muestra en un ps de la lista)

Plain vanilla ftp anónimo

curl ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz

El uso de .netrc

curl --netrc ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz

Especificar usuario/contraseña directamente (visible en ps después)

curl --user "user:password" ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz

4voto

Petros Puntos 4430

El script de BASH que a continuación va a trabajar

#!/bin/bash

remotefile="/path/to/ftp/server/file.png"
hostname="ftp.server.net"
username="ftpuser"
password="ftppass"
ftp -in $hostname<<EOF
quote USER $username
quote PASS $password

binary
get $remotefile $HOME/temp/file.png
quit
EOF

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X