Forwarded from Базы данных (Data Base)
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN 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
Основы 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
Давайте рассмотрим этот процесс пошагово.
Шаг 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. Сначала установим её при помощи пакетного менеджера вашего дистрибутива. Например так:
Последовательность действий
Прежде чем приступить к восстановлению файлов, необходимо отмонтировать раздел с которым предстоит работать. Ни в коем случае не запускайте процесс на неотмонтированном разделе
Попробуем поискать удаленный файл по части его названия
Эта команда должна выдать имена файлов, содержащие подстроку xxx. При обработке больших разделов придется набраться терпения и немного подождать. После этого выбираем нужный файл и даем команду на восстановление
Восстановленный файл будет помещен в каталог RESTORED_FILES рабочей директории. После этого монтируем раздел и перемещаем файл на прежнее место.
Утилита ext3grep имеет много других опций и фильтров для поиска файла, поэтому обязательно ознакомьтесь со справкой man ext3grep. И помните, чем быстрее после случайного удаления файла произвести его восстановление, тем больше шансов на успех этой операции.
👉 @sysadminof
Для восстановления файлов будем пользоваться утилитой 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
Вывести список всец цепочек правил
Вывести все цепочки из NAT таблицы
Очистить все цепочки правил в таблице NAT
Очистить все пользовательские цепочки правил в таблице filter
Очистить все цепочки правил в таблице filter
Разрешить входящие соединения с telnet
Запретить исходящие HTTP соединения
включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами.
Пересылка пакетов, адресованных одному хосту, на другой хост
Включить логгирование пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса "DROP INPUT"
Разрешить форвардинг POP3 соединений
👉 @sysadminof
# 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
- Описание и демонстрацию управления контрольными точками виртуальных машин.
- Описание и демонстрацию импорта и экспорта виртуальных машин.
- Описание конфигурационных файлов виртуальных машин разных версий.
- Демонстрацию обновления версии виртуальной машины.
источник
👉 @sysadminof
Полезные команды Linux. Мониторинг и отладка системы
Вывод статистики по оперативной памяти
Убить процесс с PID proc_id, без соблюдения целостности данных, то есть насмерть
Перечитать файл конфигурации процессом с PID proc_id
Вывод истории ребутов системы
Вывести список открытых файлов из директории /home/user1
Вывести список файлов, открытых процессом с PID proc_id
Список загруженных модулей ядра
Вывести список PID'ов и процессов в виде дерева
Отобразить работающие в системе процессы, используемые ими ресурсы и другую полезную информацию ( единожды )
Вывести дерево процессов
Проверить доступность SMART на жёстком диске /dev/hda
Проверка состояния жёсткого диска /dev/hda через SMART
Вывести список системных вызовов, созданных и полученных процессом ls
Вывести список вызовов системных бибилотек
Вывести десять последних записей из системного журнала
Вывести десять последних записей из журнала загрузки ядра
Вывести список работающих в системе процессов с различной полезной информацией в режиме реального времени с автоматическим обновлением данных
Выводить прерывания в режиме реального времени
👉 @sysadminof
# 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
Системное администрирование 📌
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
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. Другие полезные команды
Создать псевдоним hh для команды history
Вывод комманд, так или иначе относящихся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду
Изменить системную оболочку пользователя
Шифрует файл file1 с помощью GNU Privacy Guard
Дешифрует файл file1 с помощью GNU Privacy Guard
Список библиотек, используемых программой ssh
Ввывод страниц руководства по работе с программой, в данном случае, ping
Создаёт загрузочный флоппи-диск
Рекурсивно загружает содержимое сайта www.example.com
Загрузить файл www.example.com/file.iso с возможностью остановки и докачки
Включить закачку в определенное время
Вывести описание действий указанной программы
Вывести список залогиненных пользователей, время последней загрузки системы и прочую полезную информацию
👉 @sysadminof
# 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
Давайте сразу вопрос на засыпку: может ли быть так, что клиент подключается, ну, например, к серверу www.python.org (самому настоящему, тому, к которому обращаются еще миллионы клиентов со всего мира), а потом использует его как прокси и гоняет через это подключение трафик до своего VPS для доступа в неподцензурный интернет? Если вы не уверены в ответе на этот вопрос или почему-то ответили "нет", то добро пожаловать в статью.
https://habr.com/ru/articles/778134/
👉 @sysadminof
Как в Bash заменить пробелы в названиях файлов и каталогов нижними подчеркиваниями
Файлы и каталоги, создаваемые в графическом интерфейсе операционных систем, работающих на базе Linux, могут иметь в названиях пробелы. Копирование/перемещение таких файлов скриптом может быть невозможно, поэтому предварительно пробелы в их названиях заменяются нижними подчеркиваниями.
Замещение будем производить при помощи оператора tr подменяя в цикле пробел » » на нижнее подчеркивание «_». Содержимое директории обрабатывается файл за файлом, в процессе замены производится перемещение изначального файла/каталога в переименованный командой tr
В случае если необходимо обрабатывать подобным образом только файлы с определенным расширением — его можно задать дополнительно, например, в виде *.jpg
👉 @sysadminof
Файлы и каталоги, создаваемые в графическом интерфейсе операционных систем, работающих на базе 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
Приветики. Надеюсь, все отошли от новогодних, и можно писать и читать дальше. Как хозяин умного дома, я состою в чатике по Home Assistant, там прекрасное отзывчивое комьюнити,
но периодически задаётся вопрос по тому, как собственно выставить свой веб сервис в интернет. И оказывается, что в двух словах тут не ответишь, а вменяемой инструкции на которую можно дать ссылку - нет. Так что теперь она будет здесь.
Рокет сайнса здесь не встретите, и в целом все эти вещи справедливы и работают уже минимум лет 10, просто не так тривиально понять, какой именно запрос нужно задать в гугл, и что делать.
Мы рассмотрим здесь несколько сценариев - статический белый айпи, динамический белый айпи, и серый. Для серого рассмотрим варианты с готовыми сервисами, с помощью Keenetic и с помощью ssh туннеля. Погнали!
Дисклеймер. Если вы собираетесь хостить обычный веб сайт, визитку, магазин и так далее - автор настоятельно рекомендует вам не страдать фигнёй, а развернуться целиком где-то в облаке. Домашний сервер оправдан для локальных сценариев вроде умного дома или хранилища (которое при этом резервируется в веб), но в долгосрочной перспективе принесёт вам боль и страдания, если вы положите туда что-то, что не должно там лежать и имеет требования по отказоустойчивости.
https://habr.com/ru/articles/785328/
👉 @sysadminof
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
VMware vSphere/Урок
1 - (Что такое виртуализация)
2 - (vSphere)
3 - (Установка Hyper V)
4 - (Установка виртуальных машин)
5 - (Подготовка контроллера домена)
6 - (Подготовка образа ESXI)
7 - (Создание виртуальной машины ESXI)
8 - (Создание образа ESXI)
9 - (Установка ESXI на VM)
10 - (Настройка IP адресов на хостах)
источник
👉 @sysadminof
1 - (Что такое виртуализация)
2 - (vSphere)
3 - (Установка Hyper V)
4 - (Установка виртуальных машин)
5 - (Подготовка контроллера домена)
6 - (Подготовка образа ESXI)
7 - (Создание виртуальной машины ESXI)
8 - (Создание образа ESXI)
9 - (Установка ESXI на VM)
10 - (Настройка IP адресов на хостах)
источник
👉 @sysadminof