User Tools

Site Tools


trash:yandex_useful

root.yandex.1.1

1. С помощью каких комбинаций клавиш в текстовых редакторах vi или vim скопировать в буфер 4 строки, начиная со строки, где находится курсор?

Ваш ответ:

4Y

2. Вы в bash запустили команду echo $[5/2]. Какой будет результат?

Ваш ответ:

2

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

Ваш ответ:

-ge

4. Вам нужно запустить web-сервер Apache на порту 3128. С помощью какой директивы в конфигурационном файле это можно сделать?

Ваш ответ:

Listen 0.0.0.0:3128

5. Как в Linux узнать текущий рабочий каталог процесса с pid = 4556?

Ваш ответ:

ls -la /proc/4556/cwd
pwdx 4556

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

Ваш ответ:

lsof -p 85003

7. Какие из перечисленных типов хранилищ в MySQL поддерживают транзакционность: MyISAM, Memory, InnoDB, Archive, NDB, CSV?

Ваш ответ:

InnoDB, NDB

8. Как в PostgreSQL очистить файлы баз данных от уже удалённых записей?

Ваш ответ:

VACUUM VERBOSE ANALYZE <tablename>
vacuumdb -a

9. Как очистить лог-файл /var/log/log, открытый работающим процессом?

Ваш ответ:

echo "" > /var/log/log

10. Вы зашли на сервер с Linux с помощью ssh. Как перегрузить этот сервер по sysrq-b?

Ваш ответ:

sysctl -w kernel.sysrq=1
echo b > /proc/sysrq-trigger

11. Как подсчитать количество строк в текстовом файле file.txt?

Ваш ответ:

cat file.txt|wc -l
wc -l < file.txt

12. Как найти подстроку в файле, сжатом с помощью gzip?

Ваш ответ:

zgrep expression file.gz

13. Какой утилитой в Linux можно проверить состояние и включить/выключить кеширование на запись для SAS/SATA устройства (диска)?

Ваш ответ:

sdparm --set=WCE  --save /dev/sda

14. Как посмотреть версию и возможные параметры модуля e1000e для загруженного в настоящий момент ядра в Linux?

Ваш ответ:

modinfo e1000e

15. Как в командной строке bash повторить команду, которую вы набирали ранее?

Ваш ответ:

ctrl+r вызовет поиск по истории, дополнит
либо стрелккой вверх отлистать, если команда набиралась не так давно
либо history, затем !номер_команды_в_истории

16. Какой командой в Linux можно разрешить dump corefile-ов в текущей сессии без ограничения по размеру?

Ваш ответ:

ulimit -c unlimited

17. Как записать 100 пакетов на интерфейсе eth0 в файл mytrace.raw, не ограничивая длину захваченного (captured) пакета?

Ваш ответ:

tcpdump -i eth0 -c 100 -s 0 -w mytrace.raw

18. Как изменить процент зарезервированного для root-а места на файловой системе ext3 до 2%, смонтированной в /filesystem в Linux?

Ваш ответ:

mount|grep filesystem
tune2fs -m 2 /dev/<девайс, смонтированный в /filesystem>

19. Как в Linux смонтировать файловую систему tmpfs размеров 2Гб в /tmpfs?

Ваш ответ:

mount -t tmpfs -o size=2g tmpfs  /tmpfs

20. Как посмотреть таблицы NAT в ╚файрволе╩ на сервере с Linux (ядро 2.6.X)?

Ваш ответ:

iptables -t nat -nL

21. Какой утилитой в Linux можно посмотреть, какие системные вызовы делает работающий процесс?

Ваш ответ:

strace

22. Как посмотреть процессы пользователя vasya, отсортировав их по resident size в порядке убывания?

Ваш ответ:

ps -ef --sort -rss|grep vasya
ps -o ruser=vasya, -o pid, -o rss --sort -rss

23. Как смонтировать каталог /var/log/mydaemon в /mydaemon?

Ваш ответ:

mount -o bind /var/log/mydaemon /mydaemon

24. Какое максимальное число адресов можно использовать в ipv4 сети /26?

Ваш ответ:

64-2(номер сети+броадкаст)=62

25. Как затереть нулями первые 64Мб диска /dev/sda?

Ваш ответ:

dd if=/dev/zero of=/dev/sda bs=65536 count=1024

26. Какова последовательность пакетов tcp при установке соединения (укажите типы пакетов)?

Ваш ответ:

SYN
SYN-ACK
ACK

27. Какой параметр ядра отвечает за максимальный размер памяти, доступный для выделения процессам в Linux?

Ваш ответ:

<del>maxdsiz maxssiz maxtsiz</del>

Ответ отклонён.

28. Как в Linux сделать так, чтобы core-файлы сохранялись c именем /var/tmp/core.{pid}?

Ваш ответ:

echo /var/tmp/core.%P > /proc/sys/kernel/core_pattern

29. Как одной командой ╚сбросить╩ все переменные окружения (сделать ╚пустое╩ окружение) в текущей сессии в Linux?

Ваш ответ:

env -i

30. Как включить jumbo-frames на сетевом интерфейсе eth0?

Ваш ответ:

ifconfig eth0 mtu 9000

root.yandex.1.2

Список Ваших ответов на заданные вопросы:

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

1410
Пояснения:
MSS(полезная нагрузка) = MTU - ipv6-header(40 байт) - TCP-header(20 байт)

2. Что в bash напечатает команда

echo $((5/2))
2

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

if [ -s /var/tmp/core ]
 then
   echo "Y"
fi

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

ServerAdmin www-admin@foo.bar.com

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

cat /proc/5671/environ| xargs -0 -n 1 echo

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

максимальный порт - 65535, открыть не получится

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

mysql> show processlist;

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

su - postgres
psql
select * from pg_stat_activity;

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

cd /usr/mycatalog/ (корень нашей структуры)
find . -type f |xargs rm

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

sysctl -w kernel.panic=10

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

Приблизительно в уме прикинуть треть от размера = <размер>, затем:
split -b <размер> <файл>

12. Как посмотреть в содержимое initrd, собранного mkinitramfs?

zcat <initrd> |cpio -i --make-directories

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

smartctl

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

rmmod -w e1000e

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

ctrl+t

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

ulimit -n

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

arping <ip>

либо ping -c 1 <ip>;arp -an |grep <ip>

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

debugfs -R "stat <`tune2fs -l /dev/sda1 | grep "Journal inode:" | awk {'print $3'}`>" /dev/sda1

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

mount -t tmpfs -o remount,size=4g tmpfs /tmpfs

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

iptables-save

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

ldd

22. Как посмотреть ╚дерево╩ процессов?

pstree

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

mount -o loop 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 ?

192.168.1.191 - адрес броадкаста для сети 192.168.1.128/255.255.255.192, и поэтому не может быть использоват

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

dd if=/dev/sda of=/dev/sdb conv=sync,noerror

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

RST

27. Как в Linux запретить выделение более 90% физической памяти процессам, при условии, что swap выключен?

echo "90" > /proc/sys/vm/overcommit_ratio

28. Как в Linux разрешить маршрутизацию ipv4 пакетов?

sysctl -w net.ipv4.ip_forward=1

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

cat file|sort -n|uniq -c|awk '{if($1>1) {print $0}}'

30. Вы зашли на сервер example.com и запустили там команду wget http://example.com Как посмотреть траффик этого соединения с помощью команды tcpdump?

tcpdump src port 80 and host example.com

root.yandex.2

Список Ваших ответов на заданные вопросы:

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. Есть клиенты, которые работают с этим сервером, и они находятся за пределами описанных выше сетей. Вам необходимо, что бы ответы на запросы отправлялись через тот же интерфейс, через который они были получены. Напишите последовательность команд, которая позволяет это сделать. Для решения задачи используйте статическую маршрутизацию.

Ваш ответ:

делаем две таблицы маршрутизации, к примеру, 101 и 102. потом:

ip ro add default via 1.2.3.1 dev eth0 table 101
ip ro add default via 5.6.7.1 dev eth1 table 102

ip ru add from 1.2.3.4 table 101 pref 101
ip ru add from 5.6.7.1 table 102 pref 102

2. Как в командном режиме vi или vim в текстовом файле заменить в каждой строке файла первые сочетания цифр, которые начинаются с цифры 3, а заканчиваются на цифру 6 (между тройкой и шестеркой могут быть одна или две любых цифры), на подстроку 444?

:%s/^3[0-9]\{1,2\}6/444/g

3. На сервере c помощью mdadm собран программный raid 10 на четырех дисках со следующим параметрами: near=2 far=1 Нумерация дисков начинается с нуля. Какое максимальное количество дисков можно одновременно вынуть из raid-массива не нарушая его работоспособность? Напишите номер или номера этих дисков.

Игрок не дал ответ вовремя.

4. Задачи, работающие на Вашем сервере, требуют большого количества вычислительных мощностей. Вы подозреваете, что governor может необоснованно занижать частоту процессоров. Напишите команды, которыми можно заставить процессоры работать всегда на максимальной частоте, не перегружая сервер и не устанавливая дополнительных утилит.

echo userspace >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
или
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
>/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

5. У вас есть сервер с операционной системой Linux. Памяти на этом сервере 1 гигабайт. Там работает процесс, у которого сегмент кода занимает 500 мегабайт, столько же занимает сегмент данных. Запускаем второй такой же процесс. Мы промаркировали страницы памяти по типам: 1 √ код первого процесса; 2 √ данные первого процесса; 3 √ код второго процесса; 4 √ данные второго процесса. Напишите все номера типов страниц, которые могут оказаться в swap.

2,4

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 то описанного эффекта не наступает. Как можно бороться с описанной проблемой, не ограничивая дисковую активность на сервере и не изменяя его аппаратных характеристик?

на соседней консоли запустить
watch -n 1 `sync; echo 3 > /proc/sys/vm/drop_caches`

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. Почему у Вас не получилось установить соединение?

мы послали пакет  192.168.1.2:someport->1.2.3.4:80
к нам придет пакет 192.168.1.1(внутренний адрес):80->192.168.1.2:someport
т.е. src-addr не будет соответствовать первому пакету.

8. На сервере c помощью mdadm был собран программный raid 0 на четырех дисках. В какой-то момент в серверной проходила уборщица, и неожиданно у сервера исчезло питание. Когда сервер включили, выяснилось, что рейд полностью развалился (mdadm не видит суперблоков). Каким образом можно восстановить данные (собрать рейд) на этой машине? Приведите пример команды.

mdadm --assemble  /dev/md0 /dev/sda /dev/sdb /dev/sde /dev/sdd
mdadm --build /dev/md0 --level=raid0 --raid-devices=4 /dev/sda /dev/sdb /dev/sde /dev/sdd

9. Внезапно на web сервере с Linux выросла нагрузка. Вы зашли на него и обнаружили, что из 1000 соединений 990 приходит с адреса ipv6 ::ffff:1.2.3.4. Вы подозреваете, что это DOS-атака, и хотите заблокировать соединения с этого адреса. Какой командой Вы это сделаете?

iptables -I INPUT -s 1.2.3.4/32 -j DROP

10. На 1.2.3.4: 443 отвечают 3 сайта: forbar.tj, foo.ec и bar.ag по протоколу https. Сколько должно быть сертификатов для этих web сайтов, и что должно в них быть прописано согласно RFC, чтобы браузеры могли им доверять?

Ваш ответ:
на одну пару ip:port можно повесить один сертификат
соответственно, 1 сертификат, в котором в CN указаны все три доменных имени
Ответ отклонён.

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

exec killall -STOP someprogram.bin
exec killall -KILL someprogram.bin
exec busybox/python, откуда в цикле убить
все процессы не порождая новых процессов

12. Приведите пример команды, которая позволяет настроить в Linux маршрутизацию пакетов с source-address 192.168.1.1/24 в сеть 192.168.2.0/24 через маршрутизаторы 192.168.1.128 и 192.168.1.253 таким образом, чтобы в случае недоступности первого использовался второй маршрутизатор (автоматически).

ip rule add from  192.168.1.1/24 lookup 2
ip rule add from 192.168.1.1/24  lookup 3
ip route add 192.168.2.0/24  via 192.168.1.128  table 2 priority 10
ip route add 192.168.2.0/24  via  192.168.1.253  table 3 priority 20

13. В какой пропорции разложится входящая нагрузка в etherchannel, собранный из 2 портов с алгоритмом хеширования по MAC-адресам, если входящий трафик генерируется нечетным количеством машин (N).

(n+1)/2:(n-1)/2

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

1. используя lsof, находим PID процесса, держащий файл и его дескриптор (FD)
удаленный файл будет симлинком в /proc/$PID/fd, но /proc разрешит скопировать следующим образом:
2. cp /proc/$PID/fd/$FD /var/tmp/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?

Нет, не надо, т.к. в случае cname почта будет отсылаться на mx
trash/yandex_useful.txt · Last modified: 2010/11/18 12:01 by slayer