Intereting Posts
Создайте RPM для конкретной незначительной версии RH Открыто `less` прокручивается до конца Понимание нескольких сетевых интерфейсов и маршрутизации с использованием OpenWRT Как добавить программу Windows (под Wine), которая не имеет установщика? Использование «меньше», чтобы оставить текст на экране для небольших файлов Почему bash показывает «Terminated» после убийства процесса? обмен словами с awk вокруг символа / текста ("to") Установите LVM-объем в качестве внешнего USB-накопителя? CentOS 6 Шаблон совпадения, выполнить расчет и распечатать только 3 или 4 значения плавающего значения max Файловая система компиляции Linux Модель безопасности Yum ИЛИ Почему враждебный прокси может отказываться от обновлений без предупреждения? Как открыть все URL-адреса в моем браузере с помощью xdg-open? Невозможно изменить методы ввода в fcitx Переадресовать цикл с Nginx в качестве обратного прокси и Yii как я могу профилировать время рендеринга в zsh?

ftp и shebang

Есть ли способ для shebang-ify ftp и написать небольшие скрипты ftp?

Например:

#!/usr/bin/ftp open 192.168.1.1 put *.gz quit 

Есть предположения?

Не с ftp программами, с которыми я столкнулся, так как они ожидают, что скрипт на их стандартном входе, но shebang передаст имя сценария в своей командной строке.

Вы можете использовать документ здесь, чтобы передать сценарий ftp через оболочку оболочки.

 #!/bin/sh ftp <<EOF open 192.168.1.1 put *.gz EOF 

Lftp принимает имя скрипта, переданное в качестве аргумента.

 #!/usr/bin/lftp -f open 192.168.1.1 put *.gz 

Ncftp поставляется с двумя инструментами ncftpget и ncftpput для простых партий ncftpput .

Zsh включает FTP-модуль . Преимущество использования правильной оболочки, а не прямого FTP-скрипта, заключается в том, что вы можете реагировать на сбои.

 #!/bin/zsh zmodload zsh/zftp open 192.168.1.1 put *.gz 

Конечно, есть много других языков, которые вы могли бы использовать: Perl, Python, Ruby и т. Д.

Другой подход – установить FTP-сервер в качестве каталога, а затем использовать cp (или rsync или другие инструменты) для копирования файлов. Существует много файловых систем FUSE для доступа к FTP, главным образом CurlFtpFS и LftpFS .

Обратите внимание: если вы планируете использовать аутентификацию (вероятно, если вы загружаете), и у вас есть контроль над сервером, вам будет лучше с SSH-доступом. Это более безопасно и более гибко. Чтобы скопировать файлы через SSH, вы можете использовать scp или sftp или rsync для эффективной синхронизации (если некоторые из файлов уже могут быть там) или Unison (для двунаправленной синхронизации) или mount с SshFS .