Метка: ubuntu
Как увеличить размер диска в Proxmox VE: пошаговое руководство
Виртуализация стала неотъемлемой частью современной ИТ-инфраструктуры, и Proxmox VE — одна из самых популярных платформ для управления виртуальными машинами. Однако при активном использовании ресурсов часто возникает необходимость расширить дисковое пространство виртуальной машины. Хотя сам Proxmox позволяет легко увеличить объём виртуального диска через веб-интерфейс, этого недостаточно: операционная система внутри виртуальной машины не всегда автоматически распознаёт новые размеры. В этой статье мы рассмотрим, как корректно расширить раздел файловой системы после увеличения диска в Proxmox VE.
Отладка заголовков в Nginx
Сервер Nginx позволяет передавать заголовки при проксировании через директивы:
Синтаксис: proxy_set_header поле значение;
Умолчание:
proxy_set_header Host $proxy_host;
proxy_set_header Connection close;
Контекст: http, server, location
Выглядит в конфиге это примерно так:
location / {
proxy_pass http://headers;
proxy_set_header X-FORWARDED-FOR $remote_addr;
}
Я столкнулся с тем, что не всегда и не все заголовки передаются, но об этом позже. Отсюда возник вопрос: каким образом определить на проксирующем nginx, какие переданы заголовки.
Настройка мониторинга php-fpm через Datadog
Для настройки мониторинга необходимо внести некоторые изменеия в pool, который собираемся мониторить, настройку хоста в nginx и подключить конфиг агенту datadog.
Для начала откроем файл пула и раскоментируем следующие строки:
pm.status_path = /status
ping.path = /ping
ping.response = pong
Используем в Ubuntu sudo без пароля
Если вам нужно часто управлять вашим домашним компьютером или сервером, может надоедать постоянно вводить пароль с командой sudo. Решение этого вопроса нашлось на http://askubuntu.com/a/147265.
Достаточно открыть терминал и ввести команду:
sudo visudo
после чего в последний раз ввести пароль.
Эта команда откроет конфигурацию sudo, в которую внизу нужно прописать:
username ALL=(ALL) NOPASSWD: ALL
где username - это имя вашего пользователя.
Запуск тестов в selenium на сервере без монитора

Перед каждым разработчиком рано или поздно встает вопрос тестирования его кода. При чем unit-тестирование покрывает не всегда и не все нужды. Для более полного обеспечения качества создаваемого проекта приходится прибегать и к приемочному тестированию.
На сегодняшний день дела обстоят более менее не плохо. Есть набивший многим оскомину селениум. Есть Mink Константина Кудряшова, который позволяет писать функциональные/приемочные тесты в достаточно дружелюбном стиле. И при чем в качестве драйвера использовать не только селениум, среди перечня доступных есть вполне достойный безголовый zombie. Но, после моих тестов наиболее точным тестирование оказалось только через селениум. Зомби по каким-то причинам выкидывал ошибки при парсинге jquery.
Но, минус селениума в том, что ему для работы нужен браузер (по традиции firefox). А firefox требует для запуска дисплей. А на моем сервере, который используется для Continuous Integration монитора нет (это же сервер). Решение было найдено в лице утилиты Xvfb, представляющей из себя виртуальный дисплей.
Переименовать файлы в нижний регистр
Переименовать все файлы в текущей и во всех вложенных директориях в нижний регистр:
find ./ -type f | awk '{ print $1 " " tolower($1) }' | xargs -L 1 mv
Харитон Мизгирь пишет: Чтобы обрабатывались пути с пробелами и проч. непечатностями надо использовать конструкцию типа:
find -print0 | xargs -0
Объяснение по поводу параметра -print0 (find'а) и -0 (xargs'а)
В имени файла может попасться символ, который требует экранирования при обработке (single or double quotes, spaces or newlines). print0 заставляет выводить список найденных файлов разделяя их через нуль-символ (\0, в духе языка C, где он используется для декларации конца строки). xargs тоже должен быть готов к такому разделителю, для этого служит -0.
find и xargs по разному себя ведет когда ищут из текущей директории или когда ищут из родительской (в родительской прекрасно обрабатывал директории с пробелами и любыми кавычками, которые находились в дочерней директории). newlines не обрабатывается нигде.
Обновление Nginx 1.1 на 1.6 в Ubuntu 12.04
Решил обновить Nginx на последнюю стабильную версию, т.к. по умолчанию в Ubuntu 12.04 все еще лежит старьё Nginx 1.1, а на официальном сайте предлагают уже 1.6 и 1.7
Казалось бы, всё просто, как рекомендует официальный сайт:
Скачиваем сертификат и устанавливаем в систему:
wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
Потом открываем /etc/apt/sources.list
sudo nano /etc/apt/sources.list
и вставляем в конец файла
deb http://nginx.org/packages/ubuntu/ precise nginx
deb-src http://nginx.org/packages/ubuntu/ precise nginx
Далее выполняем обновление и получаем готовый свеженький Nginx:
sudo apt-get update
sudo apt-get dist-upgrade
Но, не тут-то было. Вместо профита получаем ошибку
Перегрев процессора из-за 100% загрузки gvfsd-metadata
На улице наконец установились теплые деньки... так же, как и у моего ноутбука vaio. При чем до такой степени, что печатать что-либо стало не возможно, т.к. руки постоянно потели.
Запустив в консоли команду top, увидел, что почти все ресурсы процессора съедает программа gvfsd-metadata:
~$ top
top - 19:10:37 up 1:22, 2 users, load average: 1,83, 1,89, 1,91
Tasks: 234 total, 2 running, 232 sleeping, 0 stopped, 0 zombie
%Cpu(s): 29,6 us, 4,0 sy, 0,0 ni, 61,6 id, 4,3 wa, 0,0 hi, 0,5 si, 0,0 st
КиБ Mem: 8157760 total, 5089708 used, 3068052 free, 328028 buffers
КиБ Swap: 8368124 total, 0 used, 8368124 free, 1725240 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3299 username 20 0 120m 5032 2856 R 77,1 0,1 32:44.84 gvfsd-metadata
3681 username 20 0 1858m 734m 54m S 17,0 9,2 14:10.69 firefox
1715 root 20 0 207m 74m 40m S 7,0 0,9 4:04.32 Xorg
3310 username 20 0 738m 21m 13m S 6,3 0,3 3:53.82 unity-panel-ser
3312 username 20 0 342m 5448 3588 S 4,7 0,1 2:59.51 hud-service
3107 username 20 0 1607m 128m 56m S 4,3 1,6 1:46.43 compiz
Загуглив этот процесс, увидел, что проблема достаточно распространенная. Нашел решение на ubuntu-форумах. Предлагается всего лишь почистить директорию с данными этого процесса:
~$ rm -rf ~/.local/share/gvfs-metadata
После выполнения команды становится значительно легче работать, а кулер уже шумит не так громко. Не знаю, на сколько это решение окончательное, буду мониторить в ближайшие дни, и если проблема всплывет вновь, придется искать другое решение.
Снимаем блокировку с /var/lib/dpkg/
Если во время установки или обновления программ через apt-get процесс был прерван нажатием Ctrl+Z, то при следующей попытке запуска apt-get получим ошибку:
E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock - open (11: Ресурс временно недоступен)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?
Хорошо, что можно разблокировать каталог всего одной командой. А избавиться от этой проблемы просто, достаточно выполнить команду:
sudo fuser -vki /var/lib/dpkg/lock
Должно получиться примерно так:
ПОЛЬЗ-ЛЬ PID ДОСТУП КОМАНДА
/var/lib/dpkg/lock: root 4581 F.... dpkg
Завершить процесс 4581? (y/N) Y
Нажимаем «Y» и наслаждаемся нормальной работой apt-get. Я думаю многие пользователи знали об этой команде, но некоторые новички единственным выходом считали — sudo reboot.
Конвертация сертификата cer в pem
Бывает, что предоставляют разработчику ssl-сертификат в виде *.cer файла, а использовать его надо в виде *.pem файла.
Сконвертировать файл в ubuntu поможет команда:
openssl x509 -in certnewb.cer -inform DER -out certnewb.pem -outform PEM