Bash FTP 上传文件的脚本

Bash script to upload file by FTP

我正在尝试使用此脚本创建文件并将其上传到 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: Too many open files

你能帮我解决这个错误吗? 谢谢

将您的函数 ftp 重命名为其他名称,并在 sleep 2 行之前调用它。