Скачивание файлов через удаленный сервер без прокидывания портов: различия между версиями
Материал из Linux Wiki
Перейти к навигацииПерейти к поиску
Rain (обсуждение | вклад) (добавил определение протокола) |
Rain (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
<source lang=bash> | <source lang=bash> | ||
getremotely() { | getremotely() { | ||
[[ "${1%%:/*}" == 'http' || ${file%%:/*} == 'ftp' ]] && cmd='wget -O -' || cmd='cat' | [[ "${1%%:/*}" == 'http' || "${file%%:/*}" == 'ftp' ]] && cmd='wget -O -' || cmd='cat' | ||
ssh -C user1@host1 "ssh -C user2@host2 '${cmd} "${1}"'" > "${1##*/}" | ssh -C user1@host1 "ssh -C user2@host2 '${cmd} "${1}"'" > "${1##*/}" | ||
echo 'Download complete' | echo 'Download complete' |
Версия 16:45, 20 февраля 2009
Вариант закачивания файлов с использованием удаленных серверов (практически любого количества) по 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'
}