.
Место для Вашей рекламы
15 Февраль 2013

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

posted in NIX, Администрирование |

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

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

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

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

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

#!/usr/local/bin/expect
spawn -ignore HUP /usr/local/bin/sshfs root@192.168.1.1:/usr/ /mountpoint
expect "*assword*"
send "SuperPass\r"
expect "\n"

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

ЧТД

Оставить комментарий

Яндекс.Метрика