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