Нужен Shell Script для загрузки файла по FTP-ссылке? - PullRequest
0 голосов
/ 02 августа 2011

Мне нужно получить этот файл ftp: // 1034733: ze3Kt699vy14@idx.living.net/idx_fl_ftp_down/idx_ftmyersbeach_dn/ftmyersbeach_data.zip на сервер моего сайта.Это кажется достаточно простой задачей ... но я не могу найти решение на данный момент.Похоже, что PHP не способен выполнить работу.Wget был моей следующей мыслью, однако установка wget Годадди вызывает у меня проблему «отказано в соединении» (хотя wget работает для этого на моем компьютере - mac os x 10.6).Теперь я думаю, что это связано со стороной Godaddy вещей, но я застрял с тем, что у меня есть.Моя цель здесь - написать скрипт, который будет выполняться через задание cron (мне нужно загружать этот файл каждый день).Кто-нибудь, пожалуйста, помогите!Я на грани вырывания волос из головы!Я провел последние две недели на этом!Также я попробовал использовать curl через shell и wget.оба потерпели неудачу.К сожалению, у меня есть доступ только к этой ссылке, у меня нет логина ftp для idx.living.net

1 Ответ

1 голос
/ 02 августа 2011
#!/bin/sh

# ftpget - given an ftp: style URL, unwrap it, and try to obtain the file using ftp.

if [ $# -ne 2 ] && [ $# -ne 3 ]; then
  echo "Usage: $0 ftp://... username [password]" >&2
  exit 1
fi

# Typical URL: ftp://ftp.ncftp.com/2.7.1/ncftpd-2.7.1.tar.gz

if [ "$(echo $1 | cut -c1-6)" != "ftp://" ] ; then
  echo "$0: Malformed url. I need it to start with ftp://" >&2;
  exit 1
fi

server="$(echo $1 | cut -d/ -f3)"
filename="/$(echo $1 | cut -d/ -f4-)"
basefile="$(basename $filename)"
username="$(echo $2)"
password=""
if [ $# -eq 3 ] ; then
  password="$(echo $3)"
fi

#rm $basefile
echo ${0}: Downloading $basefile from server $server

ftp -n << EOF
open $server
user $username $password
bin
get $filename $basefile
quit
EOF

if [ $? -eq 0 ] ; then
  #chmod +x $basefile
  ls -l $basefile
fi

exit 0
...