LINUX.ORG.RU

Сообщения Matisse

 

Исключение папок в Bareos

Всем привет. Не получается настроить исключение директорий из бэкапа для bareos. Требуется чтоб те не попадали в бэкап. Мои настройки:

FileSet {
  Name = "test"
  Include {
    Options { 
      Signature = MD5
      Compression = LZ4
      WildDir = "/opt/*/log/"
      exclude = yes
      noatime = yes
    }
    File = /opt/
  }
}

Пути в этом конфиге как примеры. Смысл в том, что не нужно бэкапить папку log, если такая будет в третьей по счету директории(если считать от корня файловой системы /).К примеру может быть такое:

/opt/приложение1/log/
/opt/приложение2/log/
/opt/приложение3/log/
При данных настройках папка попадает в бэкап. Если делать так - WildDir = «/opt/приложение1/log», то так работает. Где я делаю не так? Спасибо!

 

Matisse
()

Редирект на Apache

Всем привет, подскажите по редиректу пожалуйста. Есть такие виртуалхосты:


<VirtualHost *:80>
    ServerName www.site.ru
    ServerAlias site.ru
    ProxyRequests Off
    ProxyPreserveHost On
    Options +FollowSymLinks
    RewriteEngine On
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    RewriteCond %{HTTPS} off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass / http://ip:port/
    ProxyPassReverse / http://ip:port/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

<VirtualHost *:443>
    ServerName www.site.ru
    ServerAlias site.ru
    SSLProxyEngine On
    SSLEngine On
    SSLCertificateChainFile "/etc/httpd/cert/STAR.ca-bundle"
    SSLCertificateFile "/etc/httpd/cert/STAR.crt"
    SSLCertificateKeyFile "/etc/httpd/cert/private.key"
    ProxyRequests Off
    ProxyPreserveHost On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass / http://ip:port/
    ProxyPassReverse / http://ip:port/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

Как можно уже к этому добавить еще и редирект типо со страницы index1.php на index2.php? Можно ли это дополнительно использовать:

RewriteCond %{REQUEST_URI} ^/index1.php$
RewriteRule ^.*$ https://www.site.ru/index2.php? [R=301,L]
Спасибо.

 

Matisse
()

Парсинг значения на Python

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

#!/usr/bin/python
import os, httplib, urllib, time
api_key = 'fd40a213-552b-4843-8g82-29ce78e217er'
page_id = 'jqn5z3452dhm'
metric_id = 'cxn1222342kv0'
api_base = 'api.statuspage.io'

total_points = (60 / 5 * 24)
for i in range(total_points):
        ts = int(time.time()) - (i * 5 * 60)
        hostname = "my_domain" 
        responset = os.system("ping -c 2 -n " + hostname)
        params = urllib.urlencode({'data[timestamp]': ts, 'data[responset]': responset})
        headers = {"Content-Type": "application/x-www-form-urlencoded", "Authorization": "OAuth " + api_key}

        conn = httplib.HTTPSConnection(api_base)
        conn.request("POST", "/v1/pages/" + page_id + "/metrics/" + metric_id + "/data.json", params, headers)
        response = conn.getresponse()
        print "Submitted point " + str(i + 1) + " of " + str(total_points)
        time.sleep(1)

Соответственно получаю:

--- my_domain ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.199/0.206/0.213/0.007 ms

Соответственно как достать значение 0.007 ? Спасибо!

 

Matisse
()

Скорость загрузки файлов через Apache

Всем привет, подскажите пожалуйста. Есть JAVA приложение, куда запросы идут через Apache как прокси. В это приложение файл размером 6Мб заливается с компа 2 минуты, но если работать через Nginx, то все происходит быстро - за секунды.
Я так понимаю какая-то настройка за это отвечает?Параметр ProxyReceiveBufferSize не помогает. Спасибо!

 ,

Matisse
()

Дублирующий Apache прокси

Всем привет, поделитесь опытом кто с этим сталкивался. Имеется виртуальный сервер с Apache прокси, который имеет кучу виртуалхостов с поддоменами, ведущих на другие сервера. Если он падает, то все приложения недоступны соответственно.
На этот Apache у доменного регистратора есть запись типа *.мой_домен.ru, которая ведет на него. В случае падения самого сервера, можно ли как-то его продублировать на случай падения основного. Как я понимаю, менять ДНС запись не вариант, ибо долго. Нужно ждать обновления ДНС. Как можно подстраховаться?
Спасибо!

 

Matisse
()

Экранирование в переменной для awk

Все привет, подскажите пожалуйста. В Bash мне нужно задать переменную,типа:

i=$(echo "{null=Test, 1=7.5.1}" | awk -F "=" {'print $3'} | awk -F "}" {'print $1'})

Проблема в том, что bash в скрипте понимает $3 и $1 как входные параметры, которых нет. Как это можно исключить? Такое исполнение тоже не катит:

i=`echo "{null=Test, 1=7.5.1}" | awk -F "=" {'print $3'} | awk -F "}" {'print $1'}`
Спасибо!

 

Matisse
()

Несколько обращений в один файл процессами

Всем привет, возник вопрос.
Есть один конфигурационный файл приложения, где важен синтаксис для работы этого приложения. Временами у меня запускается баш скрипт, который вносит в него изменения в нужный мне момент. Но бывает такое, что скрипты запускаются в один момент , делают изменения в файле одновременно, из-за этого они могут нарушить синтаксис. После чего приложение не работает. Можно ли как-то отслеживать сессию работы с файлом этих скриптов, чтоб изменения были по очереди?
Ставить задержку (sleep) в начале скриптов не катит. Так как скрипты разные и могут запускаться в разном порядке.
Спасибо!

 

Matisse
()

Не закрыть 111 порт

Здравствуйте! Возникла необходимость закрыть 111 порт извне на Centos 7. Делал это таким путем:

iptables -A INPUT -p tcp --dport 111 -j DROP
iptables -A INPUT -p udp --dport 111 -j DROP
Но при проверке через nmap получаю:
111/tcp filtered rpcbind
Я понимаю, что статус filtered означает, что трафик фильтруется каким-то firewall, в моем случае через iptables. Но почему не статус closed? С другими портами такой проблемы нет. Спасибо.

 

Matisse
()

Редирект на Apache

Всем привет, не получается простая задача. Хочу сделать редирект с одной страницы на другую с другим поддоменом. Добавляю это:

RewriteEngine On
Redirect 301 /display/тра-та-та/страница http://другой_домен.ru/display/тра-та-та/страница
Но после рестарта Апача ничего не меняется. Так выглядит целиком вертуалхост:
<VirtualHost *:80>
    ServerName www.домен.ru
    ServerAlias домен.ru
    ProxyRequests Off
    ProxyPreserveHost On
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    Redirect 301 /display/тра-та-та/страница http://другой_домен.ru/display/тра-та-та/страница
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass / http://адрес:порт/
    ProxyPassReverse / http://адрес:порт/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>
То есть по факту это 2 одинаковых сайта(одна структура), но на разных доменах. Где я промахнулся? Спасибо.

 

Matisse
()

Монтирование Curlftpfs с ftps

Всем здравствуйте! На одном сервере поднял ftps, теперь с другого сервера через curlftpfs хочу смонтировать папку к этому ftps. Но получаю: curlftpfs -d -v -o ftpfs_debug,ssl ftp://admin:пароль@адрес/ /mnt/ftp/

* Couldn't find host домен in the .netrc file; using defaults
* About to connect() to домен port 21 (#0)
*   Trying адрес... * connected
* Connected to адрес (адрес) port 21 (#0)
< 220 (vsFTPd 3.0.2)
> AUTH SSL
< 234 Proceed with negotiation.
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* NSS: client certificate not found (nickname not specified)
* SSL connection using TLS_DHE_RSA_WITH_AES_128_CBC_SHA
* Server certificate:
* 	subject: CN=тра-та-та
* 	start date: Apr 01 12:17:59 2017 GMT
* 	expire date: Apr 01 12:17:59 2018 GMT
* 	common name: домен
* 	issuer: CN=ра-та-та
> USER юзер
< 331 Please specify the password.
> PASS пароль
< 230 Login successful.
> PBSZ 0
< 200 PBSZ set to 0.
> PROT P
< 200 PROT now Private.
> PWD
< 257 "/"
* Entry path is '/'
* Remembering we are in dir ""
* Connection #0 to host адрес left intact
> QUIT
< 221 Goodbye.
* Closing connection #0
На сам ftps я попадаю без проблем. Не очень понимаю что значит:
Entry path is '/'
* Remembering we are in dir ""
* Connection #0 to host адрес left intact
> QUIT
< 221 Goodbye.
* Closing connection #0

 

Matisse
()

GnuTLS -15: An unexpected TLS packet was received.

Всем здравствуйте! На Centos 7 решил настроить ftps. Но при попытке подключиться через Filezilla получаю ошибку - GnuTLS -15: An unexpected TLS packet was received. Это из-за библиотеки GnuTLS на сервере? Это вижу при подключении:

Трассировка:	CControlSocket::SendNextCommand()
Трассировка:	CFtpLogonOpData::Send() in state 0
Статус:	Определение IP-адреса для мой_домен
Статус:	Соединяюсь с мой_айпи:21...
Статус:	Соединение установлено, ожидание приглашения...
Трассировка:	CFtpControlSocket::OnReceive()
Ответ:	220 (vsFTPd 3.0.2)
Трассировка:	CFtpLogonOpData::ParseResponse() in state 1
Трассировка:	CControlSocket::SendNextCommand()
Трассировка:	CFtpLogonOpData::Send() in state 2
Команда:	AUTH TLS
Трассировка:	CFtpControlSocket::OnReceive()
Ответ:	234 Proceed with negotiation.
Трассировка:	CFtpLogonOpData::ParseResponse() in state 2
Статус:	Инициализирую TLS...
Трассировка:	CTlsSocketImpl::Handshake()
Трассировка:	CTlsSocketImpl::ContinueHandshake()
Трассировка:	CTlsSocketImpl::ContinueHandshake()
Трассировка:	CTlsSocketImpl::ContinueHandshake()
Трассировка:	CTlsSocketImpl::ContinueHandshake()
Трассировка:	TLS Handshake successful
Трассировка:	Protocol: TLS1.2, Key exchange: ECDHE-RSA, Cipher: AES-128-CBC, MAC: SHA1
Статус:	Проверка сертификата...
Статус:	TLS соединение установлено.
Трассировка:	CControlSocket::SendNextCommand()
Трассировка:	CFtpLogonOpData::Send() in state 5
Команда:	USER мой_юзер
Трассировка:	CFtpControlSocket::OnReceive()
Ответ:	331 Please specify the password.
Трассировка:	CFtpLogonOpData::ParseResponse() in state 5
Трассировка:	CControlSocket::SendNextCommand()
Трассировка:	CFtpLogonOpData::Send() in state 5
Команда:	PASS ************
Ошибка:	Ошибка GnuTLS -15: An unexpected TLS packet was received.
Трассировка:	CRealControlSocket::OnClose(106)
Трассировка:	CFtpControlSocket::ResetOperation(66)
Трассировка:	CControlSocket::ResetOperation(66)
Ошибка:	Невозможно подключиться к серверу
Это уже мои настройки?
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
Спасибо!

 

Matisse
()

Fail2ban не добавляет бан в iptables

Всем привет, смотрел уже похожие темы на форуме, но решения для себя не нашел. Настроил fail2ban для ssh:

[sshd]
enabled = true
port = ssh
action = iptables[name=sshd, port=65025, protocol=tcp]
filter = sshd
bantime = 3600
maxretry = 3
И при тесте настроек, вводя специально при авторизации кривые данные, бан не происходит. Видно, что будто он не парсит лог корректно и не видит ошибок входа в логах:
fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     0
|  `- File list:        /var/log/secure
`- Actions
   |- Currently banned: 0
   |- Total banned:     0
   `- Banned IP list:
Хотя проверка говорит, что он что-то видит в логах:

( читать дальше... )

Fail2ban аналогично настраивал на других сервера, и все было хорошо. В чем может быть дело? Спасибо!

 

Matisse
()

Два юзера с uid 0 на сервере

Всем привет, на сервере обнаружил двух юзеров с uid 0, root и какой-то tcp(tcp daemon). Как я понимаю нулевой uid только для рута, но их почему-то 2. При попытке сменить uid у tcp, получаю ошибку мол этот юзер использует процесс 1. А это же главный процесс в системе. Соответственно его и не изменить. Сразу мысли что кто-то хакнул, так как этого юзера я не создавал, и по истории видно что сегодня у него был изменен пароль. Вопрос, как быть? Как мне сменить uid? В моем понимание такого не должно быть. Спасибо!

 

Matisse
()

Организация прокси на Apache

Всем привет, возник вопрос. Имеется один виртуальный сервер, где крутится только Apache, который проксирует запросы на другие физ. сервера, которые тоже имеют Apache. На этих физ. серверах работают java приложения, которые имеют порты, по которым можно достучаться к приложению из вне по http.

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

У меня возникло опасение, что из-за данной цепочки может проседать скорость отклика приложений. Спасибо!

 

Matisse
()

Автоматический ввод пароля для pure-ftpd через bash

Всем привет, требуется автоматизировать процесс при создании виртуальных юзеров для pure-ftpd через bash. Написал команду:echo «$PASSWORD\n$PASSWORD\n» | pure-pw passwd user. Пароль в виде переменной подставляется. Но при запуске скрипта все равно заставляет писать 2 раза пароль. Почему так может быть? Cпасибо!

 ,

Matisse
()

Монтирование через fstab

Всем привет, при настройке sftp мне пришлось в личных целях делать монтирование локальных папок в роли ссылок. Так как используя sftp, который не понимает созданные ссылки обычным путем (ln -s ....). А монтирование типа (mount --bind папка папка) прокатывает. Вопрос, я не могу нормально прописать настройку в fstab, чтоб при рестарте сервера монтированные папки не пропадали. Вроде как можно нужную строку смонтированной папки из /etc/mtab вставить /etc/fstab, но это не помогает. Очень много док по монтированию удаленных папок, а вот с локальной что-то затык. Может кто подсказать, спасибо!

 ,

Matisse
()

Не открыть порт

Всем привет, такая проблема, что не открыть нужный мне порт (Centos 6). При том условии, что iptables и selinux выключены. К примеру мне нужен 3000. Соответственно nmap показывает: Other addresses for localhost (not scanned): 127.0.0.1 PORT STATE SERVICE 3000/tcp closed ppp Далее использовал уже netstat:

[root@CentOS-68-64-minimal]# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 *:ssh                       *:*                         LISTEN      
tcp        0      0 cloud1:ssh                  8.99.21.130.bc.googl:44125 SYN_RECV    
tcp        0      0 localhost:postgres          *:*                         LISTEN      
tcp        0      0 localhost:smtp              *:*                         LISTEN      
tcp        0     40 cloud1:ssh                  114.10.221.176:56995 ESTABLISHED 
tcp        0      0 *:ssh                       *:*                         LISTEN

И таких портов много, не понимаю что их закрывает.Сможете подсказать ошибку мою? Спасибо!

 

Matisse
()

Pdflush грузит ядро на 100%

Друзья, всем здравствуйте! Кто-нибудь встречался с проблемой, когда процесс pdflush грузит ядро проца на 100% ? Имею несколько серверов под Centos 6, которые выполняют одинаковые действия, но на одном из них такая ерунда. Понимаю, что pdflush отвечает за запись данных из кеша на диск. Сбрасывал кеш и свап, без результата. Встречал информацию, что причина в битых секторах на диске.

 

Matisse
()

Парсинг с помощью xmlstarlet

Друзья, здравствуйте! Подскажите по командам утилиты xmlstarlet. Имеется конфигурационный файл Apache httpd.conf, где есть куча записей типа: <VirtualHost :*80> ServerName test.ru ... </VirtualHost> Соответственно там свои домены у каждой из них. Периодически требуется удаление этих записей, и хочется это сделать через bash-скрипт. Возможно как-то парсить с помощью этой утилиты нужную мне запись и удалить ее? При этом не задеть остальные. Как входные данные можно использовать значение в пункте ServerName. К примеру пробовал через grep, но конструкция была не надежной.

 

Matisse
()

Как вытащить текст из файла (sed,grep или awk)?

Всем,привет! Мне для bash скрипта требуется, чтоб некая команда могла вытащить нужное слово из файла и вывести его на экран, предварительно я знаю строку где это слово(или фраза) находится. К примеру с использованием sed: sed 'номер_строки!d' /путь_к_файлу, но этим я увижу строку целиком. Грубо говоря, в своем случае, хочу достать слово «site» из строчки - cd /opt/atl/site/bin . Заранее спасибо!

 

Matisse
()

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