Как загрузить один файл по FTP из командной строки?

мне нужно загрузить один файл на FTP-сервер из Ubuntu. Эта операция должна быть выполнена в скрипте (в неинтерактивном режиме). Каков правильный синтаксис для ftp?

Я пытаюсь, но безрезультатно:

$ ftp -u ftp://user:[email protected] my-local-file.txt
ftp: Invalid URL `ftp://'
102
задан yegor256 2011-08-15 05:40:11
источник

10 ответов

вот один подход:

$ ftp -n <<EOF
open ftp.example.com
user user secret
put my-local-file.txt
EOF

альтернативно, создайте (или отредактируйте)~/.netrc файл в домашнем каталоге пользователя, который будет выполнять команду ftp, дать ему соответствующие perms (chmod 0600 ~/.netrc), и добавьте следующее:

# ~/.netrc
machine ftp.example.com
login user
password secret

затем опустить регистрационную информацию, как в:

$ echo put my-local-file.txt | ftp ftp.example.com

кроме того, вот как вы можете сделать то же самое с помощью curl:

$ curl -T my-local-file.txt ftp://ftp.example.com --user user:secret
162
отвечен Marty 2011-08-15 09:13:17
источник

Я могу порекомендовать ftp-upload. Это аккуратный маленький инструмент, который вы можете установить под ubuntu через sudo apt-get install ftp-upload.

пример использования:

ftp-upload -h {HOST} -u {USERNAME} --password {PASSWORD} -d {SERVER_DIRECTORY} {FILE_TO_UPLOAD}
13
отвечен Floris 2015-01-27 18:52:13
источник

вам нужно исправить url, указанный в вашем заявлении. Вы получили сообщение об ошибке, потому что URL - адрес был неполным-в нем отсутствовало имя загружаемого объекта. После добавления имени файла после example.com как я сделал ниже, вы увидите одну команду действительно работает, как задумано.

попробуйте это:

ftp -u ftp://user:[email protected]/my-local-file.txt my-local-file.txt

5
отвечен Paul 2011-12-12 23:11:24
источник

установить ncftp и использовать ncftpput инструмент, который поставляется вместе с ним, в значительной степени что-то вроде этого синтаксиса:

ncftpput -u ftpuser -p ftppass ftphostname /path/where/to/upload localfile.name
if [ $? -ne 0 ]; then echo "Upload failed"; fi

вы даже можете проверить, если состояние загрузки хорошо или плохо. Обычный ftp-клиент также может использоваться вместе с expect.

4
отвечен O G 2013-11-27 14:53:23
источник

вы также можете попробовать lftp.

вот пример:

lftp -e 'cd folder1/folder2; put /home/path/yourfile.tar; bye' -u user,password ftp.theserver.com

здесь дополнительные детали

.

2
отвечен divinedragon 2017-04-13 15:22:57
источник

Загрузить файл в удаленное место через командную строку

#!/bin/bash
# is the file name
#usage:this_script <filename>
HOST='yourhost'
USER="youruser"
PASSWD="pass"
FILE="abc.php"
REMOTEPATH='/html'

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd $REMOTEPATH
put $FILE 
quit
END_SCRIPT
exit 0
2
отвечен Shal 2015-04-29 12:16:12
источник

Я использую BusyBox ftpput для этого:

# /bin/busybox ftpput

BusyBox v1.20.2 (Debian 1:1.20.0-7) multi-call binary.

Usage: ftpput [OPTIONS] HOST [REMOTE_FILE] LOCAL_FILE

Upload a file to a FTP server

    -v,--verbose            Verbose
    -u,--username USER      Username
    -p,--password PASS      Password
    -P,--port NUM           Port

Примечание: busybox ftpget хорошо работать тоже.

1
отвечен Naskel 2016-03-24 07:17:05
источник

вы также можете использовать sftp или ftp команду

sftp {user}@{IP}

Password:

put {path To File On Local Computer}

0
отвечен iProgram 2015-02-16 22:37:53
источник

я улучшил ответ Марти, как показано ниже (включая двоичный):

[ftp_example_1.sh]

$ dump_file ftp_example_sh.sh

ftp -n <<EOF
open 192.168.0.10
user anonymous aaa
binary
put 
EOF

[ftp_example_2.sh]

dump_file ftp_example_2.sh $192.168.0.10

ftp -n <<EOF
open 
user anonymous aaa
binary
put 
EOF
0
отвечен sailfish009 2017-07-31 05:59:52
источник
FtpPut(){
    echo `echo -e "open host\nuser user pass\nbinary\nput \nquit"|ftp -nv`
}
FtpPut asd.txt
FtpPut asd.mp4
FtpPut asd.php
...
-1
отвечен Yöncü Bilişim Çözümleri 2017-08-25 21:06:21
источник

Другие вопросы linux ubuntu ftp

X