Олимпиада для unix администраторовОлимпиада для unix администраторов(2 тур)


1. Напишите чему будет равен mss, если Вы используете IPv6 и mtu=1450?
Ответ:  1390, при использовании TCP поверх IPv6, MSS должно быть вычислено как максимальная длина пакета минус 60 октетов, так как минимальная длина заголовка IPv6 (т.e., IPv6 заголовок без заголовков расширения) на 20 октетов больше, чем для IPv4.

2. Что в bash напечатает команда echo $((5/2))?
Ответ: Как ни странно, но ответ такой же, как и в первой игре – 2 ;-)

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

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

5. Как в Linux вывести все переменные окружения, с которыми работает процесс с pid = 5671, в виде списка, где каждая переменная на отдельной строке?
Ответ:   На этот  вопрос в шаблоне для проверки забито очень много разных вариантов,  вот парочка из них:  $/proc/5671/environ | strings или $sudo cat /proc/2236/environ | sed 's/\x00/\n/g'

6. Как в Linux или FreeBSD открыть tcp порт 74022 в режиме Listen при помощи утилиты пакета netcat?
Ответ: никак нельзя посмотреть, так как такого порта не может быть.  В протоколе TCP поле "Порт назначения" (DESTINATION PORT) занимает 2 байта, поэтому номер порта не может превышать два в шестнадцатой степени.

7. Как в MySQL посмотреть список текущих сессий?
Ответ:  show processlist в консоли mysql или спецальной утилитой mysqladmin с ключиком processlist,  вообщем ключевое слово – processlist.

8. Как в PostgreSQL посмотреть список текущих сессий?
Ответ:  Тут нужно делать специальный запрос  в базе:  SELECT * from pg_stat_activity. Или так: $ps axu | grep postgre

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

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

11. Напишите пример команд из coreutils, при помощи которых можно разбить содержимое текстового файла на три примерно равных части и поместить их в три разных файла?
Ответ:   Ну тут опять очень много вариантов, но это точно можно сделать с помощью команд split, dd,  tail или head.

12. Как посмотреть в содержимое initrd, собранного mkinitramfs?
Ответ:  $zcat |cpio -i --make-directories или разархивировать с помощью команды gunzip, а потом  сказать $mount -o loop initrd.img /mnt/initrd

13. Какой утилитой в Linux посмотреть время наработки диска в часах?
Ответ:  Например, это можно сделать с помощью smartctl или sg_utils.

14. Как в Linux (2.6.X) безопасно выгрузить модуль ядра e1000e?
Ответ:  С помощью команды $modprobe -r e1000e

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

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

17. Какими командами можно узнать mac-адрес сервера, доступа к которому у Вас нет, и он находится вашем сегменте ethernet сети? При этом известен его ip и до этого момента обмена ip-пакетами с этим сервером не было.
Ответ:   Для начала надо с ним обменяться пакетами. Например, это можно сделать с помощью команды ping, ну а потом можно посмотреть его mac  в arp таблице с помощью команды arp.

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

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

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

21. Какой командой посмотреть, какие из необходимых программе библиотек недоступны при ее запуске?
Ответ:  С помощью любимой команды системных администраторов - strace или можно использовать ldd или gdb.

22. Как посмотреть «дерево» процессов?
Ответ:  Тут тоже сразу можно привести несколько вариантов: pstree или ps ax --forest или ps axf или ps ax -H

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 ?
Ответ:  Адрес хоста (address) совпадает с адресом бродкаста (broadcast) сегмента сети.

25. Как скопировать данные с поврежденного диска /dev/sda на целый /dev/sdb, пропустив только сбойные сектора?
Ответ: Классический вариант - dd if=/dev/sda of=/dev/sdb conv=sync,noerror.
Параметр "conv=sync,noerror" указывает dd не читать блок, если при этом происходит ошибка, но записать в архивируемый файл-образ данные (недостающие входные данные будут заменены нулевыми байтами).
Еще есть  утилиты dd_rescue и ddrescue,  с помощью которых тоже можно решить задачу.

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

27. Как в Linux запретить выделение более 90% физической памяти процессам, при условии, что swap выключен?
Ответ:
канонический ответ согласно документации:
$sysctl -w vm.overcommit_memory=2; sysctl -w vm.overcommit_ratio=90 или
$echo 2 > /proc/sys/vm/overcommit_memory; echo 90 > /proc/sys/vm/overcommit_ratio
28. Как в Linux разрешить маршрутизацию ipv4 пакетов?
Ответ:  sysctl -w net.ipv4.ip_forward=1 или 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 или -i any
Для общения  между сетевым клиентским программным обеспечением и серверным приложением, расположенном на том же компьютере используется интерфейс loopback.

Комментариев нет:

Отправить комментарий