uz
Feedback

Firibgarlarga uchmang! Telemetrio bunday kanallarni topadi va belgilaydi 👉 Belgini ko‘rmoqchi bo‘lsangiz, obuna bo‘ling

Linux: Системный администратор

Linux: Системный администратор

Kanalga Telegram’da o‘tish

Здесь вы найдете полезные советы, практические материалы и интересные инсайты по администрированию Linux. Погружаемся в мир команд, скриптов и серверов вместе! 🚀 Авторский канал действующего админа 👨🏼‍💻

Ko'proq ko'rsatish
1 930
Obunachilar
+124 soatlar
+37 kun
+1030 kun
Postlar arxiv
🚀 Как ускорить загрузку системы в Linux? Ну и последний на сегодня пост! Разберёмся, как ускорить загрузку Linux-севера, ведь время старта системы — это важный показатель, особенно для критичных сервисов. 🔥 1. Анализируем задержки загрузки Используем systemd-analyze для проверки времени загрузки:

systemd-analyze
Вы увидите разбивку по этапам загрузки. Чтобы детализировать задержки:

systemd-analyze blame
Эта команда покажет, какие сервисы дольше всего стартуют. 🔥 2. Отключаем ненужные сервисы Если нашли сервисы, которые загружаются долго и не нужны, их можно отключить:

systemctl disable сервис
systemctl mask сервис  # Полное отключение
Например, если у вас сервер без графического интерфейса:

systemctl disable gdm
🔥 3. Оптимизируем файловую систему Если у вас ext4, можно включить journal_async_commit для ускорения работы:

tune2fs -o journal_async_commit /dev/sdX
А ещё полезно отключить проверку диска при каждом `X`-м запуске:

tune2fs -c 0 /dev/sdX
🔥 4. Настраиваем параллельную загрузку сервисов Редактируем grub:

nano /etc/default/grub
Добавляем в GRUB_CMDLINE_LINUX_DEFAULT:

quiet splash systemd.legacy_boot=false
После чего обновляем загрузчик:

update-grub
🔥 5. Используем preload Устанавливаем preload, чтобы кешировать часто используемые библиотеки:

apt install preload -y  # Для Debian/Ubuntu
yum install preload -y  # Для RHEL/CentOS
Этот сервис будет следить за тем, какие файлы используются чаще всего, и загружать их в память заранее. 👉 А какие ещё способы ускорения загрузки вы используете? Делитесь в комментариях! 💬 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

📌 Топ команд htop, о которых ты мог не знать! Привет, админы! Сегодня я покажу вам, как выжать максимум из htop – мощного интерактивного монитора процессов. Многие пользуются им для просмотра нагрузки на систему, но знаете ли вы о его скрытых фишках? Давайте разбираться! 🔥 Полезные команды: 1️⃣ F2 (Setup) – Настройка интерфейса. Можно скрыть ненужные столбцы или поменять цветовую схему. 2️⃣ F3 (Search) – Быстрый поиск процесса по имени. 3️⃣ F4 (Filter) – Фильтрация процессов по имени или команде. 4️⃣ F5 (Tree View) – Отображение процессов в виде древовидной структуры. Очень удобно для отладки зависимостей! 5️⃣ F6 (Sort By) – Изменение сортировки (CPU, MEM, PID и т.д.). 6️⃣ F7/F8 – Изменение приоритета (nice) процессов на лету. 7️⃣ F9 (Kill) – Убийство процесса без выхода из htop. 💡 Дополнительные лайфхаки: 🔹 Shift + U – Снимает выделение всех процессов. 🔹 Shift + P / M / T – Быстро сортирует по CPU, памяти или времени выполнения. 🔹 H – Подсветка зависимых процессов (родитель-потомок). 🔹 I – Инвертирует сортировку, полезно при анализе. А вы знали про эти фишки? Делитесь в комментариях, как используете htop в повседневной работе! 👇🚀 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

📌 Как восстановить удаленные файлы в Linux? Привет, коллеги! Сегодня разберем одну из самых неприятных ситуаций – случайное удаление важных файлов. 😱 🔹 Первое правило – не паниковать! Главное – не записывать новые данные на диск, откуда был удален файл, иначе его будет сложнее восстановить. 🛠 Способы восстановления: 1️⃣ Корзина (Trash) Если файл был удален через GUI (например, Nautilus или Dolphin), проверьте ~/.local/share/Trash/. 2️⃣ Команда lsof (если файл еще открыт процессом) Иногда процесс продолжает использовать удаленный файл:

lsof | grep '(deleted)'
Можно скопировать содержимое из /proc/<PID>/fd/<FD> в новый файл. 3️⃣ Восстановление через extundelete (для ext4) Если файл был удален с раздела ext4, используем extundelete:

sudo umount /dev/sdX1  # Размонтируем раздел
sudo extundelete /dev/sdX1 --restore-all
Файлы восстанавливаются в папку RECOVERED_FILES. 4️⃣ Photorec – восстановление данных с диска Подходит для файловых систем ext4, NTFS, FAT и других:

sudo apt install testdisk  # Устанавливаем пакет
sudo photorec
Выбираем диск и начинаем поиск удаленных файлов. 5️⃣ grep в raw-данных (если знаем содержимое) Можно попробовать найти фрагменты файла прямо на диске:

grep -a -b "текст из файла" /dev/sdX
Где -a указывает, что это текст, а -b показывает смещение. 🔥 Лучший способ защиты – бэкапы! Используйте rsnapshot, borg, restic или хотя бы rsync для резервного копирования. 💬 А какие методы восстановления использовали вы? Делитесь опытом в комментариях! 👇 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

📌 Оптимизация автозапуска сервисов в Linux: избавляемся от лишнего Привет, админы! Сегодня разберём важную тему — автозапуск сервисов в Linux. Бывает, что после установки системы или пакетов в автозапуске оказываются ненужные сервисы, которые грузят память и процессор. Давайте это исправим! 🔹 Проверяем список сервисов

systemctl list-unit-files --type=service | grep enabled
Эта команда покажет все сервисы, включённые в автозапуск. 🔹 Отключаем ненужные сервисы Например, если вам не нужен Bluetooth, его можно отключить:

sudo systemctl disable bluetooth.service
А если сервис запущен, то сразу и останавливаем:

sudo systemctl stop bluetooth.service
🔹 Полностью маскируем сервис (если он не нужен совсем)

sudo systemctl mask bluetooth.service
Это запретит его запуск даже вручную. 🔹 Проверяем скорость загрузки системы Чтобы понять, какие сервисы тормозят загрузку:

systemd-analyze blame
Самые долгие процессы будут вверху списка. Зачастую можно отключить NetworkManager-wait-online.service, если сервер работает без GUI:

sudo systemctl disable NetworkManager-wait-online.service
👉 Оптимизация автозапуска не только ускоряет загрузку, но и снижает нагрузку на систему. Делаете ли вы ревизию сервисов на своих серверах? Пишите в комментах! 🚀 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🚀 Оптимизация SSH: Как ускорить подключение к серверу? Всем привет! Сегодня разберем, как ускорить подключение к серверу по SSH. Замечали, что иногда при подключении бывает задержка в несколько секунд? Это может раздражать, особенно если приходится часто подключаться к разным серверам. Давайте разберем причины и решения. 🔍 Основные причины задержки 1️⃣ Reverse DNS Lookup – сервер пытается выполнить обратное разрешение IP-адреса клиента. 2️⃣ GSSAPI-аутентификация – ненужная проверка, которая включена по умолчанию. 3️⃣ Плохая сеть или высокий RTT – если сеть нестабильна, время подключения может увеличиваться. ⚡ Ускоряем SSH ✅ Отключаем обратное разрешение IP На сервере редактируем файл /etc/ssh/sshd_config:

UseDNS no
Перезапускаем SSH:

systemctl restart sshd
✅ Отключаем GSSAPI-аутентификацию На клиенте в ~/.ssh/config добавляем:

Host *
    GSSAPIAuthentication no
Или редактируем /etc/ssh/ssh_config глобально. ✅ Используем ControlMaster (ускоряет повторные подключения) В ~/.ssh/config добавляем:

Host *
    ControlMaster auto
    ControlPath ~/.ssh/master-%r@%h:%p
    ControlPersist 10m
Теперь, если уже есть активное соединение, новое подключение будет мгновенным! 🔥 Итог Эти три простых настройки могут заметно ускорить вашу работу с SSH. Попробуйте и напишите в комментариях, помогло ли вам! #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

📜 Bash-скрипт для очистки логов: автоматизируем рутину Логи – полезная вещь, но если их не чистить, диск быстро заполняется. Вот простой Bash-скрипт, который удаляет старые логи, оставляя только свежие:

#!/bin/bash

LOG_DIR="/var/log"
DAYS=7

find $LOG_DIR -type f -name "*.log" -mtime +$DAYS -exec rm -f {} \;

echo "Очистка логов старше $DAYS дней завершена."
📌 Как использовать? 1️⃣ Сохраните скрипт как clear_logs.sh. 2️⃣ Дайте права на выполнение:

   chmod +x clear_logs.sh
   
3️⃣ Добавьте в cron, чтобы запускался раз в день:

   crontab -e
   
И добавьте строку:

   0 2 * * * /path/to/clear_logs.sh
   
Теперь логи будут чиститься автоматически каждую ночь в 2:00. А как вы боретесь с мусором в /var/log? 🤔 Делитесь своими решениями в комментариях! #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

⚡ Как удалить огромную папку в Linux за секунды? Удаление больших папок в Linux может занять очень много времени. Особенно, если делать это через rm -rf. 💡 Альтернативные способы удаления: ✅ Удаляем быстрее с rsync:

rsync -a --delete empty_dir/ target_dir/
Заменяем target_dir на пустую папку и мгновенно очищаем ее. ✅ Используем find и xargs:

find /bigdir -type f -delete
find /bigdir -depth -type d -delete
Сначала удаляем файлы, потом папки – так быстрее. ✅ Удаляем через inode: Если папка – это отдельный монтированный диск, можно просто отмонтировать и форматнуть:

umount /bigdir
mkfs.ext4 /dev/sdX
Какой способ используете вы? #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🛠 Как проверить загрузку процессора в Linux? Производительность сервера – это первое, что проверяют при проблемах. Если сервер тормозит, первым делом смотрим на CPU. 📌 Вот несколько полезных команд: 🔹 top – показывает загрузку CPU в реальном времени. 🔹 htop – более удобная версия top с цветным интерфейсом. 🔹 mpstat -P ALL 1 – детальный анализ нагрузки по ядрам. 🔹 sar -u 1 10 – сбор данных о загрузке процессора в динамике. 🔹 iostat -c 1 – еще один способ посмотреть загрузку CPU. 🔎 На что смотреть? 📌 Высокий %user – процессы активно используют CPU. 📌 Высокий %iowait – узкое место в дисковой системе. 📌 %steal – возможно, вам не хватает процессорных ресурсов на виртуальной машине. А какая ваша любимая команда для мониторинга CPU? Делитесь в комментариях! #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

2️⃣ Почему kill -9 не всегда хорошая идея? Один из самых частых способов убить процесс в Linux – это команда:

kill -9 PID
Но почему её не стоит использовать бездумно? 🔸 -9 (SIGKILL) моментально завершает процесс без шанса на очистку ресурсов. Это может привести к: - Потере несохранённых данных - Оставлению зомби-процессов - Проблемам с зависимыми процессами Лучше использовать более "мягкие" сигналы: 1️⃣ kill PID (SIGTERM) – вежливо просит процесс завершиться. 2️⃣ kill -15 PID – то же самое, но явно. 3️⃣ kill -1 PID (SIGHUP) – для перезапуска демонов. 4️⃣ kill -2 PID (SIGINT) – аналог Ctrl+C. Используйте kill -9 только в крайнем случае, когда процесс завис и не отвечает на другие сигналы. Какой у вас самый жёсткий случай с kill -9? Делитесь в комментариях! 💀 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

1️⃣ Как проверить скорость интернета в Linux через терминал? Если вам нужно быстро замерить скорость интернета на сервере или рабочей машине без браузера, используйте один из этих инструментов: 1️⃣ Speedtest CLI Установите и запустите:

   sudo apt install speedtest-cli  # для Ubuntu/Debian
   sudo yum install speedtest-cli  # для CentOS/RHEL
   speedtest
   
2️⃣ Fast CLI (от Netflix) Удобный альтернативный инструмент:

   curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3
   
или

   fast
   
3️⃣ nload – мониторинг в реальном времени

   sudo apt install nload
   nload
   
Теперь у вас есть несколько способов быстро проверить скорость соединения. Какой инструмент используете вы? 🌐 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

🛠 Как проверить нагрузку на сервер? Если сервер начал тормозить, первым делом проверяем, что его грузит. Вот полезные команды для диагностики: 🔹 top / htop – показывает загрузку процессора, памяти, активные процессы. 🔹 free -m – проверяет, сколько оперативной памяти занято и сколько доступно. 🔹 df -h – смотрит свободное место на диске. 🔹 iostat -x 1 – помогает определить проблемы с дисковым вводом-выводом. 🔹 netstat -tulnp / ss -tulnp – проверяет открытые порты и сетевые подключения. Если сервер под нагрузкой, но процессы неизвестны, попробуйте ps aux --sort=-%cpu или ps aux --sort=-%mem, чтобы найти самых "прожорливых". А какими инструментами диагностики чаще всего пользуетесь вы? #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

Как быстро узнать, какие процессы грузят систему? Если сервер вдруг начал тормозить, первым делом проверяем загрузку CPU и памяти. Вот мои любимые команды: 🔹 top — классика, показывает активные процессы в реальном времени. 🔹 htop — улучшенная версия top с удобным интерфейсом. 🔹 ps aux --sort=-%cpu | head — топ 10 процессов по загрузке CPU. 🔹 ps aux --sort=-%mem | head — топ 10 процессов по потреблению памяти. А если хотите найти, какая конкретно команда грузит диск: iotop -o или iostat -dx 1 Какие инструменты используете вы, когда сервер внезапно начинает «тупить»? 🚀 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

Как проверить, что процесс слушает нужный порт? 🔎 Бывало такое, что сервис не отвечает, и непонятно, слушает ли он вообще нужный порт? Давайте разберёмся, как это проверить. 📡 Способы проверки: 1️⃣ ss (современный вариант `netstat`):

ss -tulnp
- -t — TCP; - -u — UDP; - -l — только слушающие сокеты; - -n — не резолвить имена; - -p — показать процессы. 2️⃣ lsof (список открытых файлов, включая порты):

lsof -i :80
Покажет, какой процесс слушает 80-й порт. 3️⃣ netstat (старый, но работает):

netstat -tulnp
4️⃣ Сокетный тест с `nc`:

nc -zv 127.0.0.1 80
Если порт открыт, увидим сообщение succeeded. 💡 Пример реального кейса: Apache не запускается, потому что другой процесс уже занял порт 80. Как быстро его прибить?

fuser -k 80/tcp
или

kill $(lsof -t -i :80)
Какой метод используете вы? Делитесь в комментариях! 💬 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

Как найти и удалить старые файлы в Linux? 🗑️ Привет, админы! Сегодня разберёмся, как быстро находить и удалять старые файлы в Linux. Это полезно для очистки логов, временных файлов и других ненужных данных. 🔍 Поиск файлов старше 30 дней:

find /path/to/directory -type f -mtime +30
- -type f — ищем только файлы; - -mtime +30 — файлы старше 30 дней. 🗑️ Удаление этих файлов:

find /path/to/directory -type f -mtime +30 -delete
⚠ Осторожно! Удаление без подтверждения. ✅ Безопасный вариант с подтверждением:

find /path/to/directory -type f -mtime +30 -exec rm -i {} \;
Будет запрашиваться подтверждение перед удалением. 🔥 Автоматизация через cron: Добавляем в crontab -e:

0 3 * * * find /var/log -type f -mtime +30 -delete
Очистка логов каждую ночь в 03:00. Как вы решаете проблему старых файлов? Делитесь своими решениями в комментариях! 👇 #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin 👉 @linux_odmin

Как работает HTTPS? Безопасный протокол передачи гипертекста (HTTPS) - это расширение протокола передачи гипертекста (HTTP).
Как работает HTTPS? Безопасный протокол передачи гипертекста (HTTPS) - это расширение протокола передачи гипертекста (HTTP). HTTPS передает зашифрованные данные с использованием транспортного уровня безопасности (TLS). Если данные будут перехвачены в Интернете, все, что получит угонщик, - это двоичный код. Как шифруются и дешифруются данные? Шаг 1 - Клиент (браузер) и сервер устанавливают TCP-соединение. Шаг 2 - Клиент отправляет серверу " client hello". Сообщение содержит набор необходимых алгоритмов шифрования (наборов шифров) и последнюю версию TLS, которую он может поддерживать. Сервер отвечает " server hello", чтобы браузер знал, может ли он поддерживать алгоритмы и версию TLS. Затем сервер отправляет SSL-сертификат клиенту. Сертификат содержит открытый ключ, имя хоста, дату истечения срока действия и т. д. Клиент проверяет сертификат. Шаг 3. После проверки SSL-сертификата клиент генерирует ключ сессии и шифрует его с помощью открытого ключа. Сервер получает зашифрованный ключ сеанса и расшифровывает его с помощью закрытого ключа. Шаг 4 - Теперь, когда клиент и сервер владеют одним и тем же сеансовым ключом (симметричное шифрование), зашифрованные данные передаются по защищенному двунаправленному каналу. Почему HTTPS переключается на симметричное шифрование при передаче данных? Есть две основные причины: 1. Безопасность: Асимметричное шифрование работает только в одну сторону. Это означает, что если сервер попытается отправить зашифрованные данные обратно клиенту, любой сможет расшифровать их с помощью открытого ключа. 2. Ресурсы сервера: Асимметричное шифрование добавляет довольно много математических накладных расходов. Оно не подходит для передачи данных в длительных сессиях. #Шпаргалка@linux_odmin 👉 @linux_odmin

Nginx-Lua-Anti-DDoS Этот репозиторий предоставляет Lua-скрипт для защиты серверов на базе Nginx от DDoS-атак. Он использует в
Nginx-Lua-Anti-DDoS Этот репозиторий предоставляет Lua-скрипт для защиты серверов на базе Nginx от DDoS-атак. Он использует возможности OpenResty и модуля ngx_lua для фильтрации трафика, ограничения запросов и обнаружения подозрительных IP. 🔹 Основные функции: - Проверка и блокировка подозрительных клиентов. - Ограничение количества запросов (rate limiting). - Обнаружение автоматизированных атак и ботов. - Интеграция с Cloudflare, iptables и другими системами. 🔹 Требования: - Nginx с поддержкой Lua (через OpenResty или сборку с модулем `ngx_http_lua_module`). - Возможность редактирования конфигурации сервера. https://github.com/C0nw0nk/Nginx-Lua-Anti-DDoS #Linux@linux_odmin #Security@linux_odmin 👉 @linux_odmin

Шпаргалка по PostgreSQL -- *********************************** -- Редактирование таблиц, расширенные возможности SELECT, функции -- *********************************** -- Добавление поля в таблицу ALTER TABLE table_name ADD COLUMN new_field BOOLEAN NOT NULL DEFAULT TRUE; -- добавление поля с автоинкрементом и primary key в таблицу ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY; -- Удаление поля из таблицы ALTER TABLE table_name DROP COLUMN new_field; -- переименовать поле ALTER TABLE table_name RENAME old_field TO new_field; -- сменить тип данных ALTER TABLE table_name ALTER COLUMN any_field SET DATA TYPE VARCHAR(255); -- изменить значение по умолчанию ALTER TABLE table_name ALTER COLUMN any_field SET DEFAULT 'new value'; -- добавить/удалить constraint NOT NULL ALTER TABLE table_name ALTER COLUMN any_field SET|DROP NOT NULL; -- переименовать таблицу ALTER TABLE table_name RENAME TO new_table_name; -- Расширенные возможности SELECT SELECT * FROM table WHERE field1 LIKE 'value'; -- field1 = 'value' SELECT * FROM table WHERE field1 LIKE 'val%'; -- field1 начинается с 'val' SELECT * FROM table WHERE field1 LIKE '%lue'; -- field1 заканчивается на 'lue' SELECT * FROM table WHERE field1 LIKE '%e%'; -- field1 содержит 'e' -- несколько условий SELECT * FROM table WHERE field1 = 'value' AND field2 > 'value2'; SELECT * FROM table WHERE field1 = 'value' OR field2 > 'value2'; -- вывод уникальных записей SELECT DISTINCT field1 FROM table; -- группирование записей SELECT field1, COUNT(field1) FROM table GROUP BY field1; -- сгруппирует записи таблицы table по полю field и выведет уникальные значения field и количество повторений SELECT field1, COUNT(field1) FROM table GROUP BY field1 HAVING COUNT(field) > 3; -- сгруппирует записи таблицы table по полю field и выведет уникальные значения field и количество повторений, где количество повторений больше 3 #Шпаргалка@linux_odmin 👉 @linux_odmin

Шпаргалка по PostgreSQL Перенес в my-mans -- подключиться к postgres (утилита psql) psql -U postgres -- команды помощи help \h -- помощь по командам SQL \? -- помощь по командам psql -- выход из консоли postgres \q -- создать базу CREATE DATABASE my_database; -- подключиться к базе \connect my_database; -- создать таблицу my_table с полями field1 (тип целочисленный, обязательное для заполнения), field2 (тип строка 255 символов) CREATE TABLE my_table (field1 INT NOT NULL, field2 VARCHAR(255)); -- вывести все таблицы \d -- удалить таблицу my_table DROP TABLE my_table; -- внести в таблицу запись INSERT INTO my_table(field1, field2) VALUES(1,'Any text value'); -- вывести записи SELECT * FROM my_table; -- все записи SELECT * FROM my_table WHERE field1 = 1; -- все, где field1 = 1 SELECT * FROM my_table WHERE field1 != 1; -- и т д SELECT * FROM my_table WHERE field1 > 1; SELECT * FROM my_table LIMIT 100; -- первые 100 записей; SELECT * FROM my_table LIMIT 100 OFFSET 200; -- запись с 201 по 300; -- сортировка при выводе SELECT * FROM my_table ORDER BY field1 ASC; -- вывести отсортировав в возрастающем порядке SELECT * FROM my_table ORDER BY field1 DESC; -- вывести отсортировав в убывающем порядке -- изменить запись таблицы (поле field2 строки, где field1 = 1); UPDATE my_table SET field2 = 'Other text value' WHERE field1 = 1; -- удаление данных DELETE FROM my_table; -- удалить все записи; DELETE FROM my_table WHERE field1 = 1; -- удалить запись где field1 = 1; -- *********************************** -- нормализация (разбиение таблиц на несколько) -- *********************************** -- Constraints - ограничения типов данных CREATE TABLE my_table ( field1 INT NOT NULL, -- запись обязательна field2 VARCHAR(255) NOT NULL UNIQUE, -- запись должна быть уникальной field3 BOOLEAN NOT NULL DEFAULT TRUE -- значение по умолчанию - true ... ); -- Первичный и внешние ключи -- при создании записи таблицы с отсутствующим внешним ключом выведется запись об ошибке. будут выводится ошибки и в иных случаях, когда будут нарушаться связи. CREATE TABLE IF NOT EXISTS my_table ( -- ключ IF NOT EXISTS проверяет, существует ли таблица. field1 SERIAL INT PRIMARY KEY, -- при добавлении PRIMARY KEY поле автоматически наследует ограничения NOT NULL и UNIQUE, и создается индекс. SERIAL тип данных являющийся автоматически увеличивающимся счетчиком (аналог ключа AUTOINCREMENT в Sqlite) field2 VARCHAR(255) NOT NULL UNIQUE, field3 INT NOT NULL, FOREIGN KEY(field3) REFERENCES other_table(field_name) -- поле ссылается на внешнюю таблицу other_table на поле field_name, которое обязательно должно быть с PRIMARY KEY ); -- вывод данных из нескольких таблиц со связанными полями SELECT * FROM table_1 LEFT JOIN table_2 ON (table_2.field = table_1.field); -- алиасы, нужны для удобства. Также, при выводе наименование таблиц или полей выводится алиасом, при его наличии. SELECT * FROM table_1 as tab1 LEFT JOIN table_2 as tab2 ON (tab1.field = tab2.field); #Шпаргалка@linux_odmin 👉 @linux_odmin

Шпаргалка по скриптам Bash Основы написания скриптов на Bash Условные операторы Циклы Bash Арифметические операторы Арифметич
+5
Шпаргалка по скриптам Bash Основы написания скриптов на Bash Условные операторы Циклы Bash Арифметические операторы Арифметические условные операторы Операторы сравнения строк #Шпаргалка@linux_odmin 👉 @linux_odmin

OSI Model Vs TCP/IP Model #Шпаргалка@linux_odmin 👉 @linux_odmin
OSI Model Vs TCP/IP Model #Шпаргалка@linux_odmin 👉 @linux_odmin