Практикум по Linux

Содержание

Слайд 2

План Модули Linux: 35% WSL: 35% Git: 35% Оценка по каждому

План

Модули
Linux: 35%
WSL: 35%
Git: 35%
Оценка по каждому модулю
Активность на занятии
Тест
Получить удостоверение: >

70%
Слайд 3

Преподаватели Ивченко Олег Чернецкий Аркадий Опыт работы с Linux > 6 лет

Преподаватели

Ивченко Олег

Чернецкий Аркадий

Опыт работы с Linux
> 6 лет

Слайд 4

План Linux vs. Windows Подключение к серверу и Jupyter Bash-скрипты основные

План

Linux vs. Windows
Подключение к серверу и Jupyter
Bash-скрипты
основные команды, permissions
shebang
переменные окружения
установка пакетов
Tmux
cron,

at
firewall
Слайд 5

Linux vs. Windows Все файлы равнозначны с точки зрения системы расширение

Linux vs. Windows

Все файлы равнозначны с точки зрения системы
расширение (“суффикс”) не

имеет значения
работа с файлом зависит от прав доступа
Вместо задач - процессы
процесс может быть запущен пользователем
демоном
проще ставить приложения
нет проблем с лицензией ОС
[для увлеченных]. Можно полностью настроить под себя
Слайд 6

Linux vs. Windows Linux используется на всевозможных устройствах: телефоны (Android!) роутеры

Linux vs. Windows

Linux используется на всевозможных устройствах:
телефоны (Android!)
роутеры
Почти все суперкомпьютеры используют

Linux

Linux

Windows

Слайд 7

Архитектура файловой системы Основные каталоги ~$ ls / bin etc lost+found

Архитектура файловой системы

Основные каталоги

~$ ls /
bin etc lost+found opt run

srv usr
boot home lib media proc sbin sys var
dev lib64 mnt root snap tmp
Слайд 8

Подключение к серверу Базовый алгоритм вводим USER@HOST, название сессии сохраняемся

Подключение к серверу

Базовый алгоритм
вводим USER@HOST, название сессии
сохраняемся

Слайд 9

Подключение к серверу Подключиться к серверу: ssh USER@server_hostname USER - см.

Подключение к серверу

Подключиться к серверу:
ssh USER@server_hostname
USER - см. в почте

server_hostname = lorinen.atp-fivt.org
Далее вводим пароль.
Как проще? (и безопаснее)
Слайд 10

Подключение. PowerShell А ещё есть PowerShell. На Win 8.x неудобен. Не

Подключение. PowerShell

А ещё есть PowerShell. На Win 8.x неудобен.
Не умеет ssh.


Ставим Open SSH.
Сервер должен поддерживать шифрование ‘diffie-hellman-group1-sha1’
OpenSSH генерит ключи с правами 644.
Не умеет ssh-copy-id
Но есть сторониий скрипт.
К нему ещё нужен PLink.

Сложно :(

Слайд 11

Подключение. Git Bash Нам понадобится Git (git bash) Есть среда CygWin

Подключение. Git Bash

Нам понадобится Git (git bash)
Есть среда CygWin и встроенные

ssh, scp
Работаем аналогично Linux
/etc/hosts здесь лежит в C:\Program Files\Git\etc\hosts
Слайд 12

Обмен данными

Обмен данными

Слайд 13

Обмен данными

Обмен данными

Слайд 14

Обмен данными

Обмен данными

Слайд 15

Jupyter. Quick start

Jupyter. Quick start

Слайд 16

Jupyter. Quick start

Jupyter. Quick start

Слайд 17

Подключение к серверу

Подключение к серверу

Слайд 18

Tmux https://comtronic.com.au/blog/wp-content/uploads/comtronic_cheatsheet_tmux_A4.pdf Python lib. for Tmux: https://github.com/tmux-python/libtmux

Tmux

https://comtronic.com.au/blog/wp-content/uploads/comtronic_cheatsheet_tmux_A4.pdf
Python lib. for Tmux: https://github.com/tmux-python/libtmux

Слайд 19

Как поставить доп. библиотеку pythonX -m pip install -r requirements.txt

Как поставить доп. библиотеку

pythonX -m pip install -r requirements.txt

Слайд 20

Как поставить доп. библиотеку

Как поставить доп. библиотеку

Слайд 21

Как поставить доп. библиотеку

Как поставить доп. библиотеку

Слайд 22

Как поставить доп. библиотеку

Как поставить доп. библиотеку

Слайд 23

IPtables Что мы обычно делаем в IPtables? Открываем / закрываем порты

IPtables

Что мы обычно делаем в IPtables?
Открываем / закрываем порты
Открываем для траффика

с выбранных хостов

iptables --policy INPUT DROP # ставим политику DROP по умолчанию
iptables -I INPUT -p tcp -s СПИСОК_IP_ЧЕРЕЗ_ЗАПЯТУЮ -j ACCEPT # открываем всё внутри кластера
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # открываем ssh
# Закрываем порт по UDP
iptables -A INPUT -p udp -s 10.10.10.0/24 --dport 111 -j ACCEPT && iptables -A INPUT -p udp -s 127.0.0.1 --dport 111 -j ACCEPT && iptables -A INPUT -p udp --dport 111 -j DROP && iptables-save

Сложно!

Слайд 24

IPtables Есть Uncomplicated firewall (UFW) https://help.ubuntu.com/community/UFW А ещё лучше - ferm

IPtables

Есть Uncomplicated firewall (UFW)
https://help.ubuntu.com/community/UFW
А ещё лучше - ferm
ставим пакет ferm
настраиваем конфиг

/etc/ferm/ferm.conf
ребутаемся
Слайд 25

IPtables Пример: http://gg.gg/ferm-example А как же IPv6? Ferm с ним работает

IPtables

Пример: http://gg.gg/ferm-example
А как же IPv6?
Ferm с ним работает
Если не нужно,

отключите IPv6 явно!

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Добавить в /etc/sysctl/conf

2. sysctl -p

Слайд 26

Cron Запуск задач по расписанию crontab -l # список задач crontab

Cron

Запуск задач по расписанию
crontab -l # список задач
crontab -e # редактирование

задач
Пример

0 */2 * * * /root/check_mem.py # запуск скрипта каждые 2 ч.

Слайд 27

Cron Отправка вывода по Email поставить mailutils ребутнуть service postfix reload

Cron

Отправка вывода по Email
поставить mailutils
ребутнуть service postfix reload
В описание задачи добавить

MAILTO
Пример

MAILTO="k.velkerr@gmail.com"
* * * * * ls -l

Выводится лишнее?
grep
cronic

Слайд 28

Cron Ссылки Конструктор cron-задач Crontab Guru Tutorial по Cron на русском.

Cron

Ссылки
Конструктор cron-задач Crontab Guru
Tutorial по Cron на русском.
Python lib для управления

cron-задачами python-crontab
Осторожно! crontab.write() багнутый!
Crontab-UI
Утилита AT
Guide от IBM