mirror of
https://github.com/Dannecron/netology-devops.git
synced 2025-12-25 23:32:37 +03:00
add homework 3.3, questions 1-3
This commit is contained in:
@@ -11,3 +11,4 @@
|
|||||||
* [2.4 Ветвления в Git](/src/homework/2.4)
|
* [2.4 Ветвления в Git](/src/homework/2.4)
|
||||||
* [3.1 Работа в терминале, лекция 1](/src/homework/3.1)
|
* [3.1 Работа в терминале, лекция 1](/src/homework/3.1)
|
||||||
* [3.2 Работа в терминале, лекция 2](/src/homework/3.2)
|
* [3.2 Работа в терминале, лекция 2](/src/homework/3.2)
|
||||||
|
* [3.3. Операционные системы, лекция 1](/src/homework/3.3)
|
||||||
|
|||||||
@@ -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".
|
||||||
|
|||||||
@@ -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)
|
||||||
|
по теме "Системы контроля версий".
|
||||||
|
|||||||
@@ -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
|
### Other repos
|
||||||
|
|
||||||
|
|||||||
@@ -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".
|
||||||
|
|||||||
@@ -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
|
## Git search
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
## Q/A
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
## Q/A
|
||||||
|
|
||||||
|
|||||||
49
src/homework/3.3/readme.md
Normal file
49
src/homework/3.3/readme.md
Normal 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
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user