LINUX.ORG.RU

Избранные сообщения Funny_sailor

Помогите со скриптом

Форум — General

Доброго времени суток, осваиваю Zabbix API. Есть скрипт на bash:

curl -i -k -X POST -H 'Content-Type: application/json-rpc' -d '
{
    "jsonrpc": "2.0",
    "method": "host.exists",
    "params": {
        "host": "Zabbix Server"
    },
    "auth": "$qwerty",
    "id": 1
} ' http://192.168.0.1/api_jsonrpc.php

Как сделать так, чтобы передавались данные из переменной $qwerty? Понимаю что туплю, но не могу понять где. Пробовал менять кавычки и экранировать - бесполезно.

Спасибо.

 , ,

nixit
()

nginx + apache + php-fpm балансер

Форум — General

Есть схема: nginx -> apache -> php-fpm Разрабы не могут отказаться от апачевских фитч. Апач с php-fpm работает через mod_fastcgi. Возникла неободходимость балансить на несколько php-fpm сокетов. 1) в инете не нашёл как такое осуществить 2) не хочется ещё один апач поднимать чтобы балансить через nginx.

Может быть кто-то уже встречал такие связки и балансил. Прекрасно понимаю, что это через жопу, но всё же для опыта.

В апаче подключается так: <IfModule mod_fastcgi.c> AddType application/x-httpd-fastphp5 .php Action application/x-httpd-fastphp5 /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi_test FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi_test -socket /var/run/php5-fpm_test.sock -pass-header Authorization </IfModule>

Заранее благодарен за ваши мозги, они у вас прелестные:) И если будут другие варианты баланса то тоже рад выслушать. От апача отказаться нельзя.

 , , , ,

cvat06
()

Отказоустойчивые решения

Форум — Admin

Подскажите, какие существуют на данный момент отказоустойчивые решения для веб-приложений? Архитектура приложения на данный момент такая - клиент (веб и десктопный) - nginx (отдельный виртуалхост с поддоменом на логическую группу клиентов) - tomcat (одно здоровенное ява-приложение на спринге) - mysql (отдельная база на ту же логическую группу клиентов плюс общесистемная база). Сейчас всё довольно бодро крутится на одном medium-инстансе на амазоне плюс small-инстанс rds (даже без multi-az). Планировалось после раскрутки проекта нарастить мощность и использовать некоторые фичи амазона вроде балансировщика и route 53, но законы и курс доллара вынуждают переезжать в Россию, где хостингов с подобной инфраструктурой нет. Так что надо изобразить что-то минимальное самому.

Вариант 1, классический. Основной сервер с приложением и базой в одном дата-центре, слэйв-база в другом датацентре. В случае падения основного сервера поднимаем резервный в другом датацентре, переключаем dns на него. Простой составит от десяти минут до часа. В особо тяжёлых случаях игнорирования ttl у dns-записей провайдерами - до нескольких часов.

Вариант 2. Round-robin на днсах. Два равноценных сервера в разных датацентрах, mysql в режиме мастер-мастер либо же galera с арбитром. В случае падения одного сервера или датацентра опять слушаем ругань клиентов, но уже вдвое меньше. Опять же, до тех пор, пока не обновятся днсы либо пока не воспрянет упавший сервер/датацентр. Из минусов ещё и то, что само приложение не рассчитано и не тестировалось на параллельную работу, возникают потери сессий и тому подобное непотребство. Но это можно минимально пофиксить, отправляя на nginx'ах одних и тех же клиентов на один и тот же апстрим. Ну и скорость работы при синхронной репликации будет заметно ниже.

Вариант 3, вариация классического. Добавляем перед основным сервером парочку фронт-эндов, этакий недо-cdn. В это случае, имея один сервер приложения в горячем резерве, простой можно свести ко времени таймаута ожидания ответа от апстрима. Но если падает фронт-энд, всё опять же сводится к первому варианту.

Всякие фишки вроде CARP и распределённых файловых систем выглядят интересно, но, как мне кажется, это из пушки по воробьям. Например, чем репликация на уровне базы данных хуже репликации на уровне файловой системы? Файловая система ведь ещё и оверхэд будет давать некоторый.

UPD. Работал всего с двумя российскими хоситнг-провайдерами, у обоих регулярно падала маршрутизация (это не считая иных проблем, напрямую к теме не относящихся).

 

lizard
()

Awesome - разные заставки (фон) на тегах

Форум — Desktop

как сделать?

 ,

GGUseR
()

Тайлинг моей мечты

Форум — Talks

В последнее время занимался немного оптимизацией управления окнами в awesome, и теперь получившейся хренью сил нет охота поделиться. Из интересного есть специальный графически оформленный (да, нужен compton) режим для манипуляции окнами, собственная «полуручная» схема тайлинга, нескучные заголовки с табами.

Видео чтобы не описывать: раз, два.

Конфиги можно потыкать палочкой все там же. Отзывы и мнения приветствуются.

 

Worron
()

авторизация в openvpn по username/pass.

Форум — Admin

Всем привет.
Продолжаю попытки авторизации по username/pass.
Прописано в когфиге следующее:

#for user-pass authentication.
auth-user-pass-verify /etc/openvpn/auth.sh via-file
username-as-common-name
tmp-dir /etc/openvpn/tmp
script-security 3
Вот собственно сам auth.sh(это стыренный из инетов и подправленный мною скрипт):
# cat auth.sh 
#!/bin/bash
USERS=$(cat /etc/openvpn/user.pass)
for i in $USERS
do
if [ "$i" = "$1:$2" ]
	 then
exit 0
	 else
exit 1 
fi
done
Если запустить auth.sh руками, то все ок.
Но вот авторизация с клиента по впн-у никак не проходит.
Вопрос: как клиент передает параметры username и password ?

 ,

dada
()

reboot/shutdown/suspend от пользователя

Форум — Desktop

Gentoo KF5 sddm -systemd

cat .xinitrc
ck-launch-session dbus-launch --sh-syntax --exit-with-session /usr/bin/startkde

$ qdbus org.kde.kded5 /org/freedesktop/PowerManagement CanHibernate
false

qdbus org.kde.kded5 /org/freedesktop/PowerManagement CanHybridSuspend
false


$ qdbus --system org.freedesktop.UPower /org/freedesktop/UPower SuspendAllowed 
Error: org.freedesktop.DBus.Error.AccessDenied
Rejected send message, 6 matched rules; type="method_call", sender=":1.139" (uid=1000 pid=8849 comm="/usr/lib64/qt4/bin/qdbus --system org.freedesktop.") interface="(unset)" member="SuspendAllowed" error name="(unset)" requested_reply="0" destination="org.freedesktop.UPower" (uid=0 pid=3207 comm="/usr/lib/upower/upowerd ")


 , ,

deity
()

Оптимизация nginx: 200k... 150k... 5k... 1k... wordpress... :D

Форум — Web-development

ощщем, ЛОР, пилю очередной тупняк, проходи мимо.

бенчмарк

ab -n 100000 -c 100 -k -H "Accept-Encoding: gzip, deflate" localhost/ 2>&1 | egrep "^(Failed|Requests)"

процессор Pentium G3258 с разгоном до 3.9GHz, остальное не важно. хотите пофапать на хай-лоад?

значит к делу. вот такой конфиг, (сервер _) отлавливает все запросы, которые не подходят под другие хосты.

server {
  listen 80;
  server_name _;

  location = /_.gif {
    empty_gif;
  }
}

ab localhost/_.gif выдаст вам результат в 200000 (двести тысяч!) запросов в секунду. empty_gif это модуль, поэтому такой быстрый.

к сожалению, со статикой картина чуть более печальна. ab localhost/index.html (файлик, что идет вместе с nginx'ом), сообщает о выполнении 125000 тире 150000 запросов в секунду, что тоже не так плохо. то есть, берете свой проект, оборачиваете всю динамику в fastcgi_cache, дабы nginx кэшировал запросы в статику и получаете очень быстрый сайт, мягко говоря.

рецепт успеха

worker_processes 4;
worker_priority -5;

worker_rlimit_nofile 9000;

timer_resolution 100ms;

events {
  use epoll;

  worker_connections 9000;
  multi_accept on;
}

чтобы не расходовать ресурс жесткого диска, I/O, желательно отключить логи, ну или, указать buffer=, да побольше.

error_log /var/log/nginx/error.log warn;

access_log /var/log/nginx/access.log main buffer=64k;
access_log off;
log_not_found off;

очень ресурсоемкая директива

ssi on;

с ней производительность просядет до копеечных 40000 тысяч на статике и на 20% на динамике, что лучше откажитесь от нее вообще. забудьте.

gzip on;

баллада о двух стульях и матери. придется выбирать между процессорным временем и линком. ресурсоемкая операция, производительность сервера страдает на 20%, но зато пропускная способность сети может быть увеличена в 3 раза за счет сжатия трафика.

open_file_cache max=9000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;

с этим думаю ясно, кэш дескрипторов файлов. нужен.

забудьте о существовании if в nginx, не злоупотребляйте location, каждый отнимает много ресурсов.

любой другой ара-тюнинг по вкусу, на самом деле получится что-то вроде экономии на спичках, так например, tcp_nodelay дает разницу всего в 1000 запросов при 200000 к _.gif (empty_gif). посему смотреть нужно строго по ситуации, конкретных советов уже не дам.

теперь от статики к динамике. обязательно установить php opcache.

# curl http://php.net/distributions/php-5.5.23.tar.xz | tar -xJ -v
# cd php-5.5.23
# ./configure --disable-all --enable-opcache
# make build-modules
# install -m 755 modules/*.so /usr/lib/php/extensions
# echo "zend_extension=opcache.so" > /etc/php/conf.d/opcache.ini

хороший прирост в скорости дает Ъ-распараллеливание и правильная настройка. запускать нужно два бэкенда, абсолютно одинаковых, на одном хосте.

upstream php-fpm {
  server unix:/var/run/php5-fpm.sock0 weight=100 max_fails=5 fail_timeout=5;
  server unix:/var/run/php5-fpm.sock1 weight=100 max_fails=5 fail_timeout=5;
}
location ~ \.php$ {
  try_files $uri =404;

  fastcgi_pass php-fpm;
  fastcgi_index index.php;

  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
}

настройка php-fpm'ов /etc/php/pool{0,1}.conf

[global]
log_level = notice
emergency_restart_threshold = 0
emergency_restart_interval = 0
process_control_timeout = 0
daemonize = yes

[pool0]
listen = /var/run/php5-fpm.sock0
listen.owner = www
listen.group = www
listen.mode = 0660

user = www
group = www

pm = static
pm.max_children = 8
pm.max_requests = 500

второй точно такой же

:%s/pool0/pool1

:%s/sock0/sock1

# /usr/sbin/php-fpm --fpm-config /etc/php/pool0.conf
# /usr/sbin/php-fpm --fpm-config /etc/php/pool1.conf
# /usr/sbin/nginx -t && /usr/sbin/nginx -s reload

а теперь получите пятикратный прирост производительности php. вот.

 , ,

Spoofing
()

owncloud и ссылки

Форум — General

Привет,

По дефолту owncloud отдает ссылки вида https://example.com/index.php/s/VaCHiJ6VAP3T5TA, можно ли как-то избавиться от index.php ? :)

 , ,

joy4eg
()

mysql бекап и восстановление большой(150гб) базы.

Форум — Admin

Добрый день. имелась связка slave-master, у мастер накрылся медным тазом рейд коннтролер.
в данный момент слейв работает за обе железки. нагрузка довольно велика.
суммарный размер базы порядка 150гб. все таблици в innodb.
чтобы её сдампить через mysqldump нужно порядка 1часа.
чтобы её залить на новый сервер нужно порядка 2 дней.
а развернуть реплику нужно к концу завтрашнего дня.
даунтайм не должен превышать 30 минут и то в ночное время.

может кто подскажет, как это лучше реализовать. как лучше сделать дампить и залить базу на новый мастер.


может есть сторонний софт для таких целей, а то время разворачивания дампа *.sql через чур долгое.

 , ,

kam
()

Awesome Pro Themes

Галерея — Скриншоты

Переработал серию тем для Awesome 3.5: Pro

Большой модный скриншот в перспективе.

Теперь тема идёт в 4х вариантах:

Нестандартное решение для тегов: пустой - пустой, полузатухший - занятый тег, яркий - фокус, красного/желтого - urgent. В комплекте два вида тегов, как на скриншотах hexagon, а также прямоугольники.

Интегрированный плеер (управление и отображение трека), MPD через mpc/ncmpcpp, но можно управлять и DeaDBeeF'ом, который также умеет отдавать трек и предоставлять управление через cmd.

Кто захочет попробовать, ознакомьтесь с важной информацией.

Пользуясь случаем, всем желаю мира и добра, особенно друзьям пользователям Awesome.

>>> Просмотр (1259x735, 591 Kb)

 

vim
()

Перенос mysql без даунтайма

Форум — Admin

А как ВЫ переносите живой и работающий mysql сервер без даунтайма? :)

//ну или создаете новую реплику :)

 

tazhate
()

Настройка положение окон в соответсвии класса на активном мониторе.

Форум — Desktop

Коллеги, приветствую.

Приобрел второй монитор. Сейчас пока привыкаю мешает одно правило. У меня раньше за каждым тегом были закреплены определенные окна.

Можно ли как-то сделать, чтобы он показывал окно на теге на текущем активном мониторе, а не как написано в конфиге?

Сейчас опция выглядит так:

    { rule = { class = "jetbrains-idea" },
      properties = {tag = tags[1][7] } },

Где первая опция - это номер экрана, 2 - номер тега.

Можно ли номер экрана опустить, чтобы подставлялся «активный» монитор?

upd:

решение:

    { rule = { class = "Chromium" },
    properties = { function(c)
    awful.client.movetotag(tags[mouse.screen][4], c)
    awful.tag.viewonly(tags[mouse.screen][4]) end } },

 , ,

fjfalcon
()

Посоветуйте хорошую книгу по MySQL.

Форум — Development

Простенькие запросы писать могу, надо мочь писать не простенькие.

Точнее, не простенькие тоже могу, но это выливается в адовый, лютый говнокод. Так жить нельзя.

 , ,

Deleted
()

настройка резервного почтового сервера

Форум — Admin

Есть задача настроить безотказную работу электронной почты. взял два сервера. настроил на них связку мастер-слейв ДНС сервер. прописал для почтовых серверов МХ запись. настроил связку postfix+mysql+sasl+postfixadmin. настроил репликацию мастер - слейв для mysql. И уже думал, что почта будет ходить без перебоев. при тестировании выключил основной почтовый сервер, отправил письмо на свой адрес, оно пришло на резервный почтовый сервер. Но когда я запустил основной сервер письмо так и осталось на резервном. подскажите как настроить резервный почтовый сервер. в интернете на этот счет мало что есть.

 ,

Evgen25
()

Архиватор для автоматических бекапов сервера

Форум — Admin

Хочу вот поинтересоваться мнением :)

Насколько я помню, расклад такой:

tar + bzip || gzip || ... отлично склеивает файлы вот уже хз сколько десятилетий и сохраняет права на файлы, но при этом сжимает и информацию о содержимом архива, то есть чтобы даже посмотреть список файлов в архиве, весом 20ГБ надо дождаться пока он весь распакуется.

7zip сжимает лучше, но не сохраняет права на файлы.

Кто как выходит из этой ситуации?

Да, речь идёт о ежедневных бекапах, десятков тысяч файлов и директорий весом около 20ГБ.

 , , ,

Den0k
()

Науч.фант. Сериалов тред

Форум — Talks

Вот закончил смотреть доктора кто, и задался вопросом, чего бы еще посмотреть. Посоветуйте какой-нибудь нф сериал с космическим уклоном.

это я уже видел, можно не советовать:

Звездный путь
Звездные врата
Светлячек
На краю вселенной
Андромеда
Вавилон 5
доктор кто
Звездный крейсер „Галактика“
Лекс
Визитеры

P.S. хотя можно и не только связанные с космосом

P.P.S. linux тут при том, что смотреть я это буду в уютненькой генточке и на няшном smplayer'е

P.P.P.S тут буду записывать посоветованное(+коменты от советовавших)

Самое главное:  Курс по теме «как избавиться от зависимости от сериалов»
Fallen Skies
Alien Nation (его надо смотреть до Farscape)
Dark Skies (не фильм)
Max Headroom (больше киберпанк, чем sci-fi)
Charlie Jade
Pioneer One
Каприка
Black Mirror
This Is Not My Life
ReGenesis
Borealis (пилот, с натяжкой, ибо science почти нет)

 ,

Deleted
()

bash подстановка переменных

Форум — Development
#!/bin/bash
VAR_1="blabla"
VAR_2="blabla"
eval VAR=$VAR_{$1}
echo $VAR

как правильно сделать чтобы при передаче аргумента - цифры, переменной $VAR присваивалось соответствующая переменная например $VAR_1?

В примере выводиться просто аргумент.

 ,

Som
()

Вторая книга после K&R

Форум — Development

Посоветуйте, что читать после K&R?

 ,

int13h
()

Видеоуроки

Форум — General

Уважаемые ЛОР-овцы, решил поделиться сбережениями.
Заливаю на Облако.Мэилру.Объем 181ГБ.
В течении месяца постараюсь залить все.
Линк доступа
https://cloud.mail.ru/public/a267f63f4b38/LESSONS

Список материала :

  • 752K ./Google_Hackers_Guide_v1_0 & Understanding Google Cluster Architecture (PDF)
  • 4.6M ./The MIT Press Beowulf Cluster Computing With Linux 2nd Edition.chm
  • 92M ./Windows_Cluster
  • 142M ./AMP.avi
  • 154M ./LPIC-2 Linux Professional Institute Certification
  • 163M ./Linux Enterprise Cluster CD Contents.zip
  • 195M ./SHELL SCRIPTING IN LINUX
  • 226M ./Linux.CBT.Scripting.Python.iso
  • 253M ./Lynda.com - Up and Running with Google Cloud Platform
  • 275M ./Linux-Real-Time-FISL10.ogg
  • 279M ./Linux.CBT.Scripting.Bash.iso
  • 316M ./Linux.CBT.Scripting.Perl.iso
  • 339M ./Clustering.iso
  • 396M ./ubuntu-books
  • 414M ./Architecting Highly Available Systems on AWS
  • 419M ./Linux.CBT.Scripting.PHP.iso
  • 425M ./MySQL
  • 537M ./LinuxCBT.MemCacheD.Edition-d3x
  • 570M ./CBT Nuggets Cloud Computing
  • 580M ./Код линукс.avi
  • 585M ./AWS Developer Fundamentals
  • 601M ./The_Code-Linux.avi
  • 616M ./LinuxCBT.Parallel-SSH.Edition
  • 659M ./Learning Cloud Computing With Amazon Web Services.iso
  • 702M ./RevolutionOS (Linux story).avi
  • 732M ./LinuxSecurity
  • 738M ./Linux Journal [1994-2010].iso
  • 791M ./26c3-3661-de-coreboot_adding_support_for_a_system_near_you.mp4
  • 837M ./keiso_tssscp.iso
  • 843M ./CBT.Nuggets — Backtrack.&.Kali.Linux [x264] [mkv] [Re-EnCod3r]
  • 878M ./InfiniteSkills.LearningMySQL5
  • 1.1G ./perl.iso
  • 1.4G ./Linux (Ubuntu FreeBSD). Уровень 3. Создание отказоустойчивых кластерных решений
  • 1.6G ./CBT Nuggets - AWS Certified Solutions Architect - Architecting for AWS
  • 1.6G ./CBT Nuggets - AWS Certified Solutions Architect - Foundations
  • 1.6G ./LinuxCBT - CentOS6x Edition
  • 1.8G ./CBT Nuggets - Linux in the Real World
  • 1.8G ./UNIX (LinuxFreeBSD). Уровень 3. Безопасность и взаимодействие с Microsoft Windows
  • 1.9G ./UNIX (Ubuntu FreeBSD). Уровень 3. Взаимодействие с сетевым оборудованием Cisco Systems
  • 2.0G ./CBT NUGGETS LINUX SERIES (VIDEO TUTORIAL)
  • 2.0G ./Red Hat Linux
  • 2.2G ./Hadoop Fundamentals
  • 2.3G ./LinuxCBT Security.iso
  • 2.4G ./Clustering_win.iso
  • 2.6G ./CBT Nuggets - BackTrack and Kali Linux
  • 3.1G ./ICND 1 Cisco
  • 3.2G ./python
  • 3.3G ./Highload
  • 3.7G ./CBT Nuggets - Amazon Web Services - AWS Foundations
  • 4.1G ./YANDEX_LESSONS
  • 5.4G ./Linux_China
  • 6.7G ./Digital Privacy, RFIDs, NSA, Spying & Linux, Torrents [LitZ~Bundle]
  • 7.5G ./The Complete Linux Magazine Archive! 10th Anniversary Issue.iso
  • 9.5G ./17-tech
  • 11G ./Специалист - лучшие видеокурсы по ИТ-технологиям и Веб-Дизайну
  • 15G ./GURU LABS - ENTERPRISE LINUX SYSTEM ADMINISTRATION - GL250
  • 31G ./nokia
  • 41G ./CompTIA

 videolessons,

shgurbanov
()