Короткий совет по Linux 💡
Если вы хотите очистить пустые каталоги, команда find может упростить эту работу:
Параметр -type d выполняет поиск каталогов, -empty выбирает пустые каталоги, а -exec rmdir {} выполняет команду rmdir для их удаления.
Команда rmdir гарантирует, что каталог пуст перед его удалением.
В качестве альтернативы, вы также можете использовать эту команду для выполнения той же задачи:
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Если вы хотите очистить пустые каталоги, команда find может упростить эту работу:
$ find . -type d -empty -exec rmdir -v {} +Параметр -type d выполняет поиск каталогов, -empty выбирает пустые каталоги, а -exec rmdir {} выполняет команду rmdir для их удаления.
Команда rmdir гарантирует, что каталог пуст перед его удалением.
В качестве альтернативы, вы также можете использовать эту команду для выполнения той же задачи:
$ find . -type d -empty -delete#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
NetAlertX — инструмент для мониторинга сетевой активности и обнаружения изменений в подключенных устройствах. Он помогает администратору отслеживать новые устройства в сети, анализировать подключение и уведомлять о любых подозрительных изменениях. Утилита может быть полезной для повышения безопасности сети и оптимизации управления подключениями.
https://github.com/jokob-sk/NetAlertX
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
https://github.com/jokob-sk/NetAlertX
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍6
Управление виртуальными машинами KVM из консоли
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
# virsh list – показать список запущенных ВМ# virsh list --all – показать список всех машин (в том числе выключенных)# virsh shutdown <vm name> — выключить виртуальную машину# virsh start <vm name> — запустить виртуальную машину# virsh suspend <vm name> — приостановить виртуальную машину# virsh resume <vm name> — запустить приостановленную виртуальную машину# virsh reboot <vm name> — перезапустить виртуальную машину# virsh destroy <vm name> — уничтожить виртуальную машину# virsh undefine <vm name> — удалить машину из списка и удалить все файлы, принадлежащие ей (обычно применяется после выполнения команды virsh destroy).# virsh vcpuinfo <vm name> — информация о процессоре на виртуальной машине # virsh domid <vm name> — получить идентификатор виртуальной машины# virsh domuuid <vm name> — получить UUID виртуальной машины# virsh dominfo <vm name> — получить сведения о виртуальной машине# virsh domstate <vm name> — просмотр состояния виртуальной машины# virsh dumpxml <vm name> — вывести файл конфигурации указанной виртуальной машины в XML формате#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍7
Команда crontab: опции, ключи и примеры использования
Планировщик cron для запуска задач с заданными интервалом времени от имени текущего пользователя. Формат планирования задачи: "(минута) (час) (день_месяца) (месяц) (день_недели) команда".
Редактирует файл crontab для текущего пользователя:
Выводит список существующих задая для текущего пользоваетеля:
Удаляет все задачи cron для текущего пользователя:
Пример задачи, которая запускается ежедневно в 10:00. * означает любое значение:
Пример задачи, которая запускается каждую минуту 3-го апреля:
Пример задачи, которая запускается каждую пятницу в 02:30:
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
Планировщик cron для запуска задач с заданными интервалом времени от имени текущего пользователя. Формат планирования задачи: "(минута) (час) (день_месяца) (месяц) (день_недели) команда".
Редактирует файл crontab для текущего пользователя:
crontab -eВыводит список существующих задая для текущего пользоваетеля:
crontab -lУдаляет все задачи cron для текущего пользователя:
crontab -rПример задачи, которая запускается ежедневно в 10:00. * означает любое значение:
0 10 * * * {{path/to/script.sh}}Пример задачи, которая запускается каждую минуту 3-го апреля:
* * 3 Apr * {{path/to/script.sh}}Пример задачи, которая запускается каждую пятницу в 02:30:
30 2 * * Fri {{path/to/script.sh}}#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
👍6
Операции с файлами в Linux
—
—
—
—
—
—
—
—
—
—
—
—
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
pwd # Выводит текущий путь;ls # Выводит список файлов и каталогов. Пример вывода форматированного списка всех файлов и директорий, включая скрытые: ls -laX ;cd # Переход по директориям. Примеры:—
cd # Переход в домашнюю директорию;—
cd /home # Пример перехода в /home;—
cd .. # Переход в директорию уровнем выше;—
cd ~user # Перейти в домашнюю директорию пользователя user ;touch # Создание пустого файла если нет. Пример: touch test.txt ;rm # Удаление. Примеры:—
rm test.txt # Удаление файла;—
rm -rf temp # Удаление директории temp с вложенными файлами;cp # Копирование. Примеры:—
cp test.txt /home/test.txt # Копирует test.txt из текущей директории в /home ;—
cp -la /dir1 /dir2 # Копирование директорий;ln # — создание символической ссылки. Пример: ln -s /var/test.txt /home/test.txt — создать символическую ссылку к файлу /var/test.txt в директории /home;mkdir # Создание директории. Пример: mkdir temp ;rmdir # Удаление директории. Пример: rmdir temp ;mv # ПеремещениеПереименование. Пример переименования директории: mv /dir1 /dir2 (аналогично с файлами);locate # Поиск. Пример поиска везде всех файлов с именем test.txt: locate test.txt ;find # Поиск. Примеры:—
find /home/it -name test.txt # Найти файлы и директории с именем test.txt в /home/it и вложенных;—
find /home/it -name "*.txt" # Найти все файлы и директории в /home/it и вложенных, имена которых оканчиваются на ‘.txt’;—
find /usr/bin -type f -atime +100 # Найти все файлы в ‘/usr/bin’, время последнего обращения к которым более 100 дней;—
find /usr/bin -type f -mtime -10 # Найти все файлы в ‘/usr/bin’, созданные или изменённые в течении последних 10 дней;stat # Отображение всей доступной информации об указанном файле. Пример: stat test.txt;file # Определяет тип файла. Пример: file test.txt ;chmod # Права доступа;chown # Меняет владельца файла, пример: chown www:www test.txt;mc # запуск файлового менеджера;#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍10🔥1
Подборка шпаргалок по Linux
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍9
👍16❤1
Утилита systemctl
В Systemd есть специальный инструмент для управления службами в Linux - команда systemctl. Эта утилита позволяет делать очень много вещей, начиная от перезапуска службы linux и проверки ее состояния, до анализа эффективности загрузки службы.
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
В Systemd есть специальный инструмент для управления службами в Linux - команда systemctl. Эта утилита позволяет делать очень много вещей, начиная от перезапуска службы linux и проверки ее состояния, до анализа эффективности загрузки службы.
list-units - посмотреть все службы (юниты) которые сейчас загружены в память, аналог опции -tlist-sockets - посмотреть все сокеты служб, которые сейчас загружены в памятьlist-timers - посмотреть список таймеров, загруженных в памятьstart - запустить службу linuxstop - остановить службу linuxreload - попросить службу перечитать свою конфигурацию из файловой системыrestart - перезапустить службуtry-restart - перезапустить службу, только если она запущенаreload-or-restart - попросить службу обновить свою конфигурацию, если не поддерживается просто выполнить перезапуск службы linuxisolate - запустить только одну службу вместе с ее зависимостями, все остальные остановитьkill - отправить сигнал завершения процессу используется вместе с опциями --signal и --kill-whoclean - удалить все данные, которые касаются указанной службы, сюда входит кэш, логи, данные выполненияis-active - проверить запущена ли служба linuxis-failed - проверить не завершилась ли служба с ошибкойstatus - посмотреть состояние и вывод службыshow - посмотреть параметры управления службой в Linuxcat - посмотреть содержимое юнит файла в текстовом видеreset-failed - очистить состояние failed для служб, которые завершились с ошибкойlist-dependencies - посмотреть зависимости службы linuxlist-unit-files - вывести все установленные файлы службenable - добавить службу в автозагрузкуdisable - удалить службу из автозагрузкиis-enabled - проверить если ли уже служба в автозагрузкеreenable - сначала выполнить disable потом enable для службыlist-jobs - все выполняющиеся задачи Systemd.snapshot - сохранить состояние служб, чтобы потом восстановитьdaemon-reload - обновить конфигурацию юнитов для всех службmask - сделать юнит недоступнымunmask - вернуть файл службы linuxlink - добавить юнит файл, который расположен не в стандартной папке для юнитовrevert - вернуть юнит до состояния по умолчаниюedit - отредактировать параметры службы не изменяя основной файл юнита.#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍5🔥4
Ваша система Linux, macOS, FreeBSD или Unix не хватает места на диске? Используйте кунг-фу командной оболочки
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
du, чтобы вывести каталоги и файлы, занимающие больше всего места на диске:du -a -x {/dir1/} | sort -n -r | head -n 10#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍6
Свободное место на диске в Linux
Чтобы проверить использование дискового пространства вашей системы, выполните следующую команду:
Проверьте использование дискового пространства по файлам и каталогам
Если ваша система в настоящее время использует слишком много дискового пространства, выполните следующие действия, чтобы определить файлы для удаления:
Чтобы определить, какие файлы и каталоги занимают большую часть места на вашем жестком диске, выполните команду du.
du -h
Изучите нужный каталог
Чтобы просмотреть нужный каталог, выполните команду:
Чтобы удалить нужные файлы, выполните следующую команду, где filename представляет файл для удаления:
Отсортировать по размеру
Чтобы отсортировать по размеру можно воспользоваться командой sort
Сохранение записей журнала
Файлы журналов часто занимают большой объем дискового пространства. Чтобы сохранить самые последние записи системного файла журнала при удалении лишних файлов журнала, выполните следующие действия:
Если вы еще не нашли конкретные файлы для удаления из этого каталога, выполните команду du.
Изучите выходные данные команды, чтобы определить файлы для удаления.
Для каждого файла выполните следующие команды, где filename представляет имя файла.
To снимите блокировку файла, перезапустите службу, создавшую файл.
ИНТЕЛЛЕКТУАЛЬНЫЕ ошибки
Чтобы отключить интеллектуальные ошибки, выполните следующие команды:
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
Чтобы проверить использование дискового пространства вашей системы, выполните следующую команду:
df -hПроверьте использование дискового пространства по файлам и каталогам
Если ваша система в настоящее время использует слишком много дискового пространства, выполните следующие действия, чтобы определить файлы для удаления:
Чтобы определить, какие файлы и каталоги занимают большую часть места на вашем жестком диске, выполните команду du.
du -h
Изучите нужный каталог
Чтобы просмотреть нужный каталог, выполните команду:
du -ch ИМЯ_КАТАЛОГАЧтобы удалить нужные файлы, выполните следующую команду, где filename представляет файл для удаления:
rm -f filenameОтсортировать по размеру
Чтобы отсортировать по размеру можно воспользоваться командой sort
du -h /var/log | sort -hСохранение записей журнала
Файлы журналов часто занимают большой объем дискового пространства. Чтобы сохранить самые последние записи системного файла журнала при удалении лишних файлов журнала, выполните следующие действия:
Если вы еще не нашли конкретные файлы для удаления из этого каталога, выполните команду du.
Изучите выходные данные команды, чтобы определить файлы для удаления.
Для каждого файла выполните следующие команды, где filename представляет имя файла.
tail -5000 filename > filename.new
mv filename.new filename
syncTo снимите блокировку файла, перезапустите службу, создавшую файл.
ИНТЕЛЛЕКТУАЛЬНЫЕ ошибки
Чтобы отключить интеллектуальные ошибки, выполните следующие команды:
touch /var/cpanel/disablesmartcheck
/scripts/upcp#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍5❤1
Примеры использования команды grep в Linux
Поиск файлов с помощью команды grep
Команда dpkg -l выводит на экран установленные пакеты с расширением *.deb. Результат вывода с помощью символа передается по конвейеру команде grep. При этом опция -i позволяет команде игнорировать регистр в названиях.
Фильтрация содержимого файлов с помощью команды grep (игнорирование закомментированных строк)
Опция –v указывает команде, что на экран нужно выводить те строки, в которых нет искомого выражения.
Обнаружение всех файлов с расширением .mp3 с помощью команды grep
find — утилита поиска файлов в файловой системе;
. — указывает, что поиск следует вести относительно текущего рабочего каталога;
–name — проверяет название файлов на соответствие заданному шаблону;
"*.mp3" — шаблон, соответствующий файлам искомого формата;
| — объединяет команды в конвейер (вывод первой команды передается на ввод второй — и так далее);
grep с опцией –i — поиск по выводу команды find с игнорированием регистра;
"ABC" — шаблон, по которому осуществляется поиск;
grep –vi — поиск по выводу предыдущей команды grep и исключение результатов, соответствующих заданному шаблону;
"remix" — шаблон, по которому осуществляется поиск.
Отображение строк до или после строки с результатом поиска
-A (от англ. After) — указанное количество строк до шаблона;
-B (от англ. Before) — указанное количество строк после шаблона.
Выведение заданного числа всех соседних строк с помощью команды grep
В том случае, если Вы точно не знаете, какие именно соседние строки (до или после строки, содержащей шаблон) Вам нужны — воспользуйтесь командой grep с опцией -C. Следующая комбинация команд выведет на экран по 2 строки до и после строчки вывода команды ifconfig, содержащей шаблон lo:
Подсчет числа строк, содержащих искомое выражение
В некоторых случаях Вам могут понадобится не сами строчки, включающие заданное выражение, а их общее количество. В таком случае воспользуйтесь опцией -c. Следующая комбинация команд выведет на экран количество строк в выводе команды ifconfig, включающих шаблон inet6.
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
Поиск файлов с помощью команды grep
# dpkg -l | grep -i pythonКоманда dpkg -l выводит на экран установленные пакеты с расширением *.deb. Результат вывода с помощью символа передается по конвейеру команде grep. При этом опция -i позволяет команде игнорировать регистр в названиях.
Фильтрация содержимого файлов с помощью команды grep (игнорирование закомментированных строк)
# grep –v "#" /etc/apache2/sites-available/default-sslОпция –v указывает команде, что на экран нужно выводить те строки, в которых нет искомого выражения.
Обнаружение всех файлов с расширением .mp3 с помощью команды grep
# find . –name "*.mp3" | grep –i "ABC" | grep –vi "remix"find — утилита поиска файлов в файловой системе;
. — указывает, что поиск следует вести относительно текущего рабочего каталога;
–name — проверяет название файлов на соответствие заданному шаблону;
"*.mp3" — шаблон, соответствующий файлам искомого формата;
| — объединяет команды в конвейер (вывод первой команды передается на ввод второй — и так далее);
grep с опцией –i — поиск по выводу команды find с игнорированием регистра;
"ABC" — шаблон, по которому осуществляется поиск;
grep –vi — поиск по выводу предыдущей команды grep и исключение результатов, соответствующих заданному шаблону;
"remix" — шаблон, по которому осуществляется поиск.
Отображение строк до или после строки с результатом поиска
# ifconfig | grep –A 4 eth0-A (от англ. After) — указанное количество строк до шаблона;
-B (от англ. Before) — указанное количество строк после шаблона.
Выведение заданного числа всех соседних строк с помощью команды grep
# ifconfig | grep -C 2 loВ том случае, если Вы точно не знаете, какие именно соседние строки (до или после строки, содержащей шаблон) Вам нужны — воспользуйтесь командой grep с опцией -C. Следующая комбинация команд выведет на экран по 2 строки до и после строчки вывода команды ifconfig, содержащей шаблон lo:
Подсчет числа строк, содержащих искомое выражение
# ifconfig | grep -c inet6В некоторых случаях Вам могут понадобится не сами строчки, включающие заданное выражение, а их общее количество. В таком случае воспользуйтесь опцией -c. Следующая комбинация команд выведет на экран количество строк в выводе команды ifconfig, включающих шаблон inet6.
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍8❤1
Команда findmnt
Это простая утилита командной строки, используемая для отображения списка подключенных файловых систем или поиска файловой системы в /etc/fstab, /etc/mtab или /proc/self/ mountinfo.
Для отображения списка подключенных файловых систем, выполните в командной строке следующую команду.
По умолчанию команда findmnt отображает файловые системы в древовидном формате.
Чтобы отобразить информацию в виде обычного списка, используйте параметр -l, как показано ниже
Можно выбрать отображение файловых систем только определенного типа, используя параметр командной строки -t, за которым следует тип файловой системы, такой как XFS или EXT4.
Поиск файловой системы, используя точку монтирования.
Например, следующая команда отображает все файловые системы /etc/fstab, где каталогом точки монтирования является /mnt/external/disk2.
или
Выводим все файловые системы /etc/fstab и преобразовываем теги LABEL = и UUID = в реальные имена устройств, добавьте ключ – –evaluate
Отобразить только точку монтирования, в которой смонтирована файловая система с меткой «/ boot» или «/», используйте следующую команду.
Findmnt также позволяет отслеживать действия по монтированию, размонтированию, перемонтированию и перемещению каталога, например, в /mnt/test.
Если вы хотите больше информации в выводе, используйте ключ –verbose.
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
Это простая утилита командной строки, используемая для отображения списка подключенных файловых систем или поиска файловой системы в /etc/fstab, /etc/mtab или /proc/self/ mountinfo.
Для отображения списка подключенных файловых систем, выполните в командной строке следующую команду.
По умолчанию команда findmnt отображает файловые системы в древовидном формате.
# findmntЧтобы отобразить информацию в виде обычного списка, используйте параметр -l, как показано ниже
# findmnt -lМожно выбрать отображение файловых систем только определенного типа, используя параметр командной строки -t, за которым следует тип файловой системы, такой как XFS или EXT4.
# findmnt --fstab -t xfs или # findmnt --fstab -t ext4Поиск файловой системы, используя точку монтирования.
Например, следующая команда отображает все файловые системы /etc/fstab, где каталогом точки монтирования является /mnt/external/disk2.
# findmnt --fstab /mnt/external/disk2 # this prints bind mounts where /mnt/external/disk2 is a sourceили
# findmnt --fstab --target /mnt/external/disk2Выводим все файловые системы /etc/fstab и преобразовываем теги LABEL = и UUID = в реальные имена устройств, добавьте ключ – –evaluate
# findmnt --fstab --evaluateОтобразить только точку монтирования, в которой смонтирована файловая система с меткой «/ boot» или «/», используйте следующую команду.
# findmnt -n --raw --evaluate --output=target LABEL=/boot или # findmnt -n --raw --evaluate --output=target LABEL=/Findmnt также позволяет отслеживать действия по монтированию, размонтированию, перемонтированию и перемещению каталога, например, в /mnt/test.
# findmnt --poll --mountpoint /mnt/testЕсли вы хотите больше информации в выводе, используйте ключ –verbose.
# findmnt --real --verbose#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Стратегии аварийного восстановления в облаке
Эффективный план восстановления после аварии (DR) - это не просто предосторожность, это необходимость.
Ключевым моментом любой надежной стратегии DR является понимание и установка двух ключевых показателей: Объекта времени восстановления (RTO) и Объекта точки восстановления (RPO).
- Объект времени восстановления (RTO) относится к максимально допустимой продолжительности времени, в течение которой ваше приложение или сеть могут быть отключены после аварии.
- Объект точки восстановления (RPO), с другой стороны, указывает на максимально допустимую потерю данных, измеряемую во времени.
Давайте рассмотрим четыре широко применяемые стратегии DR:
1. Стратегия резервного копирования и восстановления:
Этот метод включает регулярные резервные копии данных и систем для облегчения восстановления после аварии.
- Типичный RTO: от нескольких часов до нескольких дней.
- Типичный RPO: от нескольких часов до времени последнего успешного резервного копирования.
2. Подход Pilot Light:
Поддерживает ключевые компоненты в режиме готовности к активации, обеспечивая быстрое масштабирование в ответ на аварию.
- Типичный RTO: от нескольких минут до нескольких часов.
- Типичный RPO: зависит от того, насколько часто синхронизируются данные.
3. Решение с горячим резервированием:
Создает полус активное окружение с текущими данными для сокращения времени восстановления.
- Типичный RTO: обычно от нескольких минут до часов.
- Типичный RPO: до последних нескольких минут или часов.
4. Горячее сайт / Конфигурация с несколькими сайтами:
Обеспечивает полностью операционную, дублирующую среду, работающую параллельно с основной системой, обеспечивая беспрерывную функциональность.
- Типичный RTO: почти мгновенный, часто всего несколько минут.
- Типичный RPO: крайне минимальный, обычно всего несколько секунд.
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
Эффективный план восстановления после аварии (DR) - это не просто предосторожность, это необходимость.
Ключевым моментом любой надежной стратегии DR является понимание и установка двух ключевых показателей: Объекта времени восстановления (RTO) и Объекта точки восстановления (RPO).
- Объект времени восстановления (RTO) относится к максимально допустимой продолжительности времени, в течение которой ваше приложение или сеть могут быть отключены после аварии.
- Объект точки восстановления (RPO), с другой стороны, указывает на максимально допустимую потерю данных, измеряемую во времени.
Давайте рассмотрим четыре широко применяемые стратегии DR:
1. Стратегия резервного копирования и восстановления:
Этот метод включает регулярные резервные копии данных и систем для облегчения восстановления после аварии.
- Типичный RTO: от нескольких часов до нескольких дней.
- Типичный RPO: от нескольких часов до времени последнего успешного резервного копирования.
2. Подход Pilot Light:
Поддерживает ключевые компоненты в режиме готовности к активации, обеспечивая быстрое масштабирование в ответ на аварию.
- Типичный RTO: от нескольких минут до нескольких часов.
- Типичный RPO: зависит от того, насколько часто синхронизируются данные.
3. Решение с горячим резервированием:
Создает полус активное окружение с текущими данными для сокращения времени восстановления.
- Типичный RTO: обычно от нескольких минут до часов.
- Типичный RPO: до последних нескольких минут или часов.
4. Горячее сайт / Конфигурация с несколькими сайтами:
Обеспечивает полностью операционную, дублирующую среду, работающую параллельно с основной системой, обеспечивая беспрерывную функциональность.
- Типичный RTO: почти мгновенный, часто всего несколько минут.
- Типичный RPO: крайне минимальный, обычно всего несколько секунд.
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍2
OSI Model Vs TCP/IP Model
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍4
Шпаргалка по PostgreSQL
Перенес в my-mans
-- подключиться к postgres (утилита psql)
-- команды помощи
-- выход из консоли postgres
-- создать базу
-- подключиться к базе
-- создать таблицу my_table с полями field1 (тип целочисленный, обязательное для заполнения), field2 (тип строка 255 символов)
-- вывести все таблицы
-- удалить таблицу my_table
-- внести в таблицу запись
-- вывести записи
-- сортировка при выводе
-- изменить запись таблицы (поле field2 строки, где field1 = 1);
-- удаление данных
-- ***********************************
-- нормализация (разбиение таблиц на несколько)
-- ***********************************
-- Constraints - ограничения типов данных
-- Первичный и внешние ключи
-- при создании записи таблицы с отсутствующим внешним ключом выведется запись об ошибке. будут выводится ошибки и в иных случаях, когда будут нарушаться связи.
);
-- вывод данных из нескольких таблиц со связанными полями
-- алиасы, нужны для удобства. Также, при выводе наименование таблиц или полей выводится алиасом, при его наличии.
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
Перенес в 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@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍1
Шпаргалка по PostgreSQL
-- ***********************************
-- Редактирование таблиц, расширенные возможности SELECT, функции
-- ***********************************
-- Добавление поля в таблицу
-- добавление поля с автоинкрементом и primary key в таблицу
-- Удаление поля из таблицы
-- переименовать поле
-- сменить тип данных
-- изменить значение по умолчанию
-- добавить/удалить constraint NOT NULL
-- переименовать таблицу
-- Расширенные возможности SELECT
-- вывод уникальных записей
-- группирование записей
-- сгруппирует записи таблицы table по полю field и выведет уникальные значения field и количество повторений
-- сгруппирует записи таблицы table по полю field и выведет уникальные значения field и количество повторений, где количество повторений больше 3
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
-- ***********************************
-- Редактирование таблиц, расширенные возможности 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@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍5
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 #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
Этот репозиторий предоставляет 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 #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍3
Как работает HTTPS?
Безопасный протокол передачи гипертекста
(HTTPS) - это расширение протокола передачи гипертекста (HTTP). HTTPS передает зашифрованные данные с использованием транспортного уровня безопасности (TLS). Если данные будут перехвачены в Интернете, все, что получит угонщик, - это двоичный код.
Как шифруются и дешифруются данные?
Шаг 1 - Клиент (браузер) и сервер устанавливают TCP-соединение.
Шаг 2 - Клиент отправляет серверу " client hello". Сообщение содержит набор необходимых алгоритмов шифрования (наборов шифров) и последнюю версию TLS, которую он может поддерживать. Сервер отвечает " server hello", чтобы браузер знал, может ли он поддерживать алгоритмы и версию TLS.
Затем сервер отправляет SSL-сертификат клиенту. Сертификат содержит открытый ключ, имя хоста, дату истечения срока действия и т. д. Клиент проверяет сертификат.
Шаг 3. После проверки SSL-сертификата клиент генерирует ключ сессии и шифрует его с помощью открытого ключа. Сервер получает зашифрованный ключ сеанса и расшифровывает его с помощью закрытого ключа.
Шаг 4 - Теперь, когда клиент и сервер владеют одним и тем же сеансовым ключом (симметричное шифрование), зашифрованные данные передаются по защищенному двунаправленному каналу.
Почему HTTPS переключается на симметричное шифрование при передаче данных? Есть две основные причины:
1. Безопасность: Асимметричное шифрование работает только в одну сторону. Это означает, что если сервер попытается отправить зашифрованные данные обратно клиенту, любой сможет расшифровать их с помощью открытого ключа.
2. Ресурсы сервера: Асимметричное шифрование добавляет довольно много математических накладных расходов. Оно не подходит для передачи данных в длительных сессиях.
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
Безопасный протокол передачи гипертекста
(HTTPS) - это расширение протокола передачи гипертекста (HTTP). HTTPS передает зашифрованные данные с использованием транспортного уровня безопасности (TLS). Если данные будут перехвачены в Интернете, все, что получит угонщик, - это двоичный код.
Как шифруются и дешифруются данные?
Шаг 1 - Клиент (браузер) и сервер устанавливают TCP-соединение.
Шаг 2 - Клиент отправляет серверу " client hello". Сообщение содержит набор необходимых алгоритмов шифрования (наборов шифров) и последнюю версию TLS, которую он может поддерживать. Сервер отвечает " server hello", чтобы браузер знал, может ли он поддерживать алгоритмы и версию TLS.
Затем сервер отправляет SSL-сертификат клиенту. Сертификат содержит открытый ключ, имя хоста, дату истечения срока действия и т. д. Клиент проверяет сертификат.
Шаг 3. После проверки SSL-сертификата клиент генерирует ключ сессии и шифрует его с помощью открытого ключа. Сервер получает зашифрованный ключ сеанса и расшифровывает его с помощью закрытого ключа.
Шаг 4 - Теперь, когда клиент и сервер владеют одним и тем же сеансовым ключом (симметричное шифрование), зашифрованные данные передаются по защищенному двунаправленному каналу.
Почему HTTPS переключается на симметричное шифрование при передаче данных? Есть две основные причины:
1. Безопасность: Асимметричное шифрование работает только в одну сторону. Это означает, что если сервер попытается отправить зашифрованные данные обратно клиенту, любой сможет расшифровать их с помощью открытого ключа.
2. Ресурсы сервера: Асимметричное шифрование добавляет довольно много математических накладных расходов. Оно не подходит для передачи данных в длительных сессиях.
#Linux@linux_odmin #Команды@linux_odmin #Шпаргалка@linux_odmin
👉 @linux_odmin
👍6