Заметки в категории «Система» (страница 3)

Редирект на другой URL с помощью mod_alias

В HTTP-сервере Apache для редиректов в основном используется mod_rewrite . Без сомнения, это очень мощный инструмент. Для редиректа с одного адреса на другой я чаще всего применяю mod_alias.

Для редиректа используется директива Redirect или RedirectMatch.

Первым опциональным аргументом идёт HTTP-статус код. Если он не задан явно, то считается равным 302 (временный редирекс). Вместо цифровых кодов можно применять ключевые слова: permanent (301), temp (302), seeother (303), gone (410). Технически, в качестве кода статуса можно использовать любое допустимое значение.

Redirect permanent /one /two

Следующими параметрам идут старый путь и новый адрес. Новый адрес может быть как в пределах текущего домена, так и полным URL включая протокол.


Redirect /path/file.txt /assets/data/file.txt
Redirect 301 /report-2013.pdf http://example.com/reports/2013/report.pdf

Итак, директивы mod_alias выглядят гораздо проще и понятнее по сравнению с аналогами в mod_rewrite и прекрасно подходят для простых редиректов.

Оставте свой комментарий

Загрузка всех страниц сайта из sitemap.xml

Если у сайта есть карта в виде файла sitemap.xml, то все страницы, перечисленные в ней, можно загрузить с помощью комбинации нескольких консольных команд.

curl -s http://noteskeeper.ru/sitemap.xml | \
  grep '<loc>' | \
  sed 's/^.*\(http[^<]*\).*$/\1/' | \
  xargs curl >/dev/null -s
  1. Первой командой curl мы загружаем карту сайта.
  2. Затем находим в ней все теги <loc> , которые содержат адреса страниц, командой grep.
  3. Извлекаем URL из найденных тегов командой sed.
  4. Вызываем команду curl для каждой страницы.

В моём примере выполнение загрузки происходит «молчаливо» (ключ -s) и загруженные данные сразу же отправляются в /dev/null.

Комментарии к заметке: 4

Как удалить мета-данные из m4a

В итернете часто можно найти музыку с пометкой «iTunes Edition». Когда их добавляешь в iTunes, то трек помечется как «купленный» и в информации о треке указан email покупателя. С этим жить можно, но если хочется удалить такую информацию без перекодирования трека, то поможет ffmpeg.

ffmpeg -y -i in.m4a -c:a copy -map a -map_metadata:g -1:g -map_metadata:s:a -1:g out.m4a

Набор этих параметров заставляет ffmpeg копировать аудио-поток из одного файла в другой. Все остальные мета-данные будут удалены.


for file in *.m4a; do ffmpeg -y -i "${file}" -c:a copy -map a -map_metadata:g -1:g -map_metadata:s:a -1:g "_${file}"; done

Эта комбинация команд позволит очистить от мета-данных все m4a файлы в текущей директории.

PS: Восстановить правильные названия треков можно с помощью утилиты MusicBrainz Picard.

Комментарии к заметке: 1

Ограничение скорости загрузки по сети

Мне для тестирования бывает нужно ограничить скорость HTTP-трафика для проверки того, как ресурс работает в тех или иных условиях.

Для этих целей я написал на Node.js прокси-сервер, который выполняет одну простую задачу: пропускает через себя HTTP-трафик, лимитируя скорость до указанного значения.

Устанавливается он в систему с помощью npm:

npm install -g throttle-proxy

И запускается командой:

throttle-proxy

По-умолчанию, сервер будет слушать подключения на порту 3128 и ограничивать скорость до 100 тысяч байт в секунду. Эти значения можно поменять с помощью соответствующих параметров при запуске сервера.


throttle-proxy --speed 50000 --port 9999

Остановить прокси-сервер можно комбинацией клавиш Ctrl+C в консоли, где он запущен.

Не забудьте только указать адрес 127.0.0.1 и порт 3128 (или выбранный вами порт) в настройках системы в качестве HTTP-прокси сервера.

Исходный код доступен на GitHub — throttle-proxy

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

Комментарии к заметке: 4

Повседневные задачи для команды OpenSSL

Мне порой бывает нужно закодировать содержимое файла в base64 или наоборот раскодировать. В этом случае выручает команда openssl. Она, скорее всего, уже установлена в большинстве ОС. И 100% есть в Windows, если вы пользуетесь Git.

Содержимое файла кодируется следующей командой

openssl base64 <file.bin >file.base64

Если в выходных данных не нужны переносы строк, то их легко можно убрать

openssl base64 <file.bin | tr -d '\n' >file.base64

Декодируется файл аналогично с дополнительным ключом -d

openssl base64 -d <file.base64 >file.bin

Вообще, команда openssl – это многофункциональный комбайн. Он может создавать ключи и сертификаты для подписи и шифрования, вычислять контрольные суммы (message digests), шифровать и расшифровывать данные, проверять подпись, тестировать SSL/TLS клиенты и серверы.

Так, например, можно подсчитать md5-сумму файла

openssl md5 <file.bin

или строки текста

echo "Hello" | openssl md5
Оставте свой комментарий