¿Es posible automatizar FTP en Terminal?

4

Quiero agregar un comando FTP a mi crontab para descargar automáticamente un archivo. ¿Cómo hago esto?

    
pregunta daviesgeek 03.08.2011 - 01:41

3 respuestas

5

La forma 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 contraseña ( --password = contraseña ) si el acceso anónimo a FTP no está disponible. Y un modo --quiet para que sea cron -friendly y no llene tu bandeja de entrada local sin mensajes para descargas exitosas.

    
respondido por el Ian C. 03.08.2011 - 01:50
3

La siguiente secuencia de comandos BASH funcionará

#!/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
    
respondido por el conorgriffin 03.08.2011 - 02:13
3

Puede usar el enrollamiento, que ya está disponible en Mac OSX, y puede (para los archivos no anónimos) usar inicios de sesión almacenados en .netrc (por lo que la contraseña no aparece en una lista de ps)

ftp anónimo de vainilla

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

Utilizando .netrc

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

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

curl --user "user:password" ftp://your.server.name/path/to/file.tar.gz > ~you/Downloads/file.tar.gz
    
respondido por el nohillside 03.08.2011 - 10:25

Lea otras preguntas en las etiquetas