LINUX.ORG.RU

Сообщения Barz

 

Как вырезать часть пути

В переменной $pathd могут быть разные пути:

/home/user1/config
/home/user1/imap/abc/def/Maildir/blabla/blabla
...
Нужно вырезать только те части пути, которые соответствуют такому шаблону:
echo $pathd | awk '/(^\/home\/.*\/imap\/.*\/.*\/Maildir\/)/{print $0}'
Т.е. из /home/user1/imap/abc/def/Maildir/blabla/blabla Должно получиться /home/user1/imap/abc/def/Maildir/ - все что после Maildir/ нужно отбросить. Команда, которую привел я отображает полный путь, с blabla/blabla Подскажите, как вырезать необходимую часть пути?

 

Barz
()

LVM в томе LVM

Логический том LVM хоста выбран как диск для виртуальной машины (KVM). На этот диск установлена CentOS 7, диск которой разбит так: 1 раздел - /boot, 2-ой раздел полностью под LVM, в котором уже созданы разделы /, /var, ... Все разделы отформатированны в XFS.

Если расширить (увеличить) LVM хоста, то:

1. Не «полетит» ли CentOS 7 виртуалки, точнее данные на его диске?

2. Можно ли будет использовать дополнительное появившееся место на диске VM для расширения, например, раздела /var виртуалки?

Все мои познания подсказывают, что 1 - не «полетит», и 2 - можно, но перед испытаниями хотелось бы услышать ваше мнение, чтобы не тратить время на восстановление VM.

 

Barz
()

Маршрутизация в CentOS 7 и VM

На хост сервере (CentOS 7) установлена одна виртуальная машина (KVM). Для неё создан отдельный мост br1. Пинг между хостом и гостем (то же CentOS 7) проходит без проблем, но вот пинг от гостя в интернет - не работает (зависает). Судя по счетчикам в правилах iptables, ping проходит от br1 в eth0 (pkts bytes - 251 21014 и растут, пока запущен пинг на госте), но ответ не возвращается (pkts bytes - 0 0).

pkts bytes target     prot opt in     out     source               destination
 0     0 ACCEPT     all  --  eth0 br1   0.0.0.0/0            0.0.0.0/0
251 21014 ACCEPT     all  --  br1  eth0  0.0.0.0/0            0.0.0.0/0

Настройки моста (Хост):

/etc/sysconfig/network-scripts/ifcfg-br1:
DEVICE=br1
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=static
# IP Хоста
IPADDR=x.y.z.26
NETMASK=255.255.255.255
STP=off
DELAY=0

Настройки роутинга на хосте для br1:

/etc/sysconfig/network-scripts/route-br1:
# Белый IP гостевой ситемы
ADDRESS0=x.y.z.48
NETMASK0=255.255.255.255

Настройки гостя:

/etc/sysconfig/network-scripts/ifcfg-eth0:
...
IPADDR=x.y.z.48
PREFIX=32
SCOPE="peer x.y.z.26" # IP Хоста
...

/etc/sysconfig/network-scripts/route-eth0:
ADDRESS0=0.0.0.0
NETMASK0=0.0.0.0
GATEWAY0=x.y.z.26 # IP Хоста
METRIC0=0

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

 

Barz
()

Перевод конфигурации сети с Debian на CentOS

Пробую перенастроить сеть на сервере (Hetzner) так, чтобы в выделенном IP4 диапазоне (/27,/28 или /29) не «терялись» IP на шлюз и броадкаст. На сайте Хетцнера и Хабре нашел только инструкции для Debian. Например, ниже настройка бриджа:

auto br112
br112 iface inet static
  address 172.30.112.1
  netmask 255.255.255.0
  pre-up brctl addbr br112
  post-up route add -host 123.45.90.112 br112
  post-down brctl delbr br112

Просьба к знающим: помочь перевести эту настройку бриджа для CentOS 7.

 , ,

Barz
()

Centos 7 - ошибка при обновлении yum update

Установил новую (на тот момент) версию git не из репозитория CentOS 7.

# git --version
git version 2.11.0

Все было ок, до сегодня, пока я не попытался обновить систему с помощью yum update. В ответ на попытку обновления я получил такие ошибки:

--> Processing Dependency: git = 1.8.3.1-12.el7_4 for package: perl-Git-1.8.3.1-12.el7_4.noarch
--> Finished Dependency Resolution
Error: Package: perl-Git-1.8.3.1-12.el7_4.noarch (updates)
           Requires: git = 1.8.3.1-12.el7_4
           Installed: git-1.8.3.1-6.el7_2.1.x86_64 (@updates)
               git = 1.8.3.1-6.el7_2.1
Error: Package: git-1.8.3.1-6.el7_2.1.x86_64 (@updates)
           Requires: perl-Git = 1.8.3.1-6.el7_2.1
           Removing: perl-Git-1.8.3.1-6.el7_2.1.noarch (@updates)
               perl-Git = 1.8.3.1-6.el7_2.1
           Updated By: perl-Git-1.8.3.1-12.el7_4.noarch (updates)
               perl-Git = 1.8.3.1-12.el7_4
           Available: perl-Git-1.8.3.1-11.el7.noarch (base)
               perl-Git = 1.8.3.1-11.el7
С ключом --skip-broken, ошибки не появляются, но подтверждать обновление пока-что не рискую. Как корректно обновить систему, и откуда взялся git1.8.3.1-6.el7_2.1, если установлен 2.11.0?

 , , ,

Barz
()

Apache location - как объединить?

В конфиге Апача есть такие записи:

<location "/host1">
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</location>

<location "/host2">
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</location>

Можно ли как-то перечислить «hostX» в одном блоке, чтобы не плодить различные блоки, отличающиеся только hostX?

 

Barz
()

Route и ширина колонки

При просмотре маршрутов (# route или # netstat -r) в колонке default некоторые адреса обрезаются, так как не вмещаются по ширине в колонку, получается например так:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         static.111.11.1 0.0.0.0         UG    0      0        0 eth0
static.111.11.1 0.0.0.0         255.255.255.248 UH    0      0        0 eth0
... 

Подскажите, как увидеть полный адрес, вместо куска «static.111.11.1»?

 

Barz
()

CentOS 7 - настройка доп. подсети для KVM

Пытаюсь настроить подсеть на CentOS 7 в Hetzner. Большинство документации по настройке подсети у Hetzner написана для Debian, а настройка сети в CentOS несколько отличается, и перевести конфиги сети для CentOS у меня не хватает знаний.

Пробовал настроить по статье с Хетцнера: после добавления моста vmbr0 пингуется только адрес шлюза 5.5.5.64, все остальные адреса подсети не доступны (ping) ни с хоста, ни с мира.

Хост: 1.1.1.240; подсеть: 5.5.5.64/29

Конфиг сети:

### Hetzner Online GmbH installimage
DEVICE=enp0s3
ONBOOT=yes
BOOTPROTO=none
IPADDR=1.1.1.240
NETMASK=255.255.255.255
SCOPE="peer 1.1.1.193"
IPV6INIT=yes
IPV6ADDR=1111:111:111:1111::2/64
IPV6_DEFAULTGW=fe80::1
IPV6_DEFAULTDEV=enp0s
DEVICE=vmbr0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=5.5.5.64
NETMASK=255.255.255.248
STP=off
DELAY=0

Вывод ip a

1 lo ...
2 enp0s3 <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 ...
3 vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN qlen 1000
 link/ether ... brd ff:ff:ff:ff:ff:ff
 inet 5.5.5.64/29 brd 5.5.5.71 scope global vmbr0
 valid_lft forever preferred_lft forever
 inet6 ...  scope link
 valid_lft forever preferred_lft forever

В итоге нужно раздать виртуалкам IP-адреса из этой подсети: IP65-66 - KVM1, IP67-69 - KVM2, IP70 - KVM3.

Просьба помочь в настройке подсети для KVM.

 , , ,

Barz
()

KVM на LVM - Raid1 обязательно?

Планирую взять сервер на Hetzner с 2мя SSD 500G, которых при использовании Raid1 может не хватить на все данные (несколько VM с различными сайтами). Поэтому возник вопрос: насколько рисковано отказаться от Raid1, чтобы использовать все доступное место SSD (около 950GiB), при наличии регулярных бэкапов и репликации БД?

 ,

Barz
()

Дублирование файлов, заливаемых по FTP

Есть FTP-сервер (CentOS 7, ProFTPd), на который заливаются файлы. Директория (myftp), куда пишутся файлы на диске с LVM фс XFS. Нужно сделать так, чтобы любое изменение в директории myftp сразу же дублировалось на другой, удаленный сервер. Т.е. например, как только в myftp на сервере 1 начали записываться данные по FTP, эти же данные онлайн или с минимальной задержкой дублировались на другой, удаленный сервер (2) (связь по VPN). Сервер 2, планируется также на CentOS

Просьба подсказать, как можно решить такую задачу, в какую сторону смотреть? Желательно, чтобы данные на сервер 2 только записывались, и их нельзя было изменить, получив доступ на сервер 1. Файловую систему можно поменять, если для решения подобной задачи есть что-то лучше, чем XFS.

 

Barz
()

Проблема с HDD

Экспериментировал с LVM и на дополнительном диске HDD2 создал раздел с LVM и подключил его к системе в fstab. Перегрузил сервер, все ок, записал на HDD2 100G данных, выключил сервер. После включения LVM отвалился... Пытаясь восстановить LVM понял, что это затянется на долго, решил снести все разделы на HDD2 при помощи parted и сделал это. Но теперь даже через fdisk -l /dev/sdb я вижу /dev/sdb: 33.3MB, хотя по факту диск на 1000GB. После parted -> mklabel gpt - все равно /dev/sdb: 33.3MB

Как разметить все пространство HDD2 или, возможно, проблемы с самим HDD?

Использую CentOS 7

Вот как сейчас выглядит HDD2 в fdisk -l:

Disk /dev/sdb: 33 MB, 33348608 bytes, 65134 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 label type: gpt

#         Start          End    Size  Type            Name

UPD1: Проверил в BIOS - то же 33Mb... Похоже диск накрылся?

UPD2: Решил проблему при помощи hdparm:

# yum install hdparm
# hdparm -N p1953525168 /dev/sdb
# shutdown -P now

 ,

Barz
()

IPTables - проброс портов и объединение сетей

Есть сервер CentOS 7 с 2-мя сетевыми интерфейсами:

192.178.0.10 (LAN1 192.178.0.0/24 Gateway1 192.178.0.1)
10.10.0.1 (LAN2 10.10.0.0/24)

В сети LAN2 есть устройство 10.10.0.20, к которому нужно получить доступ из LAN1 (на 80 порт). LAN1 и LAN2 отдельные сети, которые не должны видеть друг-друга, за исключением нескольких правил (что-то видно из LAN1 в LAN2 и наоборот).

Подскажите, как настроить следующее:

1. Сделать переадресацию, например с 192.178.0.10:18080 на 10.10.0.10:80. Т.е. набрав на любом компьютере из LAN1 192.178.0.10:18080 попасть на 10.10.0.10:80 На сколько я себе представляю, нужно: прописать в /etc/sysctl.conf строку net.ipv4.ip_forward = 1, сбросить в состояние «разрешено все» правила IPTables и прописать в IPTables правило переадресации, вот с этим - у меня проблемы.

2. Как организовать доступ из LAN1 в LAN2 напрямую, т.е. чтобы набрав в сети LAN1 (192.178.0.0/24) на любом из ПК адрес 10.10.0.10:80 сразу попасть на 10.10.0.10:80. На сколько мне представляется, для этого нужно прописать на роутере (Mikrotik RouterOS) правила... и настроить VLAN на роутере и сервере? Или можно обойтись без VLAN?

 

Barz
()

При подключении 2-го HDD перестает загружаться CentOS

Установил CentOS 7 на 1 HDD, настроил, решил подключить 2-ой HDD, но после подключения система перестает загружаться. В Bios выбран в качестве загрузочного 1-ый HDD

Со вторым винтом загрузка выглядит так:

[OK] Started Show Plymouth Boot Screen
[OK] Reached target Paths.
[OK] Reached target Basic System.

После ожидания несколько минут далее появляется:

[...] dracut-initqueue[269]: Warning: dracut-initqueue timeout - starting timeout scripts
...
[...] dracut-initqueue[269]: Warning: dracut-initqueue timeout - starting timeout scripts
[OK] Started dracut initqueue hook.
[OK] Reached target Remoted File Systems (Pre).
[OK] Reached target Remoted File Systems.
[***] A start job is running for dev-mapper-cl\x2droot.device ( XX / no limit)

После отключения 2-го HDD система грузится в штатном режиме. Подскажите, где искать причину, чтобы можно было подключить 2-ой HDD? На 2-ой HDD я пытался установить CentOS с разделами LVM, возможно связано с этим? 1 HDD также в LVM

 , ,

Barz
()

Как автоматически развернуть дамп MySQL

Подскажите, как развернуть дамп MySQL, в котором содержится более одной БД, в БД с другими именами?

Выполняю дамп:

mysqldump -uroot -p -B base1 base2 base3 > bases.sql

А развернуть нужно примерно так: base1 -> base_dds, base2 -> megabse, base3 -> lib.

Возможно mysql умеет так разворачивать, или только скриптец писать, дампить БД по одной, и потом так же скриптом их заливать?

 ,

Barz
()

MySQL 5.5 Master -> Mysql 5.5 MariaDB 10 Slave replication?

Попробовал настроить такую связку для репликации: MySQL 5.5 Master -> Mysql 5.5 MariaDB 10 Slave replication. Судя по логам - все работает, на главном видно подключение подчиненного, на подчиненном Read_Master_Log_Pos и Relay_Log_Pos постоянно увеличивается, Slave_IO_Running и Slave_SQL_Running - YES, но вот только не происходит обновления данных в slave таблице - то что было на время восстановления из дампа, то и осталось...

Подскажите, можно ли реплицировать MySQL master в MariaDB slave, и если да, то как искать проблему, из за которой не обновляются данные в slave таблице?

 ,

Barz
()

Скопировать HDD

На один 4Тб HDD установлена CentOS 7.2. Докупил еще один 4Тб HDD, который хочу использовать в качестве резервного - если 1-ый винт навернется, переключиться в BIOS на загрузку со 2-го. Зеркальный софтовый рейд делать не охота, так как потеряется 4Тб дискового пространства. Подскажите, как клонировать HDD (перенести разделы /; /boot; /var; /usr) и время от времени поддерживать их в актуальном состоянии. Файловая система XFS, на всех разделах, кроме /boot (ext3).

Что я планирую сделать: 1. Разметить новый HDD (sdb) идентично старому (parted) 2. Перенести загрузчик (grub2) из sda в sdb (не совсем понимаю, как это сделать, да и можно ли это делать из под работающей системы или только с LiveCD) 3. Чем можно время от времени клонировать разделы: /; /boot; /usr; /var из под работающей системы для поддержания данных на sdb в актуальном состоянии?

 ,

Barz
()

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