Яндекс: Олимпиада для unix администраторов

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Яндекс: Олимпиада для unix администраторов

Сообщение KiWi »

xmpp писал(а):
15.10.2010 18:33
А из второй части этой олимпиады меня очень интересует 12 вопрос ( Как посмотреть в содержимое initrd, собранного mkinitramfs ), какой правильный ответ?

Код: Выделить всё

zcat <initrd> |cpio -i --make-directories
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Яндекс: Олимпиада для unix администраторов

Сообщение Bluetooth »

MrClon писал(а):
15.10.2010 18:37
Думаю тупо подмонтировать как образ можно. Как и .iso и прочим.

Был не в курсе. Всегда делал так, как написал KiWi. Но лучше было бы, если бы никогда не лазил бы в initramfs :)
Спасибо сказали:
xmpp
Сообщения: 26
ОС: Gentoo

Re: Яндекс: Олимпиада для unix администраторов

Сообщение xmpp »

MrClon писал(а):
15.10.2010 18:37
xmpp писал(а):
15.10.2010 18:33
Вы попробуйте сделать линк, если /var/log/mydaemon и /mydaemon примонтированы с разных разделов/дисков, ничего не получиться.
Да? А мне казалось что проблем не будет. Но резонов для использования (в некоторых случаях) mount вместо симлинка хватает.


да, я тут что-то проморгал, это для жестких ссылок не создаст, а тут мягкая, но все равно будет проблема, смотрите

Код: Выделить всё

root@invite-desktop:~# mkdir /var/log/mydaemon
root@invite-desktop:~# mkdir /mydaemon
root@invite-desktop:~# ln -s /var/log/mydaemon /mydaemon

root@invite-desktop:~# ls -la /
total 130
...
drwxr-xr-x   2 root root  4096 2010-10-15 19:10 mydaemon
...

root@invite-desktop:~# ls -la /mydaemon/
total 8
drwxr-xr-x  2 root root 4096 2010-10-15 19:10 .
drwxr-xr-x 23 root root 4096 2010-10-15 19:10 ..
lrwxrwxrwx  1 root root   17 2010-10-15 19:10 mydaemon -> /var/log/mydaemon

root@invite-desktop:~# touch file /var/log/mydaemon/
root@invite-desktop:~# ls -la /mydaemon/mydaemon/
total 8
drwxr-xr-x  2 root root 4096 2010-10-15 19:15 .
drwxr-xr-x 18 root root 4096 2010-10-15 19:10 ..
-rw-r--r--  1 root root    0 2010-10-15 19:15 file



симлинк на каталог создался внутри каталога, фактически получается не там где требовалось, а вот

Код: Выделить всё

ln -s /var/log/mydaemon /
сделало бы то, что нужно.
Спасибо сказали:
Аватара пользователя
Pascal
Сообщения: 8
ОС: FreeBSD

Re: Яндекс: Олимпиада для unix администраторов

Сообщение Pascal »

угу, внутрь песочницы тоже симлинками будете делать?

наш вариант на 12
gunzip -c initrd.img-2.6.24 | cpio --list
Спасибо сказали:
MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Яндекс: Олимпиада для unix администраторов

Сообщение MrClon »

Bluetooth писал(а):
15.10.2010 19:34
MrClon писал(а):
15.10.2010 18:37
Думаю тупо подмонтировать как образ можно. Как и .iso и прочим.

Был не в курсе. Всегда делал так, как написал KiWi. Но лучше было бы, если бы никогда не лазил бы в initramfs :)

Про mount это просто предположение. До этого вопроса вообще в этом направлении не думал.
Если подумать то скорее всего вариант с mount не прокатит.
Спасибо сказали:
Аватара пользователя
Pascal
Сообщения: 8
ОС: FreeBSD

Re: Яндекс: Олимпиада для unix администраторов

Сообщение Pascal »

Пилим файл на три части, черновой вариант на ночь глядя=)

Код: Выделить всё

$ split -b $(echo $[$(du -k test.file | awk '{print $1}')/3])k test.file
$ du -h *
10M    test.file
3.4M    xaa
3.4M    xab
3.3M    xac
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Яндекс: Олимпиада для unix администраторов

Сообщение KiWi »

Приблизительный вариант:
1. Напишите чему будет равен mss, если Вы используете IPv6 и mtu=1450?
1390

2. Что в bash напечатает команда echo $((5/2))?
2

3. Приведите пример команды, которая напечатает 'Y' , если файл/var/tmp/core существует и он ненулевого размера (используя средства bash и coreutils)?
[ -s /var/tmp/core ] && echo 'Y'

4. С помощью какой директивы в Apache 1.3 можно указать e-mail для связи на стандартной страничке Internal Server Error?
ServerAdmin

5. Как в Linux вывести все переменные окружения, с которыми работает процесс с pid = 5671, в виде списка, где каждая переменная на отдельной строке?
strings /proc/5671/environ

6. Как в Linux или FreeBSD открыть tcp порт 74022 в режиме Listen при помощи утилиты пакета netcat?
Никак -- максимальный порт 65535.

7. Как в MySQL посмотреть список текущих сессий?
SHOW PROCESSLIST

8. Как в PostgreSQL посмотреть список текущих сессий?
SELECT * FROM pg_stat_activity

9. У Вас на сервере есть древовидная структура директорий с несколькими миллионами файлов. Напишите пример команды, которая удалит все файлы, не трогая структуру каталогов?
find . -type f -delete

10. Как не перезагружая операционную систему Linux (ядро 2.6.X), разрешить автоматическую перезагрузку через 10 секунд после того, как произошел kernel panic?
echo 10 > /proc/sys/kernel/panic

11. Напишите пример команд из coreutils, при помощи которых можно разбить содержимое текстового файла на три примерно равных части и поместить их в три разных файла?
смотрим размер файла и делаем split -b.

12. Как посмотреть в содержимое initrd, собранного mkinitramfs?
zcat <initrd> | cpio -i --make-directories

13. Какой утилитой в Linux посмотреть время наработки диска в часах?
smartctl или sg_utils

14. Как в Linux (2.6.X) безопасно выгрузить модуль ядра e1000e?
rmmod e1000e

15. Как в терминале bash при помощи одной служебной комбинации клавиш слово dpgk превратить в dpkg, если курсор стоит на букве k?
Ctrl-T

16. Как в Linux посмотреть лимиты на количество открытых файлов, действующие в текущей сессии?
ulimit -n

17. Какими командами можно узнать mac-адрес сервера, доступа к которому у Вас нет, и он находится вашем сегменте ethernet сети? При этом известен его ip и до этого момента обмена ip-пакетами с этим сервером не было.
ping IP
arp -an IP

18. Какой командой в Linux посмотреть размер журнала файловой системы ext3, смонтированной в /dev/sda1?
dumpe2fs -h /dev/sda1

19. Как в Linux изменить размер файловой системы tmpfs, смонтированной в /tmpfs с 2 до 4 гигабайт, без потери ее содержимого?
mount -o remount,size=4g /tmpfs

20. Как в Linux (ядро 2.6.X) одной командой посмотреть содержимое всех таблиц в firewall?
iptables-save

21. Какой командой посмотреть, какие из необходимых программе библиотек недоступны при ее запуске?
ldd

22. Как посмотреть «дерево» процессов?
pstree

23. Как в Linux прочитать файл /serial.txt, находящейся в ISO9660-образе winxpsp4.iso?
mount -o loop -t iso9660 winxpsp4.iso /mnt
cat /mnt/serial.txt

24. Что неправильно в параметрах конфигурации интерфейса:
address 192.168.1.191
netmask 255.255.255.192
network 192.168.1.128
gateway 192.168.1.129
mtu 1450 ?
Адрес хоста совпадает с broadcast-адресом.

25. Как скопировать данные с поврежденного диска /dev/sda на целый /dev/sdb, пропустив только сбойные сектора?
dd if=/dev/sda of=/dev/sdb conv=sync,noerror

26. Какой флаг должен быть установлен в tcp пакете, чтобы соединение было немедленно прекращено?
RST

27. Как в Linux запретить выделение более 90% физической памяти процессам, при условии, что swap выключен?
echo 2 > /proc/sys/vm/overcommit_memory
echo 90 > /proc/sys/vm/overcommit_ratio

28. Как в Linux разрешить маршрутизацию ipv4 пакетов?
echo 1 > /proc/sys/net/ipv4/ip_forward

29. Есть файл file со строками:
1
10
45
6
1
5
7
10
Как при помощи утилит, входящих в coreutils, узнать какие строки присутствуют в файле более 1 раза, и сколько раз повторяется каждая строка?
cat file | sort | uniq -dc

30. Вы зашли на сервер example.com и запустили там команду wget http://example.com Как посмотреть траффик этого соединения с помощью команды tcpdump?
tcpdump -i lo
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Яндекс: Олимпиада для unix администраторов

Сообщение KiWi »

MrClon писал(а):
15.10.2010 21:43
Bluetooth писал(а):
15.10.2010 19:34
MrClon писал(а):
15.10.2010 18:37
Думаю тупо подмонтировать как образ можно. Как и .iso и прочим.

Был не в курсе. Всегда делал так, как написал KiWi. Но лучше было бы, если бы никогда не лазил бы в initramfs :)

Про mount это просто предположение. До этого вопроса вообще в этом направлении не думал.
Если подумать то скорее всего вариант с mount не прокатит.

На самом деле, прокатит.
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Яндекс: Олимпиада для unix администраторов

Сообщение KiWi »

123UNIX писал(а):
14.10.2010 17:56
Да, и вопрос про pid_max...

Почему не засчитали ls -l /proc/85003/fd ?

Про 64-bit Linux уже говорили...

И между прочим, на FreeBSD - если уж говорить о системе, в которой я как раз и привык видеть большие PID, так что не удивился числу 85003 - можно установить Linux compatibility и иметь себе /proc

Вот прямо сейчас до конца дня можете написать апелляцию на любой интересующий вопрос(при условии, что набрали >19 баллов).
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Яндекс: Олимпиада для unix администраторов

Сообщение KiWi »

А тем временем -- прошёл второй тур.
Вопросы:
1. Есть сервер, на котором сконфигурированы интерфейсы eth0 – ip 1.2.3.4, netmask /25, gateway 1.2.3.1 и eth1 – ip 5.6.7.8, netmask /25, gateway 5.6.7.1. Есть клиенты, которые работают с этим сервером, и они находятся за пределами описанных выше сетей. Вам необходимо, что бы ответы на запросы отправлялись через тот же интерфейс, через который они были получены. Напишите последовательность команд, которая позволяет это сделать. Для решения задачи используйте статическую маршрутизацию.
2. Как в командном режиме vi или vim в текстовом файле заменить в каждой строке файла первые сочетания цифр, которые начинаются с цифры 3, а заканчиваются на цифру 6 (между тройкой и шестеркой могут быть одна или две любых цифры), на подстроку 444?
3. На сервере c помощью mdadm собран программный raid 10 на четырех дисках со следующим параметрами: near=2 far=1 Нумерация дисков начинается с нуля. Какое максимальное количество дисков можно одновременно вынуть из raid-массива не нарушая его работоспособность? Напишите номер или номера этих дисков.
4. Задачи, работающие на Вашем сервере, требуют большого количества вычислительных мощностей. Вы подозреваете, что governor может необоснованно занижать частоту процессоров. Напишите команды, которыми можно заставить процессоры работать всегда на максимальной частоте, не перегружая сервер и не устанавливая дополнительных утилит.
5. У вас есть сервер с операционной системой Linux. Памяти на этом сервере 1 гигабайт. Там работает процесс, у которого сегмент кода занимает 500 мегабайт, столько же занимает сегмент данных. Запускаем второй такой же процесс. Мы промаркировали страницы памяти по типам: 1 – код первого процесса; 2 – данные первого процесса; 3 – код второго процесса; 4 – данные второго процесса. Напишите все номера типов страниц, которые могут оказаться в swap.
6. Есть сервер про который известно, что на нем есть SATA диск с файловой системой ext3, 32 гигабайта памяти, нет swap и включить его нельзя. Вы запускаете параллельно команды dd if=/dev/zero of=/opt/testfiles/tesfile1 bs=1G count=64 и dd if=/dev/zero of=/opt/testfiles/tesfile2 bs=1G count=64. Через несколько минут сервер уходит в iowait, команды в консоли очень медленно работают, еще через несколько минут сервер падает с OOM в kernel panic. Если Вы запускаете dd if=/dev/zero of=/opt/testfiles/tesfile1 bs=1G count=18 и dd if=/dev/zero of=/opt/testfiles/tesfile2 bs=1G count=18 то описанного эффекта не наступает. Как можно бороться с описанной проблемой, не ограничивая дисковую активность на сервере и не изменяя его аппаратных характеристик?
7. У Вас есть два сервера S и R. На S (IP = 192.168.1.2) на 80 порту запущен сайт, и он недоступен из внешней сети. R используется в качестве шлюза по умолчанию для сервера S и доступен из внешней сети по адресу 1.2.3.4. Чтобы обеспечить доступ к сайту из внешней сети, на R настроен DNAT: 1.2.3.4:80->192.168.1.2:80 Вы проверяете работу этой схемы, находясь на сервере S, командой telnet 1.2.3.4 80. Почему у Вас не получилось установить соединение?
8. На сервере c помощью mdadm был собран программный raid 0 на четырех дисках. В какой-то момент в серверной проходила уборщица, и неожиданно у сервера исчезло питание. Когда сервер включили, выяснилось, что рейд полностью развалился (mdadm не видит суперблоков). Каким образом можно восстановить данные (собрать рейд) на этой машине? Приведите пример команды.
9. Внезапно на web сервере с Linux выросла нагрузка. Вы зашли на него и обнаружили, что из 1000 соединений 990 приходит с адреса ipv6 ::ffff:1.2.3.4. Вы подозреваете, что это DOS-атака, и хотите заблокировать соединения с этого адреса. Какой командой Вы это сделаете?
10. На 1.2.3.4: 443 отвечают 3 сайта: forbar.tj, foo.ec и bar.ag по протоколу https. Сколько должно быть сертификатов для этих web сайтов, и что должно в них быть прописано согласно RFC, чтобы браузеры могли им доверять?
11. На сервере запустили форк-бомбу. У Вас есть открытая ssh-сессия на машину. Серверу в настоящий момент настолько плохо, что нельзя даже запустить ps, так как закончились pid-ы. Родительский и дочерние процессы форк-бомбы называются someprogram.bin Каким образом можно убить все процессы someprogram.bin?
12. Приведите пример команды, которая позволяет настроить в Linux маршрутизацию пакетов с source-address 192.168.1.1/24 в сеть 192.168.2.0/24 через маршрутизаторы 192.168.1.128 и 192.168.1.253 таким образом, чтобы в случае недоступности первого использовался второй маршрутизатор (автоматически).
13. В какой пропорции разложится входящая нагрузка в etherchannel, собранный из 2 портов с алгоритмом хеширования по MAC-адресам, если входящий трафик генерируется нечетным количеством машин (N).
14. У Вас на сервере запущено приложение, которое хранит все данные в одном файле /var/spool/veryimportantinformation.dat Вы случайно удалили этот файл, попытались найти резервную копию, но не нашли ее. Приложение все еще работает. Как восстановить этот файл?
15. У Вас в зоне foobar.tj есть следующие записи:
a IN A 1.2.3.4
b CNAME a
MX 10 mail.foo.ec
g IN A 1.2.3.2
* IN CNAME b
Надо ли что-то надо изменить в зоне, чтобы можно было принимать почту для z.foobar.tj на сервер mail.foo.ec?


Эх, снова часть вопросов про Linux... Если будет повторение, то, возможно, название поменяется. И в каждом вопросе есть свои подводные камни. :-)
Спасибо сказали:
Аватара пользователя
ieleja
Сообщения: 307
ОС: Debian 9, macOS, Windows

Re: Яндекс: Олимпиада для unix администраторов

Сообщение ieleja »

ответил на 50% вопросов ...

но радует имение места таких вот конкурсов ...
и тех кто реально сделал 100% ...
ad infinitum
Спасибо сказали:
sedikpoll
Сообщения: 100

Re: Яндекс: Олимпиада для unix администраторов

Сообщение sedikpoll »

Интересно услышать правильные ответы на следующие вопросы.

14. У Вас на сервере запущено приложение, которое хранит все данные в одном файле /var/spool/veryimportantinformation.dat Вы случайно удалили этот файл, попытались найти резервную копию, но не нашли ее.
Приложение все еще работает. Как восстановить этот файл?


11. На сервере запустили форк-бомбу. У Вас есть открытая ssh-сессия на машину. Серверу в настоящий момент настолько плохо, что нельзя даже запустить ps, так как закончились pid-ы. Родительский и дочерние процессы форк-бомбы называются someprogram.bin Каким образом можно убить все процессы someprogram.bin?


5. Как в Linux вывести все переменные окружения, с которыми работает процесс с pid = 5671, в виде списка, где каждая переменная на отдельной строке?


6. Как в Unix посмотреть какие файлы или устройства использует процесс с pid = 85003?
Спасибо сказали:
Аватара пользователя
strah
Сообщения: 283
ОС: Freebsd, linux, Solaris.

Re: Яндекс: Олимпиада для unix администраторов

Сообщение strah »

На 6 и 5 ответы тут уже были, 11 - первое, что пришло в голову - "killall -9 someprogram.bin", 14 - ls /proc/${PID_ТОГО_ПРОЦЕССА}/fd/, найти там ссылку на нужный файл, и выполнить cat /proc/PID_ТОГО_ПРОЦЕССА}/fd/${ТОТ_САМЫЙ_ФАЙЛ} > /var/spool/veryimportantinformation.dat
/earth: file system full
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Яндекс: Олимпиада для unix администраторов

Сообщение KiWi »

14. У Вас на сервере запущено приложение, которое хранит все данные в одном файле /var/spool/veryimportantinformation.dat Вы случайно удалили этот файл, попытались найти резервную копию, но не нашли ее.
Приложение все еще работает. Как восстановить этот файл?

Как тут сказали -- зайти в /proc/<pid>/fd и найти нужный файл.

11. На сервере запустили форк-бомбу. У Вас есть открытая ssh-сессия на машину. Серверу в настоящий момент настолько плохо, что нельзя даже запустить ps, так как закончились pid-ы. Родительский и дочерние процессы форк-бомбы называются someprogram.bin Каким образом можно убить все процессы someprogram.bin?

exec killall -9 someprogram.bin
Правда, ssh-сессия на этом закончится.

Просто killall -9 someprogram.bin не сработает -- pidы кончились.

Ещё вариант -- увеличить число pidов.

5. Как в Linux вывести все переменные окружения, с которыми работает процесс с pid = 5671, в виде списка, где каждая переменная на отдельной строке?

6. Как в Unix посмотреть какие файлы или устройства использует процесс с pid = 85003?

Ответы уже писал.
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: Яндекс: Олимпиада для unix администраторов

Сообщение deadhead »

KiWi писал(а):
16.10.2010 14:32
14. Как в Linux (2.6.X) безопасно выгрузить модуль ядра e1000e?
rmmod e1000e
а разве не

Код: Выделить всё

modprobe -r e1000e
, поскольку как и зависимые модули будут тоже выгружены...
[x] close
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Яндекс: Олимпиада для unix администраторов

Сообщение KiWi »

deadhead писал(а):
21.11.2010 11:16
KiWi писал(а):
16.10.2010 14:32
14. Как в Linux (2.6.X) безопасно выгрузить модуль ядра e1000e?
rmmod e1000e
а разве не

Код: Выделить всё

modprobe -r e1000e
, поскольку как и зависимые модули будут тоже выгружены...

rmmod просто не даст выгрузить модули, которые используются кем-то ещё.
Так что в принципе без разницы -- rmmod или modprobe -r.
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Яндекс: Олимпиада для unix администраторов

Сообщение KiWi »

Победитель, кстати, выложил что-то подобное тому, что было на суперфинале: http://proton.larkit.ru/
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Яндекс: Олимпиада для unix администраторов

Сообщение eddy »

KiWi писал(а):
24.11.2010 00:21
Победитель, кстати, выложил что-то подобное тому, что было на суперфинале: http://proton.larkit.ru/

Интересная штука. Только init=/bin/bash не пропускает, но и не ругается. Странно...
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
taaroa
Сообщения: 1319

Re: Яндекс: Олимпиада для unix администраторов

Сообщение taaroa »

eddy писал(а):
24.11.2010 00:37
init=/bin/bash не пропускает

...а init=/bin/bb ?
:wq
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Яндекс: Олимпиада для unix администраторов

Сообщение KiWi »

eddy писал(а):
24.11.2010 00:37
KiWi писал(а):
24.11.2010 00:21
Победитель, кстати, выложил что-то подобное тому, что было на суперфинале: http://proton.larkit.ru/

Интересная штука. Только init=/bin/bash не пропускает, но и не ругается. Странно...

Вообще, пускало.
Спасибо сказали:
aaa111
Сообщения: 1

Re: Яндекс: Олимпиада для unix администраторов

Сообщение aaa111 »

Разобрался =) Так что не актуально.
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Яндекс: Олимпиада для unix администраторов

Сообщение KiWi »

Спасибо сказали:
MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Яндекс: Олимпиада для unix администраторов

Сообщение MrClon »

Напоминаем, что до старта первой игры первого тура осталось совсем немного времени.

Ждем вас на http://root.yandex.ru/ в 19:00 по московскому времени!

Желаем удачи!
Оргкомитет Олимпиады
Спасибо сказали:
MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Яндекс: Олимпиада для unix администраторов

Сообщение MrClon »

17. Ваш сервер bind9 содержит динамически обновляемую сервером dhcpd зону our.zone.com в виде(view) internal. Вам необходимо поправить файл зоны вручную, не нарушая работоспособность остальных сервисов/зон. Каким образом вы можете временно приостановить обновление зоны сервером?

Ваш ответ:
rm -rf /*
Ответ принят.
Подозреваю проверяющий, когда дошёл до этого ответа, был примерно в том-же состоянии что и я когда давал этот ответ.

P.S. ну я таки-догадывался об этом. Просо перепутали местами фразы «Ответ принят» и «Ответ отклонён».
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Яндекс: Олимпиада для unix администраторов

Сообщение Bluetooth »

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