FreeBSD — серверная автоматизация SFTP


Итак, задача — на сервере под управлением FreeBSD сваять скриптик, который регулярно «ходит» по SFTP и «забирает» определенный файлик.
Поначалу задача показалась мне очень простой — пишем сценарий, скармливаем его sftp клиенту и вуаля.
На деле всё сильно осложнилось:
1. Сервер не принимал аутентификацию по ключам (себе то я сгенерировал, а вот закинуть ключ на сервер — облом), поэтому коннект осуществлялся только с вводом пароля
2. Передача пароля клиенту через конвеер либо перенаправлением ввода не срабатывал — ТОЛЬКО ручной ввод с клавиатуры

Далее гугл и статейка Автоматизация sftp
Установка expect и проба скрипта так же не увенчалась успехом, но и несколько часов мучения с перлом тоже — NET::SFTP ни в какую не хотел вставать на серваке.

После чего у меня возникла идея автоматического монтирования sftp — снова гугл и решение — sshfs !

Но опять же sshfs требует ручного ввода пароля — по идее раз замонтировал и работай, но аптайм сервера всё же не 100% и при перезагрузке монтировать нужно автоматом…
Снова затык!

Попровал объединить первый метод expect и sshfs, который и привёл к положительному результату после поисков в виде скриптика:

Кидаем его в автозапуск — то есть сюды /usr/local/etc/rc.d
Чтоб запускался последним – имя делам начиная с Z

ЧТД

,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *