2015-08-20 7 views
0

Я пытаюсь, чтобы этот скрипт создавал и загружал файлы на ftp-сервер. Сценарий основан на каком-то другом скрипте, представленном здесь на форуме.Bash скрипт для загрузки файла по FTP

HOST=example.com #This is the FTP servers host or IP address. 
    USER=ftpuser #This is the FTP user that has access to the server. 
    PASS=1234 #This is the password for the FTP user. 
    FILE_PREFIX=FRAME 

    timestamp() { 
     date +"%s" 
    } 

    ftp() { 
     ftp -i -n $HOST << END_SCRIPT 
     user $USER $PASS 
     # #cd /path/to/file 
     put $FILENAME 
     bye 

    END_SCRIPT 
    } 

    # # Call 1. Uses the ftp command with the -inv switches. 
    # #-i turns off interactive prompting. 
    # #-n Restrains FTP from attempting the auto-login feature. 
    # #-v enables verbose and progress. 


    # shoot picture 

    while true; do 
     FILENAME=${FILE_PREFIX}_$(timestamp).txt 
     echo $FILENAME > $FILENAME 

     echo "Subiendo $FILENAME" 
     ftp 

     sleep 2 
    done 
    EOF 

Когда я выполнить сценарий, я получаю сообщение об ошибке:

script.sh: 14: script.sh: 0: Слишком много открытых файлов

Можете ли вы мне помочь решить ошибку? Thanks

ответ

0

Переименуйте функцию ftp на что-то еще и ее вызов до линии с sleep 2.

+0

Спасибо, что сработало (я должен ждать 3 минуты, чтобы принять ответ). Теперь у меня есть новая * проблема *, может быть, я должен начать новый вопрос, но попробую здесь: как только соединение ftp будет открыто, я получу это сообщение на экране: *? Неверная команда * –

+1

Пожалуйста, начните новый вопрос. Может оказаться полезным переключиться на [Суперпользователь] (http://superuser.com/tour). – Cyrus

Смежные вопросы