Системный Администратор (Сисадмин)
13.3K subscribers
1.56K photos
1.36K videos
87 files
1.6K links
Настройка серверов Windows, Linux, сетевое оборудование Cisco Systems, D-Link, HP, Huawei, Juniper, MikroTik. Книги и мануалы для сисадминов.
По всем вопросам @evgenycarter

РКН clck.ru/3KoGJ3
Download Telegram
SQL: история, теория и практика

Основы SQL Тема 1.1: История возникновения
Основы SQL Тема 1.2: Нормализация
Основы SQL Тема 1.3: Проектирование схемы данных
Основы SQL Тема 2.1: Операторы и практика работы с запросами
Основы SQL Тема 2.2 : Практика работы с запросами
SQL Тема 3.1: Вложенные запросы
SQL Тема 3.2: Вложенные запросы
SQL Тема 4: Приемы анализа и оптимизации запросов
SQL Тема 5.1: Дополнительные средства некоторых баз данных
Тема 5.2: Дополнительные средства некоторых баз данных

источник

#db

👉 @database_info
This media is not supported in your browser
VIEW IN TELEGRAM
Что происходит, когда вы вводите в браузер URL-адрес?

Давайте рассмотрим этот процесс пошагово.

Шаг 1. Пользователь вводит в браузер URL и нажимает Enter. Первое, что нам нужно сделать, это преобразовать URL в IP-адрес. Сопоставление обычно хранится в кэше, поэтому браузер ищет IP-адрес в нескольких уровнях кэша: кэше браузера, кэше ОС, локальном кэше и кэше провайдера. Если браузер не смог найти сопоставление в кэше, он обращается к DNS (Domain Name System) resolver для его разрешения.

Шаг 2. Если IP-адрес не удается найти ни в одном из кэшей, браузер обращается к DNS-серверам для выполнения рекурсивного DNS-поиска, пока IP-адрес не будет найден.

Шаг 3. Теперь, когда у нас есть IP-адрес сервера, браузер посылает на него HTTP-запрос. Для безопасного доступа к ресурсам сервера всегда следует использовать протокол HTTPS. Сначала браузер устанавливает TCP-соединение с сервером с помощью трехстороннего рукопожатия TCP. Затем он посылает открытый ключ клиенту. Клиент использует открытый ключ для шифрования сеансового ключа и отправляет его серверу. Сервер использует закрытый ключ для расшифровки сеансового ключа. Теперь клиент и сервер могут обмениваться зашифрованными данными с использованием сеансового ключа.

Шаг 4. Сервер обрабатывает запрос и отправляет ответ. Для успешного ответа код состояния равен 200. Ответ состоит из трех частей: HTML, CSS и Javascript. Браузер анализирует HTML и формирует дерево DOM. Он также анализирует CSS и генерирует дерево CSSOM. Затем он объединяет дерево DOM и дерево CSSOM в дерево рендеринга. Браузер отображает содержимое и показывает его пользователю.

👉 @sysadminof
Восстановление удаленных файлов на ext3

Для восстановления файлов будем пользоваться утилитой ext3grep. Сначала установим её при помощи пакетного менеджера вашего дистрибутива. Например так:

# apt-get install ext3grep

Последовательность действий
Прежде чем приступить к восстановлению файлов, необходимо отмонтировать раздел с которым предстоит работать. Ни в коем случае не запускайте процесс на неотмонтированном разделе

# umount /mnt/sdb1/

Попробуем поискать удаленный файл по части его названия

# ext3grep --dump-names /dev/sdb1 |grep -i xxx

Эта команда должна выдать имена файлов, содержащие подстроку xxx. При обработке больших разделов придется набраться терпения и немного подождать. После этого выбираем нужный файл и даем команду на восстановление

# ext3grep --restore-file xxx.avi /dev/sdb1

Восстановленный файл будет помещен в каталог RESTORED_FILES рабочей директории. После этого монтируем раздел и перемещаем файл на прежнее место.

# mount /mnt/sdb1
# mv RESTORED_FILES/xxx.avi -t /mnt/sdb1/


Утилита ext3grep имеет много других опций и фильтров для поиска файла, поэтому обязательно ознакомьтесь со справкой man ext3grep. И помните, чем быстрее после случайного удаления файла произвести его восстановление, тем больше шансов на успех этой операции.

👉 @sysadminof
Полезные команды Linux. Фаервол IPTABLES, штатный, для большинства дистрибутивов Linux

# iptables -t filter -L
Вывести список всец цепочек правил
# iptables -t nat -L
Вывести все цепочки из NAT таблицы
# iptables -t nat -F
Очистить все цепочки правил в таблице NAT
# iptables -t filter -X
Очистить все пользовательские цепочки правил в таблице filter
# iptables -t filter -F
Очистить все цепочки правил в таблице filter
# iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT
Разрешить входящие соединения с telnet
# iptables -t filter -A OUTPUT -p tcp --dport http -j DROP
Запретить исходящие HTTP соединения
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами.
# iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22
Пересылка пакетов, адресованных одному хосту, на другой хост
# iptables -t filter -A INPUT -j LOG --log-prefix
Включить логгирование пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса "DROP INPUT"
# iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT
Разрешить форвардинг POP3 соединений

👉 @sysadminof
Media is too big
VIEW IN TELEGRAM
Импорт и экспорт виртуальных машин Hyper-V в Windows 10

- Описание и демонстрацию управления контрольными точками виртуальных машин.
- Описание и демонстрацию импорта и экспорта виртуальных машин.
- Описание конфигурационных файлов виртуальных машин разных версий.
- Демонстрацию обновления версии виртуальной машины.

источник

👉 @sysadminof
Полезные команды Linux. Мониторинг и отладка системы

# free -m
Вывод статистики по оперативной памяти
# kill -9 proc_id
Убить процесс с PID proc_id, без соблюдения целостности данных, то есть насмерть
# kill -1 proc_id
Перечитать файл конфигурации процессом с PID proc_id
# last reboot
Вывод истории ребутов системы
# lsof /home/user1
Вывести список открытых файлов из директории /home/user1
# lsof -p proc_id
Вывести список файлов, открытых процессом с PID proc_id
# lsmod
Список загруженных модулей ядра
# ps -e -o pid,args --forest
Вывести список PID'ов и процессов в виде дерева
# ps -eafw
Отобразить работающие в системе процессы, используемые ими ресурсы и другую полезную информацию ( единожды )
# pstree
Вывести дерево процессов
# smartctl -i /dev/hda
Проверить доступность SMART на жёстком диске /dev/hda
# smartctl -A /dev/hda
Проверка состояния жёсткого диска /dev/hda через SMART
# strace -c ls >/dev/null
Вывести список системных вызовов, созданных и полученных процессом ls
# strace -f -e open ls >/dev/null
Вывести список вызовов системных бибилотек
# tail /var/log/messages
Вывести десять последних записей из системного журнала
# tail /var/log/dmesg
Вывести десять последних записей из журнала загрузки ядра
# top
Вывести список работающих в системе процессов с различной полезной информацией в режиме реального времени с автоматическим обновлением данных
# watch -n1 'cat /proc/interrupts'
Выводить прерывания в режиме реального времени

👉 @sysadminof
Подборка Telegram каналов для программистов

Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux


https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)

https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика

https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике

https://t.me/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста

1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus

Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
https://t.me/game_devv Все о разработке игр

Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT

Чат программистов📌
https://t.me/developers_ru

Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов

БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию

QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://t.me/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров

Английский 📌
https://t.me/UchuEnglish Английский с нуля

Математика 📌
https://t.me/Pomatematike Канал по математике

Excel лайфхак📌
https://t.me/Excel_lifehack
bash.pdf
3.6 MB
Bash-скрипты, руководство в 11 частях

Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

👉 @sysadminof
Полезные команды Linux. Другие полезные команды

# alias hh='history'
Создать псевдоним hh для команды history
# apropos ...keyword
Вывод комманд, так или иначе относящихся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду
# chsh
Изменить системную оболочку пользователя
# gpg -c file1
Шифрует файл file1 с помощью GNU Privacy Guard
# gpg file1.gpg
Дешифрует файл file1 с помощью GNU Privacy Guard
# ldd /usr/bin/ssh
Список библиотек, используемых программой ssh
# man ping
Ввывод страниц руководства по работе с программой, в данном случае, ping
# mkbootdisk --device /dev/fd0 uname -r
Создаёт загрузочный флоппи-диск
# wget -r www.example.com
Рекурсивно загружает содержимое сайта www.example.com
# wget -c www.example.com/file.iso
Загрузить файл www.example.com/file.iso с возможностью остановки и докачки
# echo 'wget -c www.example.com/files.iso' | at 09:00
Включить закачку в определенное время
# whatis ...keyword
Вывести описание действий указанной программы
# who -a
Вывести список залогиненных пользователей, время последней загрузки системы и прочую полезную информацию

👉 @sysadminof
Domain fronting для чайников, и как его использовать для обхода блокировок

Давайте сразу вопрос на засыпку: может ли быть так, что клиент подключается, ну, например, к серверу www.python.org (самому настоящему, тому, к которому обращаются еще миллионы клиентов со всего мира), а потом использует его как прокси и гоняет через это подключение трафик до своего VPS для доступа в неподцензурный интернет? Если вы не уверены в ответе на этот вопрос или почему-то ответили "нет", то добро пожаловать в статью.

https://habr.com/ru/articles/778134/

👉 @sysadminof
Как в Bash заменить пробелы в названиях файлов и каталогов нижними подчеркиваниями

Файлы и каталоги, создаваемые в графическом интерфейсе операционных систем, работающих на базе Linux, могут иметь в названиях пробелы. Копирование/перемещение таких файлов скриптом может быть невозможно, поэтому предварительно пробелы в их названиях заменяются нижними подчеркиваниями.

Замещение будем производить при помощи оператора tr подменяя в цикле пробел » » на нижнее подчеркивание «_». Содержимое директории обрабатывается файл за файлом, в процессе замены производится перемещение изначального файла/каталога в переименованный командой tr

for i in *;do mv «$i» `echo $i| tr » » «_»`; done


В случае если необходимо обрабатывать подобным образом только файлы с определенным расширением — его можно задать дополнительно, например, в виде *.jpg

👉 @sysadminof
Публикация локального сервера из дома в интернет

Приветики. Надеюсь, все отошли от новогодних, и можно писать и читать дальше. Как хозяин умного дома, я состою в чатике по Home Assistant, там прекрасное отзывчивое комьюнити,
но периодически задаётся вопрос по тому, как собственно выставить свой веб сервис в интернет. И оказывается, что в двух словах тут не ответишь, а вменяемой инструкции на которую можно дать ссылку - нет. Так что теперь она будет здесь.

Рокет сайнса здесь не встретите, и в целом все эти вещи справедливы и работают уже минимум лет 10, просто не так тривиально понять, какой именно запрос нужно задать в гугл, и что делать.

Мы рассмотрим здесь несколько сценариев - статический белый айпи, динамический белый айпи, и серый. Для серого рассмотрим варианты с готовыми сервисами, с помощью Keenetic и с помощью ssh туннеля. Погнали!

Дисклеймер. Если вы собираетесь хостить обычный веб сайт, визитку, магазин и так далее - автор настоятельно рекомендует вам не страдать фигнёй, а развернуться целиком где-то в облаке. Домашний сервер оправдан для локальных сценариев вроде умного дома или хранилища (которое при этом резервируется в веб), но в долгосрочной перспективе принесёт вам боль и страдания, если вы положите туда что-то, что не должно там лежать и имеет требования по отказоустойчивости.

https://habr.com/ru/articles/785328/

👉 @sysadminof
VMware vSphere/Урок

1 - (Что такое виртуализация)
2 - (vSphere)
3 - (Установка Hyper V)
4 - (Установка виртуальных машин)
5 - (Подготовка контроллера домена)
6 - (Подготовка образа ESXI)
7 - (Создание виртуальной машины ESXI)
8 - (Создание образа ESXI)
9 - (Установка ESXI на VM)
10 - (Настройка IP адресов на хостах)

источник

👉 @sysadminof