add homework 3.3, questions 1-3

This commit is contained in:
2022-02-16 10:41:42 +07:00
parent a3b6b95ff7
commit 78a0ccf4d8
9 changed files with 64 additions and 7 deletions

View File

@@ -1 +1,2 @@
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/01-intro-01/README.md) по теме "Введение в DevOps".
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/01-intro-01/README.md)
по теме "Введение в DevOps".

View File

@@ -1 +1,2 @@
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-01-vcs/README.md) по теме "Системы контроля версий".
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-01-vcs/README.md)
по теме "Системы контроля версий".

View File

@@ -1,4 +1,5 @@
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-02-base/README.md) по теме "Основы Git".
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-02-base/README.md)
по теме "Основы Git".
### Other repos

View File

@@ -1 +1,2 @@
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-03-branching/README.md) по теме "Ветвления в Git".
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-03-branching/README.md)
по теме "Ветвления в Git".

View File

@@ -1,4 +1,5 @@
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-04-tools/README.md) по теме "Инструменты Git".
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/02-git-04-tools/README.md)
по теме "Инструменты Git".
## Git search

View File

@@ -1,4 +1,5 @@
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/03-sysadmin-01-terminal/README.md) по теме "Работа в терминале, лекция 1".
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/03-sysadmin-01-terminal/README.md)
по теме "Работа в терминале, лекция 1".
## Q/A

View File

@@ -1,4 +1,5 @@
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/03-sysadmin-02-terminal/README.md) по теме "Работа в терминале, лекция 2".
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/03-sysadmin-02-terminal/README.md)
по теме "Работа в терминале, лекция 2".
## Q/A

View File

@@ -0,0 +1,49 @@
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/03-sysadmin-03-os/README.md)
по теме "3.3. Операционные системы, лекция 1".
## Q/A
1. Какой системный вызов делает команда `cd`?
Для удобства поиска перенаправим вывод команды `strace` в утилиту `less`
```shell
strace /bin/bash -c 'cd /tmp' 2>&1 | less
```
Далее, найдём в трейсе упоминание директории `tmp`, указанной в команде. Таким образом, обнаружим, что команда `cd`
делает системный вызов `chdir("/tmp")`.
2. Используя `strace` выясните, где находится база данных `file` на основании которой она делает свои догадки.
При использовании команды `file` на любом файле, `strace` выведет такую строку:
```
openat(AT_FDCWD, "/usr/share/misc/magic.mgc", O_RDONLY) = 3
```
Предположительно, `/usr/share/misc/magic.mgc` - это и есть база данных для команды `file`.
3. Предложите способ обнуления открытого удаленного файла (чтобы освободить место на файловой системе)
Зная PID процесса и то, что каждый процесс пишет свои потоки в файлы в директории `/proc/<PID>/fd`.
Таким образом, можно найти конкретный поток, который пишет в файл, вызвав команду
```shell
ls -la /proc/1988/fd/
total 0
dr-x------ 2 vagrant vagrant 0 Feb 16 03:25 .
dr-xr-xr-x 9 vagrant vagrant 0 Feb 16 03:25 ..
lrwx------ 1 vagrant vagrant 64 Feb 16 03:25 0 -> /dev/pts/0
lrwx------ 1 vagrant vagrant 64 Feb 16 03:25 1 -> /dev/pts/0
lrwx------ 1 vagrant vagrant 64 Feb 16 03:25 2 -> /dev/pts/0
lr-x------ 1 vagrant vagrant 64 Feb 16 03:25 3 -> /tmp/do_not_delete_me
```
В данном случае, поток под номером 3 держит соединение с искомым файлом. Таким образом, чтобы обнулить данный файл,
достаточно направить пустую строку в данный поток:
```shell
echo "" > /proc/1988/fd/3
```