2013-05-27 3 views
0

Я пытаюсь получить терминал для загрузки файла для меня, в этом случае: file.txt К сожалению, это не сработает, несмотря ни на что.UNIX basic ftp upload

#!/bin/bash 

HOST=* 
USER=*  
PASS=* 

# I'm 100% sure the host/user/pass are correct. 
#Terminal also connects with the host provided 

ftp -inv $HOST << EOF 
user $USER $PASS 

cd /Users/myname/Desktop 

get file.txt #which is located on my desktop 

bye 
EOF 

Я попытался 100 различных сценариев, но он просто не будет загружать :(

Это выход после сохранения на .sh файл, CHMOD + х и SUDO в .sh файл:

Connected to *hostname*. 
220 ProFTPD 1.3.4b Server ready. 
331 Password required for *username* 
230 User *username* logged in 
Remote system type is UNIX. 
Using binary mode to transfer files. 
550 /Users/myname/Desktop: No such file or directory 
local: file.txt remote: file.txt 
229 Entering Extended Passive Mode (|||35098|) 
550 file.txt: No such file or directory 
221 Goodbye. 
myname:Desktop Myname$ 

Я просмотрел многие другие темы о том же номере здесь, но я просто не могу понять это. Я начал играть с UNIX с утра, так что простите меня за это (наверное) глупо вопрос

+0

Не нужно ли 'put file.txt' вместо' get file.txt', потому что вы хотите загрузить файл? –

ответ

1

Try:

#!/bin/bash 

HOST=* 
USER=*  
PASS=* 

# I'm 100% sure the host/user/pass are correct. 
#Terminal also connects with the host provided 

cd /Users/myname/Desktop # Go the the local folder where the file is located in 

ftp -inv $HOST << EOF 
user $USER $PASS 

cd /User/$USER/Desktop # Go to the folder in which you want to upload the file 

put file.txt #which is located on my desktop 

bye 
EOF 

Так используйте ставить и убедитесь, что файл является текущим рабочим каталогом и удаленный каталог существует.

+0

Omg действительно. Я перечитывал сценарий пару раз ... Я знал, что должен использовать put, но я просто не видел, что использовал X_X. Спасибо! – Frank

1

Вы используете get, но расскажите об upload. Возможно, вы просто хотите использовать put?

В любом случае, я не уверен, что это можно сделать с помощью базового клиента ftp. Я всегда использую ncftp для таких вещей. Это связано с утилитами командной строки, такими как ncftpput, которые принимают аргументы командной строки и параметры для выполнения задачи.

+0

Спасибо :) Я объяснил этот странный выбор в ответе выше :) – Frank

1

Alfe прав, вам нужно использовать put <filename>, чтобы загрузить файл на FTP. Вы можете найти краткое руководство here. Это должно быть возможно с помощью базового инструмента FTP, но я бы также рекомендовал ncftp :-)

+0

Спасибо :) Я объяснил этот странный выбор в ответе выше :) – Frank

1

Вам нужно использовать tu put, чтобы загрузить файл.

+0

Спасибо :) Я объяснил этот странный выбор в ответе выше:) – Frank