Знакома ли вам ситуация, когда вы находитесь в терминале на удаленном сервере и вам нужно скачать с этого сервера какой-то файл (дамп базы данных или лог)? Или наоборот, закачать какой-то файл с локального компьютера на сервер? Я сталкиваюсь с этим постоянно и обычно это проблема решается с помощью утилиты scp
.
Однако, если вы используете Mac OS и iTerm2 (в частности iTerm2 v2.0 и выше), то есть чуть более удобное в большинстве случаев решение — использование протокола Z-Modem и триггеров в iTerm2.
Действия для локальный машины с Mac OS
- устанавливаем lrzsz с помощью brew:
brew install lrzsz
- устанавливаем скрипт iterm2-zmodem в
/usr/local/bin
:$ cd /usr/local/bin $ wget https://raw.githubusercontent.com/aurora/iterm2-zmodem/master/iterm2-zmodem $ chmod +x iterm2-zmodem
- идем в настройки iTerm2: Profiles -> Advanced -> Triggers -> Edit
- добавляем 2 триггера вот с такими параметрами:
Regular expression: \*\*B0100 Action: Run Silent Coprocess Parameters: /usr/local/bin/iterm2-zmodem sz Regular expression: \*\*B00000000000000 Action: Run Silent Coprocess Parameters: /usr/local/bin/iterm2-zmodem rz
На этом с локально машиной все.
Действия для удаленного сервера
На удаленном сервере также необходимо иметь пакет lrzsz. Он вроде как есть в любом дистрибутиве и для Debian/Ubuntu ставится банальным sudo apt-get install lrzsz
. Больше от сервера нам ничего не нужно.
Используем!
Для загрузки файла на удаленный сервер выполняем в консоле сервера команду rz
:
$ ssh user@remote-server.com
user@remove-server.com:~$ rz
Выскочит окошко Mac OS для выбора файла, который вы хотите отправить на удаленный сервер. Выбираем, отправляем. Файл пишется в директорию, из который мы вызвали rz
.
Для скачивания файла — выполняем в консоле сервера команду sz filename.ext
:
$ ssh user@remote-server.com
user@remove-server.com:~$ sz database.sql apache.log
На локальной машине опять выскочит окошко Mac OS на этот раз для выбора папки, куда следует сохранить файлы. Выбирем, скачиваем. Имейте в виду, что если в выбранной вами папке уже есть файл с таким же именем, то он будет молча перезаписан — будьте осторожны!
Вот такой простой и удобный способ работы с файлами на сервере не покидая консоли и не открывая новую сессию с scp
. Удачного вам администрирования! :)
Комментарии к этой записи отключены.