Самый простой и безопасный вариант скопировать файл с одного сервера на другой — это использовать команду scp:

scp file.txt user@host:/path/file.txt

# копирование локального файла на сервер

Для того, чтобы скопировать файл с сервера на локальный комп:

scp user@host:/path/file.txt file.txt

# то же самое, только наоборот

Для авторизации лучше использовать ключи:

scp -i ~/.ssh/id_rsa.pub file.txt user@host:/path/file.txt

# безопасное копирование, без пароля

Чтобы скопировать данные с одного удаленного сервера на другой:

scp user@host_1:/path/file.txt user@host_2:/path/file.txt

# При этом данные будут переданы напрямую с сервера на сервер

Альтернатива scp

В некоторых случаях, когда между серверами/компьютерами не настроена авторизация, использование scp может оказаться неудобным. Ну долго настраивать, а это только один разик. Такое часто бывает, например, при необходимости делать разовый обмен файлами между серверами:

  • Аналитические выгрузки с баз данных и отправка данных на компы аналитиков или BI системы.
  • Загрузка на сервер временного файла, который сгенерирован локально.
  • Сбор со всех серверов файлов определенного типа и консолидация в едином месте (например, сбор access.log с нескольких узлов).

Мы юзаем bashupload.com. Сервис позволяет быстро загрузить файлы с командной строки и выгрузить любым удобным способом:

curl https://bashupload.com/name.txt --data-binary @file.txt

# загрузка файла с командной строки на bashupload.com

name.txt — это имя файла, под которым будет доступен загруженный файл на сервер. file.txt — это имя локального файла, который нужно загрузить.

После загрузки, в консоли видно путь и команду для скачивания:

Uploaded 1 file, 23 bytes

wget https://bashupload.com/iq7Kv/name.txt

# Скачать можно сразу после загрузки, в т.ч. в браузере или на мобильном устройстве

Файл хранится на сервере 7 дней, и его можно качать неограниченное количество раз. В случае, если загружаемые данные критичны к безопасности, файлы стоит шифровать перед загрузкой:

gpg -ac -o- file.txt | curl https://bashupload.com/encrypted.txt --data-binary @-

# После скачивания, файл нужно будет расшифровать тем же методом

Кроме этого, в сервисе есть две удобные возможности:

Дописывание содержимого файла

В случае, если вы консолидируете однотипные файлы (например, логи) с нескольких серверов, достаточно загрузить файл с первого с заголовком feed: 1:

curl "https://bashupload.com/access.log" -H "feed: 1" --data-binary @access.log

# инициализация дописывания файла

А после — использовать инструкцию на остальных серверах для дописывания файла:

Fed 39945 bytes to access.log on "xDRD" key
Total feed size 39945 bytes

wget https://bashupload.com/xDRD/access.log

To continue feeding more data to this file use: 
curl "https://bashupload.com/access.log" -H "feed-key: xDRD" --data-binary @access.log

# Команда для консолидации загружаемых файлов в один

В любой момент времени можно будет скачать консолидированный файл:

wget https://bashupload.com/xDRD/access.log

# Скачивание консолидированного файла

Перезаписывание файла

Если у вас, как и у нас, бывает необходимость делать различные выгрузки для команд (например, выгрузка пользователей для маркетинга по определенному критерию) — вам приходилось изобретать метод доставки и обновления этих данных. Мы используем связку bashupload.com + Google Spreadsheets для подобных задачи.

Чтобы загрузить обновляемый файл, необходимо добавить заголовок rewrite: 1 при загрузке:

curl https://bashupload.com/data.csv --data-binary @data.csv -H "rewrite: 1"

# Заголовок, открывающий режим перезаписи загружаемого файла

Чтобы перезаписать файл с новым содержимым, нужно использовать инструкцию из результата загрузки:

curl "https://bashupload.com/CpmjE/data.csv" -H "rewrite: 1" --data-binary @data.csv

# Последующая перезапись файла

Как видно, для перезаписи указывается путь с ключом. Ну и этот файл постоянно доступен для загрузки и может быть использован в IMPORTDATA для Google Spreadsheets.

Зарепортить баги и закоментить улучшения можно в гитхабе. Больше инфы по использованию также там.

TL;DR

Используйте временное хранилище bashupload.com, когда неудобно или нельзя использовать scp.