Найденный этим сценарием удара онлайн, который имеет качественную документацию:
#!/bin/bash
HOST=ftp.server.com #This is the FTP servers host or IP address.
USER=ftpuser #This is the FTP user that has access to the server.
PASS=password #This is the password for the FTP user.
# 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.
ftp -inv $HOST << EOF
# Call 2. Here the login credentials are supplied by calling the variables.
user $USER $PASS
# Call 3. Here you will change to the directory where you want to put or get
cd /path/to/file
# Call4. Here you will tell FTP to put or get the file.
put test.txt
# End FTP Connection
bye
EOF
После конфигурирования и сохранения .sh сценария, сделайте это исполняемым файлом:
chmod +x ftpscript.sh
Наконец, настройте свой cronjob
если у Вас есть 'завихрение', которое является довольно стандартным, оно может сделать необслуживаемые загрузки FTP (см. страницу справочника для-T опции),
Если ssh установлен и настроен для разрешения передач файлов, Вы могли бы использовать scp
.
Если нет netcat
или rsync
может быть опция.
Если Вы можете установить или создать программы, утилита, названная ftpsync, может быть, что Вы ищете. [Я никогда не пробовал его и там, кажется, несколько утилит, или названных этим или чем-то очень похожим.]
В сценарии удара необходимо смочь сделать что-то как:
#!/bin/bash
echo "
verbose
open 1.2.3.4
USER ftpuser ftppasswd
put /path/to/stuff.tar.gz
bye
" > ftp -n > ftp_$$.log
Смолить Ваш каталог сначала было бы хорошей идеей и сделало бы его намного более простым. Кроме того, в зависимости от размера Вашего каталога и скорости Вашей сети, можно хотеть рассмотреть выполнение дифференциальных смол.
curl
может загружать файлы на FTP-серверы.
curl -T "$FILE(s)" -u $USERNAME:$PASSWORD $SERVER/$DIR/
Вы также можете использовать шаблон глобуса для $ FILE
.