LINUX.ORG.RU

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

Подготовка к интервью на sre

Форум — Talks

ЛОР, буквально через три недели еду на онсайт интервью на sre. Как можно подготовиться? Что почитать?

Уже читаю SRE book, linux kernel development и cracking the coding interview.

Перемещено leave из development

 , ,

redvicka
()

Подскажите, пожалуйста, хорошие книги по полному курсу элементарной математики.

Форум — General

Подскажите, пожалуйста, хорошие книги по полному курсу элементарной математики. Учусь в школе, да математику подзабыл. Так ещё я в 9-ом классе, а нужен мне весь курс. Я читал о серии книг М.М.Медынского - «Полный курс элементарной математики в задачах и упражнениях». Там 11 томов чистых знаний, но на практике 4. При этом 1-ый, 2-ой, 3-ей и… 5-ый. Никто не знает причину подобных урезаний? Книги-то хорошие. Нужна математика мне для личных увлечений. Чем больше информации, тем лучше. Желательно, ещё задачник посоветуйте, пожалуйста.

 

Smorodich
()

Требуется Linux Инженер (NOC) в Qrator Labs

Форум — Job

Привет! Мы Qrator Labs (https://qrator.net/ru/) и мы ищем инженера в отдел эксплуатации.

Предстоящие задачи:

  1. Внедрение CI/CD для основных и служебных сервисов компании
  2. Обеспечение круглосуточной доступности сервисов
  3. Мониторинг различных систем и сервисов компании
  4. Реагирование на инциденты
  5. Capacity planning
  6. Проведение регламентных работ, работ с поставщиками, работ с заказчиками
  7. Документирование результатов своей работы и написание инструкций для дежурных инженеров

Что нужно знать:

  1. Знание и понимание того, как работает Linux (в идеале Gentoo и Alpine)
  2. Знание и понимание того, как работает виртуализация (KVM/Qemu, oVirt)
  3. Знание и понимание того, как работают контейнеры (LXC, Docker)
  4. Знание и понимание того, как работают распределенные системы
  5. Знание и понимание того, как работают системы развертывания конфигураций, их плюсы и минусы (Ansible, Salt, Puppet, Chef)
  6. Знание и понимание того, как работают реляционные и нереляционные БД в том числе и TSDB (MySQL, PostgreSQL, Clickhouse, InfluxDB)
  7. Имеете опыт устранения неисправностей и профилирования ОС под различные задачи
  8. Имеете опыт внедрения систем мониторинга и мониторинга как процесса
  9. Имеете опыт работы с бэкапами как с процессом
  10. Имеете опыт работы с git
  11. Любовь к автоматизации

Будет плюсом:

  1. Знание и понимание того, как работает Интернет.
  2. Навыки программирования на Python, Ruby или Perl

Что предлагаем:

  1. Полностью белая заработная плата
  2. Уровень дохода от 1800000 до 2400000 в год
  3. Офис г. Москва, м. Беговая/Шелепиха
  4. Оплачиваемые обеды, английский язык, ДМС, обучение.
  5. Отсутствие бюрократии и возможность развиваться, внедрять. Мы очень ценим инициативу
  6. Классный коллектив, который работает много лет вместе и безумно любит, то что делает

Контакты для связи: 8(926)456-75-73 E-mail: jk@qrator.net

 

Jobfor
()

sed, работать только в одной [секции] ini-файла

Форум — General

Привет, $LOR_USER! Есть две команды на баше:

1. отключение вуфайнда из скрипта:

sed -i "/^available\\s*=/s/=.*/= false/" /usr/local/vufind/local/config/vufind/config.ini
2. включение вуфайнда из скрипта:
sed -i "/^available\\s*=/s/=.*/= true/" /usr/local/vufind/local/config/vufind/config.ini

Теперь надо доработать их, чтобы они не по всему ini-файлу искали и редактировали, а только в секции [System], то есть редактировать после строки [System], но до [следующей-секции]. Как это сделать?

 ,

Infra_HDC
()

Пропадает сеть

Форум — Admin

Временами бывает что сервер(Debian 9.4) недоступен по сети, не знаю то ли у провайдера (сапорт пока молчит), то ли на сервере проблемы.

Симптомы
* Zabbix(на этом же сервере) показывает падение трафика почти до 0
* PPS тоже 0
* Пинг с другого сервера FAIL
* Нагрузка на проц падает
* netstat -na | grep SYN_RECV | wc -l = 502
* dropped\missed\fifo по нулям (network-top)
* В syslog пусто

Единственная аномалия это возросшие записи conntrack c ~7000 до 441 389 записей с флагом SYN_SENT UNREPLIED. Но переполнения таблицы не регистрируется.
/etc/sysctl.conf

net.core.somaxconn = 65535
net.core.netdev_max_backlog = 10000
net.core.netdev_budget = 600
net.netfilter.nf_conntrack_max=1048576
net.netfilter.nf_conntrack_tcp_loose = 0
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_syncookies = 1
net.netfilter.nf_conntrack_tcp_timeout_established = 7200


Что может быть? Похоже на syn flood, но в syslog пусто и нагрузки на проц нет

 , ,

gobot
()

Установка FreeBSD на раздел реального диска из-под другой ОС

Форум — Talks

Небольшой HOWTO, как быстро установить FreeBSD из-под GNU/Linux без лишних действий. Записал по ходу установки, возможно, кому-нибудь пригодится.

Входные данные в моём случае:

  • Есть неиспользуемый раздел на диске, разбитом через MBR. (Большая часть места на накопителях занята LVM-ом с кучей томов.)
  • Весь раздел целиком буду монтировать в корень, не используя разбивку bsdlabel. Система ставится больше для экспериментов, чем для реальной работы, так что нет смысла заморачиваться с точной разметкой.
  • По той же причине в качестве файловой системы использую UFS, а не ZFS.
  • Хочется весь процесс провести из-под основной ОС, не тратя время на создание загрузочной флешки.
  • В роли первичного загрузчика буду использовать grub, поэтому BSD-специфичный boot loader нас не интересует.

На одном из дисков я заранее зарезервировал четыре 20-гигабайтных раздела под эксперименты с разными ОС. На один из таких разделов установлю FreeBSD:

[root@aquila ~]# fdisk -l /dev/sda
Диск /dev/sda: 698,7 GiB, 750156374016 байт, 1465149168 секторов
Disk model: Hitachi HTS54757
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: dos
Идентификатор диска: 0xa33b6c03

Устр-во    Загрузочный    начало      Конец    Секторы Размер Идентификатор Тип
/dev/sda1  *                2048    6146047    6144000     3G            83 Linux
/dev/sda2                6146048  105357311   99211264  47,3G             7 HPFS/NTFS/exFAT
/dev/sda3              105357312 1465147391 1359790080 648,4G             5 Расширенный
/dev/sda5              105359360  146319359   40960000  19,5G            83 Linux
/dev/sda6              146321408  187281407   40960000  19,5G            83 Linux
/dev/sda7              187283456  228243455   40960000  19,5G            83 Linux
/dev/sda8              228245504  269205503   40960000  19,5G            83 Linux
/dev/sda9              269207552 1465147391 1195939840 570,3G            8e Linux LVM

Скачиваем установочный образ:

$ axel -a 'https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/12.0/FreeBSD-12.0-RELEASE-amd64-disc1.iso.xz'
$ xz -d FreeBSD-12.0-RELEASE-amd64-disc1.iso.xz

Установку будем проводить из-под qemu, работающему от имени пользователя. Чтобы сможно было подключить физический диск к qemu, нужно сменить владельца /dev/sda:

# ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 апр 15 14:20 /dev/sda
# chown vadim:disk /dev/sda
# ls -l /dev/sda
brw-rw---- 1 vadim disk 8, 0 апр 15 16:12 /dev/sda
Я знаю, что идеологически правильно было бы добавить пользователя в группу disk, но мне как-то пофиг. После перезагрузки система забудет, что права на /dev/sda были отданы пользователю, а из группы пользователя надо удалять вручную.

Запускаем виртуальную машину с установочным образом и нужным физическим диском:

$ qemu-system-x86_64 -m 2048 -hda /dev/sda -cdrom FreeBSD-12.0-RELEASE-amd64-disc1.iso -boot menu=on

Выбираем CDROM в качестве загрузочного устройства. Ждем появления Welcome Menu, выбираем <Shell>. Инсталлятор нам не понадобится.

Посмотрим, какие разделы увидела система:

# ls /dev/ad*

И более подробно:

# gpart list | less

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

Выяснили, как в гостевой ОС называется нужный раздел, создаем на нём файловую систему:

# newfs -U -L anjalifbsd /dev/ada0s5

  • Опция -U указывает задействовать механизм Soft Updates.
  • Опция -L задаёт имя тома ФС.

Монтируем созданную ФС:

# mkdir /tmp/new_root
# mount /dev/ada0s5 /tmp/new_root

Теперь нужно распаковать операционную систему на новый раздел:

# cd /tmp/new_root
# tar xvf /usr/freebsd-dist/base.txz
# tar xvf /usr/freebsd-dist/kernel.txz

Система занимает меньше гигабайта:

# df -h .
Filesystem      Size     Used    Avail  Capacity  Mounted on
/dev/ada0s5      19G     930M      16G      5%    /tmp/new_root

Правим fstab. Честно говоря, я не знаю деталей о процессе инициализации FreeBSD и не уверен, что это обязательно:

echo '/dev/ada0s5 / ufs rw 1 1' > etc/fstab
echo 'tmpfs /tmp tmpfs rw 0 0' >> etc/fstab

Выключаем виртуальную машину:

# poweroff

На реальной машине правим конфиг grub.

У меня grub установлен на отдельном разделе таким образом, что установка любого нового слишком умного дистрибутива, перезаписывающего конфиг grub-а, не повлияет на этот загрузчик. В загрузочном меню этого отдельного grub-а указано, как грузить установленные ОС, внутри которых может работать уже собственный загрузчик дающий выбрать версию ядра и т.п. Например:

menuentry "Artix Sonata" {
	configfile (lvm/aq-aq_artix)/boot/grub/grub.cfg
}

menuentry "Archlinux Aquila" {
	configfile (lvm/aq-aq_archlinux)/boot/grub/grub.cfg
}

menuentry "Voidlinux Epsilon" {
	multiboot (lvm/aq-aq_voidlinux)/boot/grub/i386-pc/core.img
}

Загрузчик FreeBSD я не задействовал, так что в моём случае достаточно добавить menuentry для прямой загрузки ядра FreeBSD:

menuentry "FreeBSD Anjali" {
	insmod part_msdos
	insmod ufs2
	set root=(hd0,5)
	kfreebsd /boot/kernel/kernel
	kfreebsd_loadenv /boot/device.hints
	set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s5
	set kFreeBSD.vfs.root.mountfrom.options=rw
	boot
}

На этом всё. Установка сводится к распаковке архива с системой и запуску ядра любым подходящим загрузчиком. Даже проще, чем установить Арч.

Первые шаги в системе:

  • Имя хоста задаётся через hostname(1).
  • Управление пользователями и группами осуществляется при помощи pw(8).
  • Про настройку локали см. login.conf(5). В конфиге уже прописан вариант для русской локали, так что достаточно указать login class пользователя равным russian.
  • wpa_supplicant настраивается стандартно через конфиг, плюс надо указать пару строчек в rc.conf.
  • Пакеты ставятся при помощи pkg(8).

 , ,

Deleted
()

SELinux (создание модуля)

Форум — Admin

Доброго времени суток. Нужна помощь. Создаю SELinux модуль для ПО, доступ к которому сможет получить обычный пользователь.Я перечитал уже много мануалов, применял на практике, собирал Франкенштейна из audit2allow (для извлечения опыта из ошибок). Но по ходу работы вылезают крутые «фичи». В общем буду говорить за себя, и мне кажется, что я где то заблуждаюсь в написании модуля. Взял 2 статьи на Хабре (ссылочки ниже) и по ним пробовал собрать модуль. И как то безуспешно, а об этом расскажу ниже. Тупик возник на втором гайде, когда сделал все строго по пунктам, а результат получился совсем другой.

Первый гайд - https://habr.com/ru/post/320100/ Второй гайд - https://habr.com/ru/post/322476/

Введение: Необходимо наложить контексты на ПО, создать пользователя (login=ovdcoadm; seuser=ovdcoadm_u), выделить ему роль (ovdcoadm_r) и в модуле объявить тип (ovdco_t) позволив ему управлять нашим ПО, ходить по SSH, да и вообще работать на сервере напрямую.

Что я собираю:

#ovdco.te

policy_module(ovdco, 1.0.0)

# объявляем новую роль
role ovdcoadm_r;
# тип для процесса
type ovdco_t;
# тип для исполняемого файла
type ovdco_exec_t;
# тип для конфиг-файлов
type ovdco_conf_t;
# тип для лог-файла
type ovdco_log_t;
# тип для временных файлов
type ovdco_tmp_t;
# тип для порта, который слушает ovdco ( протокол binkp )
type binkp_port_t;





# стандартный шаблон для НЕ-админа
userdom_unpriv_user_template(ovdcoadm)
#userdom_restricted_user_template(myguest)
# разрешаем dac_override
allow ovdco_t self:capability { dac_override dac_read_search };
# разрешаем sudo
sudo_role_template(ovdcoadm, ovdcoadm_r, ovdco_t)

# Макрос приложения: добавляет тип ovdco_t в список приложений
# и разрешает ему стартовать из типа  ovdco_exec_t
application_domain(ovdco_t, ovdco_exec_t)
# Макрос демона: добавляет тип ovdco_t в список демонов,
# разрешает его запускать через systemd
# и назначает переход: если systemd запустит файл с типом ovdco_exec_t,
# то процесс получит тип ovdco_t
init_daemon_domain(ovdco_t, ovdco_exec_t)
# разрешает типу ovdco_t исполнять стандартные бинарники ( /bin, /usr/bin )
corecmd_exec_bin(ovdco_t)
# разрешает типу ovdco_t подключать библиотеки
libs_use_ld_so(ovdco_t)
# разрешает типу ovdco_t читать состояние системы ( cpu, memory )
kernel_read_system_state(ovdco_t)
# разрешает типу ovdco_t писать в /tmp
files_rw_generic_tmp_dir(ovdco_t)
# разрешает типу ovdco_t читать конфиг сети ( /etc/resolv.conf итд )
sysnet_read_config(ovdco_t)
# разрешает типу ovdco_t получать случайные числа из /dev/(u)random
dev_read_rand(ovdco_t)
# разрешает типу ovdco_t получать аттрибуты файловой системы ( свободное место )
fs_getattr_xattr_fs(ovdco_t)
# разрешает типу ovdco_t делать dns resolve
sysnet_dns_name_resolve(ovdco_t)
# разрешает типу ovdco_t ходить в /var/log ( r/o )
logging_search_logs(ovdco_t)
# назначает правило: логи, которые создает процесс ovdco_t, 
# будут иметь тип ovdco_log_t
logging_log_filetrans(ovdco_t, ovdco_log_t, file)
# назначает правило: tmp-файлы, которые создает процесс ovdco_t, 
# будут иметь тип ovdco_tmp_t
files_poly_member_tmp(ovdco_t, ovdco_tmp_t)
# разрешает ovdco_t делать bind() на любой адрес
corenet_tcp_bind_generic_node(ovdco_t)
# разрешает ovdco_t общаться с postgresql по unix-сокету
postgresql_stream_connect(ovdco_t)
# разрешает ovdco_t общаться с postgresql по сети
corenet_tcp_connect_postgresql_port(ovdco_t)


# макрос gen_user создает пользователя так-же, как semanage user -a
# он всегда должен быть в самом конце файла
gen_user(ovdcoadm_u, ovdcoadm, ovdcoadm_r, s0, s0)

Как мы видим - он должен создавать se-пользователя, роль, и несколько типов. И да! Он компилируется, все создает!

semanage * -l

[root@localhost ~]# semanage login -l

Login Name SELinux User MLS/MCS Range Service

__default__ user_u s0 * ovdcoadm ovdcoadm_u s0 * root root s0-s0:c0.c1023 * system_u system_u s0-s0:c0.c1023 *

Local customization in /etc/selinux/targeted/logins ovdcoadm ovdcoadm_u s0 xdm sshd

В файле /etc/selinux/targeted/logins/ovdcoadm

cat /etc/selinux/targeted/logins/ovdcoadm sshd:ovdcoadm_u:s0 xdm:ovdcoadm_u:s0 ovdco:ovdcoadm_u:s0

[root@localhost ~]# semanage user -l

Labeling MLS/ MLS/ SELinux User Prefix MCS Level MCS Range SELinux Roles

guest_u user s0 s0 guest_r ovdcoadm_u user s0 s0 ovdcoadm_r root user s0 s0-s0:c0.c1023 staff_r sysadm_r system_r unconfined_r staff_u user s0 s0-s0:c0.c1023 staff_r sysadm_r system_r unconfined_r sysadm_u user s0 s0-s0:c0.c1023 sysadm_r system_u user s0 s0-s0:c0.c1023 system_r unconfined_r unconfined_u user s0 s0-s0:c0.c1023 system_r unconfined_r user_u user s0 s0 user_r ovdcoadm_r xguest_u user s0 s0 xguest_r

В файле /etc/selinux/targeted/contexts/users/ovdcoadm_u

[root@localhost ~]# cat /etc/selinux/targeted/contexts/users/ovdcoadm_u system_r:local_login_t:s0 ovdcoadm_r:ovdco_t:s0 system_r:remote_login_t:s0 ovdcoadm_r:ovdco_t:s0 system_r:sshd_t:s0 ovdcoadm_r:ovdco_t:s0 system_r:crond_t:s0 ovdcoadm_r:ovdco_t:s0 system_r:xdm_t:s0 ovdcoadm_r:ovdco_t:s0 staff_r:staff_su_t:s0 ovdcoadm_r:ovdco_t:s0 staff_r:staff_sudo_t:s0 ovdcoadm_r:ovdco_t:s0 system_r:initrc_su_t:s0 ovdcoadm_r:ovdco_t:s0 staff_r:staff_t:s0 ovdcoadm_r:ovdco_t:s0 sysadm_r:sysadm_su_t:s0 ovdcoadm_r:ovdco_t:s0 sysadm_r:sysadm_sudo_t:s0 ovdcoadm_r:ovdco_t:s0

По идее все ровно встало, доступ к SSH есть и не только к нему.

Но на выходе когда мы заходим под этим пользователем, то его не пускает, a2a ничего не показывает по этой проблеме. Чтобы ничего не сломалось я работаю в permissive режиме. Вот как меня определяет машина, когда авторизуюсь через SSH:

id

[ovdcoadm@localhost ~]$ whoami ovdcoadm [ovdcoadm@localhost ~]$ id uid=1003(ovdcoadm) gid=1003(ovdcoadm) groups=1003(ovdcoadm) context=system_u:system_r:unconfined_t:s0-s0:c0.c1023

Как мы видим - она не может меня определить и выкидывает в unconfined_t. Вроде бы все объявлено, все делал строго по гайдами. А почему так - я не знаю. И это один из важных вопросов. Если есть предложения, то пишите. Если нужна дополнительная информация, то с удовольствием ее предоставлю!

 , , ,

PirateTM
()

Запуск qemu виртуалки в отдельной tty консоли

Форум — Desktop

На ноуте установлен Debian 9 и virt-manager. Интересует следующий вопрос: возможно ли работать с виртуалкой в отдельной X-сессии ? Собственно для чего нужно: на хост системе у меня только виртуалки, для работы и учебы отдельные системы, не совсем удобно между ними переключаться, особенно при работе в полноэкранном режиме. Хочу сделать так чтобы на хосте залочил экран, нажал ctrl+alt+f4 и попал в гостевую систему.

Тут http://dmzik.blogspot.com/2013/05/virtualbox-tty.html автор проделал то что мне нужно с virtualbox-ом , как такое реализовать в qemu/virt-manager ?

 

Krab228
()

Через 332 дня аптайма затупил NGinx. В чем может быть причина?

Форум — Admin

Сайт на Nginx + PHP5.6, в последние пару месяцев было ~5000 уникумов в день, ~7000 страниц.

# uptime
 10:31:36 up 332 days, 21:49,  1 user,  load average: 2.12, 2.12, 2.09


Сегодня Nginx выдал ошибку:

504 Gateway Time-out nginx/1.6.2


По htop вижу, что память выжрал php-fpm. Всего на сервере 1Gb, использовано:

# free -h
             total       used       free     shared    buffers     cached
Mem:          1.0G       923M        83M        68M        65M       713M
-/+ buffers/cache:       145M       862M
Swap:           0B         0B         0B


У php-fpm вижу 1 процесс со статусом D. Процесс, имеющий статус S может получить статус D спустя некоторое время. Пример с процессом 23265:

# ps aux | grep php-fpm
root       460  0.0  1.3 105288 14024 ?        Ss    2018  33:25 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data 23232  0.6  3.3 116828 34536 ?        S    09:20   0:33 php-fpm: pool www                                 
www-data 23237  0.6  3.3 116860 34648 ?        S    09:21   0:29 php-fpm: pool www                                 
www-data 23240  0.7  3.2 116780 33752 ?        S    09:22   0:32 php-fpm: pool www                                 
www-data 23264  0.5  3.3 116568 34312 ?        D    09:27   0:23 php-fpm: pool www                                 
www-data 23265  0.6  3.3 116816 34748 ?        S    09:27   0:26 php-fpm: pool www                                 
root     23992  0.0  0.2   4556  2108 pts/0    S+   10:39   0:00 grep php-fpm

# ps aux | grep php-fpm
root       460  0.0  1.3 105288 14024 ?        Ss    2018  33:25 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data 23232  0.7  3.3 116828 34536 ?        S    09:20   0:35 php-fpm: pool www                                 
www-data 23237  0.6  3.3 116676 34464 ?        S    09:21   0:31 php-fpm: pool www                                 
www-data 23240  0.7  3.2 116700 33816 ?        S    09:22   0:35 php-fpm: pool www                                 
www-data 23264  0.5  3.3 116568 34396 ?        S    09:27   0:26 php-fpm: pool www                                 
www-data 23265  0.6  3.3 116816 34748 ?        D    09:27   0:29 php-fpm: pool www                                 
root     24029  0.0  0.2   4556  2152 pts/0    S+   10:44   0:00 grep php-fpm


Вот. Что все это значит? Перед тем как я сделаю ребут, хотел бы понять что произошло, чего серверу не хватило.

Хотя, перед ребутом я попробую перезапустить php-fpm, может и ребутиться ненадо. Но хотелось бы понять в чем причина 504-й ошибки.



Перемещено leave из web-development

 ,

Xintrea
()

UDP ddos

Форум — Admin

На сервер debian приходит udp ~100-600mbps входящий в связи с этим идут потери пакетов, увеличиваются задержки и прочие радости. В iptables добавлено

INPUT -p udp -j DROP

По последним счетчикам навалило 301K\734M(пакетов\трафика) за пару минут. Иногда доходило до 160Gb, в обычное время UDP кроме как от dns сервера нет.
Растет overruns:
flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
ether 0c:c4:7a:0c:70:8c  txqueuelen 1000  (Ethernet)
RX packets 157283928333  bytes 38784725568569 (35.2 TiB)
RX errors 0  dropped 0  overruns 13182248  frame 0
TX packets 269997924596  bytes 355284328974259 (323.1 TiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0



ethtool -S eno1 | grep err
rx_crc_errors: 0
rx_missed_errors: 0
tx_aborted_errors: 0
tx_carrier_errors: 0
tx_window_errors: 0
tx_deferred_ok: 0
rx_long_length_errors: 0
rx_short_length_errors: 0
rx_align_errors: 0
rx_errors: 0
tx_errors: 0
rx_length_errors: 0
rx_over_errors: 0
rx_frame_errors: 0
rx_fifo_errors: 13182248
tx_fifo_errors: 0
tx_heartbeat_errors: 0
rx_queue_0_csum_err: 5051
rx_queue_1_csum_err: 5119
rx_queue_2_csum_err: 4784
rx_queue_3_csum_err: 6293
rx_queue_4_csum_err: 4666
rx_queue_5_csum_err: 3269
rx_queue_6_csum_err: 4681
rx_queue_7_csum_err: 5341

tcpdump пишет
UDP, bad length 3010 > 1472

На сервере 1gpbs unlim, весь канал не забивается, но дропы идут огромные 60-70%, хотя iptables блочит весь UDP. Куда смотреть?

 ,

gobot
()

Bash: как прикрутить к read автодополнение (autocompletion) текста (команд) по нажатию TAB?

Форум — Development

Есть bash скрипт который ожидает ввод с клавиатуры используя встроенную в bash команду «read». Вопрос в том как научить этот скрипт автодополнениям вводимого текста, например, по аналогии с таковым для функций в bash:

cdp() {
  local proj=~/dev/projects/
  builtin cd "$proj$1"
}

_my_cdp() {
    local proj=~/dev/projects/
    local i p
    COMPREPLY=()
    while IFS= read -r i; do
        printf -v p '%q' "${i#"$proj"}"
        COMPREPLY+=( "$p" )
    done < <(compgen -d -- "$proj$2")
}

complete -o nospace -F _my_cdp  cdp

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

 ,

kilzhlik
()

Как удалить коммит в удаленном репозитории?

Форум — Development

Сделал коммит. Не заметил как в него попала пара сотен МБт дерьмища. Потом запушил и тут я обнаружил свой косяк. Подскажите, как в удаленном и локальном репозитории удалить последний коммит с сохранением изменений в рабочей дирректории?

git reset --hard HEAD~1 неподходит, т.к. возвращает меня к комиту 3х месячной давности! Нужно удалить коммит, но чтобы все изменения в рабочей директории сохранились! Спасибо!

 

NkDev
()

Как правильно удалить диски из LVM

Форум — Admin

Добрый день.

Имею в системе 3 диска 2Тб, и два по 500 Гб.

root@htc:/home/sergvic# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdb6
  VG Name               root
  PV Size               27,94 GiB / not usable 0
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              7152
  Free PE               0
  Allocated PE          7152
  PV UUID               pugZVQ-I1oG-sUmt-NVqJ-JVFc-XGfL-yjtceQ

  --- Physical volume ---
  PV Name               /dev/sdb7
  VG Name               home
  PV Size               1,79 TiB / not usable 3,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              469718
  Free PE               0
  Allocated PE          469718
  PV UUID               0sU4ct-oR0t-6zKr-LqW9-cWNE-G2De-VGfiDW

  --- Physical volume ---
  PV Name               /dev/sda
  VG Name               home
  PV Size               465,76 GiB / not usable 4,02 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              119234
  Free PE               0
  Allocated PE          119234
  PV UUID               VffGme-lf7x-EdIk-ayeH-l9oF-R08D-VUbXWn

  --- Physical volume ---
  PV Name               /dev/sdc
  VG Name               home
  PV Size               465,76 GiB / not usable 4,02 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              119234
  Free PE               0
  Allocated PE          119234
  PV UUID               whC90V-qGlq-bCr2-QX2A-Ge3P-DbGd-GQWONL

root@htc:/home/sergvic# lvdisplay
  --- Logical volume ---
  LV Path                /dev/root/root
  LV Name                root
  VG Name                root
  LV UUID                RsLwt1-eAqf-3dp1-hx8W-SEfH-KQ0B-z98LcO
  LV Write Access        read/write
  LV Creation host, time htc, 2013-06-21 20:58:31 +0400
  LV Status              available
  # open                 1
  LV Size                23,28 GiB
  Current LE             5960
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Path                /dev/root/swap_2
  LV Name                swap_2
  VG Name                root
  LV UUID                5p2ulm-TtuW-6Rsl-1IxR-NHog-AImR-sWQo0t
  LV Write Access        read/write
  LV Creation host, time htc, 2013-06-21 20:59:28 +0400
  LV Status              available
  # open                 2
  LV Size                4,66 GiB
  Current LE             1192
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:2

  --- Logical volume ---
  LV Path                /dev/home/home
  LV Name                home
  VG Name                home
  LV UUID                nnJ6tN-TDys-GFHf-CA3n-rmCd-aR5X-3YBLkI
  LV Write Access        read/write
  LV Creation host, time htc, 2013-06-21 21:04:14 +0400
  LV Status              available
  # open                 1
  LV Size                2,70 TiB
  Current LE             708186
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

root@htc:/home/sergvic# vgdisplay
  --- Volume group ---
  VG Name               root
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               27,94 GiB
  PE Size               4,00 MiB
  Total PE              7152
  Alloc PE / Size       7152 / 27,94 GiB
  Free  PE / Size       0 / 0
  VG UUID               lSWaRx-PRBI-qSgp-mzMO-0QGv-7OKw-xT7wOC

  --- Volume group ---
  VG Name               home
  System ID
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               2,70 TiB
  PE Size               4,00 MiB
  Total PE              708186
  Alloc PE / Size       708186 / 2,70 TiB
  Free  PE / Size       0 / 0
  VG UUID               3Ssnsi-wJtZ-5tnQ-E01F-9zCk-yItK-wVsAJa

root@htc:/home/sergvic#
root@htc:/home/sergvic# df -h
Файл.система          Размер Использовано  Дост Использовано% Cмонтировано в
udev                    420M            0  420M            0% /dev
tmpfs                    88M         4,2M   83M            5% /run
/dev/mapper/root-root    23G         4,2G   18G           20% /
tmpfs                   436M         4,0K  436M            1% /dev/shm
tmpfs                   5,0M         4,0K  5,0M            1% /run/lock
tmpfs                   436M            0  436M            0% /sys/fs/cgroup
/dev/sdb5               231M         131M   84M           62% /boot
/dev/mapper/home-home   2,7T         1,6T 1002G           62% /home
cgmfs                   100K            0  100K            0% /run/cgmanager/fs
tmpfs                    88M            0   88M            0% /run/user/1001
tmpfs                    88M            0   88M            0% /run/user/0
/dev/sdd1               2,7T         1,6T  1,1T           61% /media
tmpfs                    88M            0   88M            0% /run/user/1000

Хочу удалить два диска которые по 500 Гб (sda,sdc) из LVM. Как правильно это сделать ? Нужно ли уменьшать размер LVM и файловой системы (resize2fs, lvresize) или достаточно сделать vgreduce home /dev/sdc vgreduce home /dev/sda. Как узнать есть ли на этих дисках данные? Вроде используется 1,6 Тб, возможно на этих дисках нет данных.

 

sergvic
()

Релиз LFS 8.2

Новости — Linux General
Группа Linux General

Linux From Scratch (LFS) это проект, предоставляющий пошаговые инструкции по сборке собственной системы Linux из исходных текстов. На текущий момент в проект входят:

  • LFS :: Linux From Scratch главная книга, описывающая установку базовой системы
  • BLFS :: Beyond Linux From Scratch расширяет основную книгу, позволяя создать на основе LFS полноценную рабочую среду путем доустановки компонентов
  • ALFS :: Automated Linux From Scratch предоставляет инструменты для автоматизации работы с LFS и BLFS.
  • Hints :: Набор советов по улучшению работы существующей LFS или BLFS системы
  • Patches :: Набор патчей, которые могут оказаться полезными пользователям LFS


Новый релиз включает обновление версий основных компонентов glibc-2.27, binutils-2.30, gcc-7.3.0. В общем итоге, обновилось 34 пакета, а также 5 пакетов перенесены из BLFS в LFS, среди которых: libffi, openssl, Python3, ninja и meson. Версия ядра Linux обновилась до 4.15.3.
Внесены изменения также в версию LFS, которая описывает установку с использованием systemd.

>>> Прочитать книгу

>>> Подробности

 

Gu4
()

Выбор hardware

Форум — Linux-hardware

Суп.

Пришло время обновить свой сервант.
Хочу прикупить рыжень, но вот беда, нет материнок mini-itx.

Посоветуйте материнок нужного форм-фактора с поддержкой рыженя.

Или не мастурбировать и взять Штеуд?

 , ,

itn
()

Где смотреть совместимость SSD с Linux?

Форум — Linux-hardware

Сабж. Подскажите, пожалуйста. Хочу выбрать такой диск, чтобы подключить — и он подружился с линуксом без лишних телодвижений. В идеале даже с относительно стареньким ядром. Это возможно? Как выбрать / найти такой диск?

 , ,

nightingale
()