Скачивание файлов через удаленный сервер без прокидывания портов

Материал из Linux Wiki
Версия от 16:41, 20 февраля 2009; Rain (обсуждение | вклад) (добавил определение протокола)
Перейти к навигацииПерейти к поиску

Вариант закачивания файлов с использованием удаленных серверов (практически любого количества) по SSH без использования прокидывания портов или настройки прокси-серверов. Если нет авторизации по ключам - добавить -t в первом случае, но тогда не будет прогресс-бара от wget'a. Если указан не веб-адрес (не http или ftp) - идет скачивание файла на удаленном сервере (например, getremotely /home/vasya/file123).


getremotely() {
[[ "${1%%:/*}" == 'http' || ${file%%:/*} == 'ftp' ]] && cmd='wget -O -' || cmd='cat'
ssh -C user1@host1 "ssh -C user2@host2 '${cmd} "${1}"'" > "${1##*/}"
echo 'Download complete'
}