Копирование файлов по SSH

Традиционным способом копирования файлов по SSH является команда scp.

scp *.js user@remote-host.com:~/folder/

Все файлы с расширением js из текущей папки будут скопированы на сервер remote-host.com в папку folder в домашней директории пользователя user.

Можно так же копировать папку вместе со всеми файлам и вложенными папками:

scp -r src user@remote-host.com:~/folder/

А теперь нетрадиционный способ:


tar -c src | ssh user@remote-host.com "cd ~/folder/ && tar -x"

Папка src архивируется утилитой tar . Затем этот архив передается на сервер по SSH, где выполняется команда cd с указанными параметрами и распаковывается полученный архив.

Пример чуть сложнее:


npm run build && \
DEPLOY_TARGET=$(date +%Y%m%d-%H%M%S) && \
tar -c build | \
ssh -t mista_k@slim.local \
  `cd /var/www && \
  mkdir -p $DEPLOY_TARGET && \
  tar -x -C $DEPLOY_TARGET --strip-components 1 -v && \
  ln -sfn $DEPLOY_TARGET build`