Для установки Debian 6 (или 6 LTS) вам необходимо использовать http://archive.debian.org ; например. в вашем sources.list
:
deb http://archive.debian.org/ squeeze main contrib non-free
deb http://archive.debian.org/ squeeze-lts main contrib non-free
Что касается вашей разглагольствования, то, хотя я понимаю ваше разочарование, это проблема затрат: хранение релиза в сети главного зеркала требует места для хранения (и, следовательно, денег , косвенно), и создает ожидания поддержки, которые не могут быть выполнены в рамках существующей LTS (или проекта в более общем плане).
telnet
ожидает tty на своем стандартном вводе, но timeout
убирает его.
Если вы действительно настаиваете на использовании telnet, вы можете сделать это, добавив опцию --foreground
к timeout
, как в:
output=$(timeout --foreground --signal=9 3 telnet 1.2.3.4 1234 2>&1 | grep "something")
Кроме того, если вы можете иметь nc
в своей системе, вам лучше использовать его для своих целей:
output=$(timeout 3 nc 1.2.3.4 1234 | grep "something")
Если ни nc
, ни timeout --foreground
вам не подходят, тогда вам действительно нужна альтернатива telnet, которая не требует tty.
Я вижу, вы пометили свой вопрос bash
, чтобы вы могли использовать собственные сетевые возможности Bash, и поэтому ваша строка может выглядеть как:
output=$(timeout 3 cat < /dev/tcp/1.2.3.4/1234 | grep "something")
Если даже cat
не подходит, вы можете заменить его одним скриптом -в Bash, как в:
output=$(timeout 3 stdbuf -oL bash -c 'while read line ; do echo "${line}" ; done < /dev/tcp/1.2.3.4/1234 | grep "something"')
Надеемся, что в вашей системе доступен как минимум stdbuf
(, являющийся частью стандартного пакета coreutils ).
В этом последнем варианте, однако, обратите внимание на ваше регулярное выражение grep :, если у вас есть одинарные -кавычки, вам нужно избежать их, сначала выйдя из основной пары одинарных -кавычек.
Это необходимо также, если вам нужно передать переменные (, например, имя хоста и/или номер порта )из вашей оболочки в один скрипт -лайнера. Например:
hostname=1.2.3.4
portnumber=1234
output=$(timeout 3 stdbuf -oL bash -c 'while read line ; do echo "${line}" ; done < /dev/tcp/'"${hostname}"'/'"${portnumber}"' | grep "something"')
Здесь я предполагаю, что значениям ${hostname}
и ${portnumber}
можно доверять, т. е. они предоставлены вами или другими надежными источниками, которые не дадут незаконных, недействительных или опасных значений.
Это стандартная ошибка, которая не перенаправляется (, когда ваша ссылка не работает )! Это решит вашу проблему, потому что стандартная ошибка перенаправляется на стандартный вывод.
output=$(timeout --signal=9 3 telnet 1.2.3.4 1234 2>&1 | grep "something")