Вы не настроили (или попытались использовать), Прокси HTTP, ни туннель ssh. Вместо этого Вы использовали перенаправление портов по ssh.
Порты Forwarding TCP не работают на HTTP. Посещение URL HTTP использует домен URL в двух различных точках. 1 - чтобы найти, что IP-адрес отправляет сообщения в. 2 - для заголовок Хоста в сообщении HTTP. Это позволяет одному IP-адресу служить веб-сайтам для нескольких доменов.
Таким образом, когда Вы посещаете http://localhost:9999/
, сообщение HTTP включает строку заголовка Host: localhost:9999
. Веб-сервер GNU не служит названному веб-сайту localhost:9999
, и запрещает доступа (403).
(Эти 403 легальны спецификацией. В теории, 403 является немного недобрым, и необходимо предпочесть 400 с сообщением. Лично я использовал 403 на моем тривиальном сайте DynDNS. Не для безопасности согласно спецификации, но потому что ЗАПРЕЩЕННЫЙ такой хороший сильный сигнал для поиска и устранения неисправностей. Надо надеяться, это даже достаточно сильно для отклонения впечатления, что мой веб-сервер прервал их (в случае устаревшего кэш DNS, например)).
Удобный подход должен использовать опцию "динамического перенаправления портов" SSH -D
, который настраивает прокси SOCKS. К сожалению, wget не имеет опции для прокси SOCKS (curl
делает хотя).
Если нет расширения в имени файла:
for i in secondfolder/IM_* ; do mv "$i" "${i%_[0-9]*}_$[10#${i##*_}+2048]" ; done
-121--133496- Здесь основной способ сделать что-то подобное с помощью сценария оболочки и awk.
Этот пример сценария является достаточно явным для вашего конкретного случая, его использование второго поля в имени файла является допустимым целым числом. И надеется, что в именах файлов нет случайных подчеркиваний. Более общий сценарий подтверждает, что поле 2 является просто числами, и делает разделитель полей параметром. Также предполагается, что расширение файла отсутствует (например, .img или .png)
#!/bin/sh WORKDIR=/(Directory where the files to be renamed are) NUM2ADD=2048 cd $WORKDIR echo "Old File New File" ls IM_* | while read i do newfile=`echo $i | awk -F_ -v incby=$NUM2ADD '{t=$2 + incby;printf "IM_%s",t;}'` echo $i $newfile # after a dry run to test, replace 'echo' with 'mv' onces your sure of the result. done
Поскольку наличие расширения файла достаточно вероятно, можно изменить строку awk на:
newfile=`echo $i | awk -F[_.] -v incby=$NUM2ADD '{t=$2 + incby; printf "IM_%s.%s",t,$3;}'`
Это сохраняет расширение файла и использует _ подчеркивания и точку в качестве разделителей полей.
-121--133498- При экспорте LC_ALL=C
я фактически избавился от предупреждения.
Это скорее обходной путь (так как LC_ALL также категорически не рекомендуется), но я предполагаю, что причина такого поведения заключается в предположениях nix о языковых стандартах в системе, которые не применяются к openSUSE.
По-видимому, в nix существует проблема. Существует проблема на github с предлагаемым обходным решением путем установки переменной LOCALE_ARCHIVE
.
Если у вас уже установлен nix, просто сделайте:
nix-env -i glibc-locales
И в профиле bash:
export LOCALE_ARCHIVE="$(nix-env --installed --no-name --out-path --query glibc-locales)/lib/locale/locale-archive"