Spiiin's blog

Fab

Года 4 назад начал использовать Synergy(программу для расшаривания клавиатуры, мышки и буфера обмена между компьютерами), но только сейчас понял, что меня в ней раздражает отсутствие возможности копировать файлы напрямую между компьютерами, в связи с чем решил разобраться, как это сделать получше.

Собственно, можно просто использовать протокол SCP - на одной из машин включается удалённый вход, на другую ставится клиент (вроде Putty) и после соединения файлы копируются через командную строку.

Если же файлы перебрасываются регулярно и по похожему сценарию, можно автоматизировать их передачу с помощью библиотек для работы с SSH в языках программирования, например, Paramiko в Python.

Следующий шаг для повышения удобства - абстрагирование от работы с протоколом и использование утилиты для упрощённого вызова фич SSH, для чего используется Fab, библиотека и утилита для удалённого вызова команд, надстройка над Paramico.

Основные команды (отсюда):

run (fabric.operations.run)
sudo (fabric.operations.sudo)
local (fabric.operations.local)
get (fabric.operations.get)
put (fabric.operations.put)
prompt (fabric.operations.prompt)
reboot (fabric.operations.reboot)

cd (fabric.context\_managers.cd)
lcd (fabric.context\_managers.lcd)
path (fabric.context\_managers.path)
settings (fabric.context\_managers.settings)
prefix (fabric.context\_managers.prefix)