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

Материал из Linux Wiki
Перейти к навигацииПерейти к поиску
(добавил определение протокола)
Строка 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'
}