Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
226 - Telegram Web
Telegram Web
Haskell Dockerfile Linter

Интеллектуальный распаковщик Dockerfile, помогающий создавать лучшие образы Docker. Линтер разбирает Docker-файл на AST и выполняет правила поверх AST. Он опирается на поддержку ShellCheck для проверки Bash-кода внутри инструкций RUN.

https://github.com/hadolint/hadolint
👍2
Как защитить сервер Linux

Ограничьте, кто может использовать sudo


Почему
sudo позволяет учетным записям выполнять команды от имени других учетных записей, включая root. Мы хотим убедиться, что только нужные нам учетные записи могут использовать sudo.

Цели
привилегии sudo ограничены теми, кто входит в указанную нами группу.

Примечания
Возможно, ваша сборка уже сделала это, или у вас уже есть специальная группа, предназначенная для этой цели, поэтому сначала проверьте.
Debian создаёт группу sudo. Чтобы просмотреть пользователей, которые входят в эту группу (таким образом, имеют привилегии sudo):

cat /etc/group | grep "sudo"


Шаги

1 - Создайте группу:
sudo groupadd sudousers

2 - Добавьте учетную запись(и) в группу:
sudo usermod -a -G sudousers user1
sudo usermod -a -G sudousers user2
sudo usermod -a -G sudousers ...


Вам нужно будет сделать это для каждой учетной записи на вашем сервере, которой нужны привилегии sudo.

3 - Создайте резервную копию файла конфигурации sudo /etc/sudoers:
sudo cp --archive /etc/sudoers /etc/sudoers-COPY-$(date +"%Y%m%d%H%M%S")

4 - Отредактируйте файл конфигурации sudo /etc/sudoers:
sudo visudo

5 - Скажите sudo, чтобы только пользователи из группы sudousers могли использовать sudo, добавив эту строку, если ее еще нет:
%sudousers ALL=(ALL:ALL) ALL
👍32
Используем библиотеку psutil для Python, что бы получить исчерпывающую информацию о состоянии CPU и системы в целом.



import psutil
import time
from tabulate import tabulate

def get_cpu_usage():

return psutil.cpu_percent(interval=1)

def get_memory_usage():

memory = psutil.virtual_memory()
return {
'Всего': f'{memory.total / (1024**3):.2f} ГБ',
'Используется': f'{memory.used / (1024**3):.2f} ГБ',
'Свободно': f'{memory.available / (1024**3):.2f} ГБ',
'Процент использования': f'{memory.percent}%'
}

def get_top_processes(n=10):

processes = []
for proc in sorted(psutil.process_iter(['pid', 'name', 'cpu_percent', 'memory_percent']),
key=lambda x: x.info['cpu_percent'],
reverse=True)[:n]:
try:
processes.append([
proc.info['pid'],
proc.info['name'],
f"{proc.info['cpu_percent']:.2f}%",
f"{proc.info['memory_percent']:.2f}%"
])
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass

return processes

def main():

print("=== Мониторинг системы ===")


print(f"\nЗагрузка CPU: {get_cpu_usage()}%")


print("\nИспользование памяти:")
for key, value in get_memory_usage().items():
print(f"{key}: {value}")


print("\nТоп процессов по использованию CPU:")
top_processes = get_top_processes()
print(tabulate(top_processes,
headers=['PID', 'Название', 'CPU %', 'Память %'],
tablefmt='grid'))

if __name__ == '__main__':
main()
👍2
Autobase

Это инструмент, разработанный для автоматизации развёртывания и управления PostgreSQL-кластерами с использованием Ansible. Он поддерживает широкий набор функций, включая настройку репликации, автоматизацию резервного копирования с помощью инструментов, таких как pgBackRest и WAL-G, мониторинг состояния кластеров, а также настройку высокодоступной инфраструктуры (HA).

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

https://github.com/vitabaks/autobase
👍1
YouPlot — это утилита командной строки для визуализации данных. Она поддерживает построение графиков без зависимости от Python или сложных библиотек. Инструмент прост в использовании, легковесен и подходит для быстрого создания графиков прямо из терминала. Поддерживает разные типы диаграмм, включая линейные, столбчатые и точечные.

https://github.com/red-data-tools/YouPlot
Мониторинг и оптимизация дискового пространства в Linux


Мониторинг использования:

• Проверить свободное место:

df -h


• Размер директории:

du -sh /путь/к/директории


• Топ-10 крупных папок:

du -ah /путь | sort -rh | head -n 10


• Найти большие файлы (>1ГБ):

find / -type f -size +1G 2>/dev/null



Очистка места:

• Удалить старые логи:

find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;


• Очистить кэш:

sudo apt-get clean
sudo dnf clean all


• Удалить временные файлы:

sudo rm -rf /tmp/* /var/tmp/*


• Удалить старые ядра:

sudo apt-get autoremove --purge



Автоматизация:

• Добавить в crontab задачу для регулярной очистки логов:

0 3 * * 7 find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;



Оптимизация:

• Перенос крупных папок:

mv /большая/папка /mnt/новый_диск
ln -s /mnt/новый_диск /большая/папка


• Сжатие логов:

gzip /var/log/*.log


• Удаление дублированных файлов:

fdupes -r /путь



Полезные утилиты:

• ncdu — анализ диска:

sudo apt install ncdu && ncdu /


• iotop — мониторинг операций с файлами:

iotop


• fslint — поиск мусорных файлов:

sudo apt install fslint



Мониторинг в реальном времени:

• Свободное место:

df -h


• Загрузка диска процессами:

iotop


• Отслеживание изменений в директории:

inotifywait -m /путь
👍2
Шпаргалка по скриптам Bash

Основы написания скриптов на Bash
Условные операторы
Циклы Bash
Арифметические операторы
Арифметические условные операторы
Операторы сравнения строк
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Walk — это инструмент на Go, который позволяет рекурсивно обходить директории и выполнять команды для каждого найденного файла или папки.

Ключевые особенности:
- Простая команда для выполнения скриптов или операций над файлами.
- Гибкость и высокая скорость работы.
- Подходит для автоматизации задач, связанных с обработкой файлов.

https://github.com/antonmedv/walk
👍1
Основные команды Linux: Управление пользователями и группами

-b – Базовый каталог по умолчанию, в котором создаются домашние каталоги пользователей. Обычно это / home, а пользовательские каталоги — /home/$ USER.
-c “text text” – Текстовая строка для описания id, содержащая, например, полное имя пользователя.
-e YYYY-MM_DD – Дата, когда учетная запись потеряет силу или будет заблокирована.
-G gr1,gr2,gr3 – Список дополнительных групп, которым принадлежит пользователь.
-o – Позволяет создать пользователя с неуникальным id.
-u – Неотрицательное цифровое значение id пользователя, которое должно быть уникальным, если не определено иначе опцией -o. По умолчанию используется самое маленькое значение, не меньше, чем UID_MIN, причем больше, чем id любого из существующих пользователей.
usermod user – изменение настроек пользователя с именем user в системе
аналогичны всем вышеуказанным для useradd
-L – блокировка учетной записи
-U – разблокировка учетной записи
userdel user – удаляет пользователя user из системы
-r – удаление домашнего каталога пользователя
users – Выдаются имена пользователей, которые в текущий момент зарегистрированы в системе
groupadd group – добавление (создание) новой группы group в системе
-f – Выйти со статусом успешного выполнения, если группа уже существует. Удобна при написании скриптов, когда нет необходимости проверять, существует ли группа, прежде чем пытаться ее создавать.
-g – Задать id группы вручную.
-o – Разрешить группу с неуникальным id.
groupmod group – изменение информации о группе group в системе
-n group2 задание нового имени group2
groupdel group – удаление группы group из системы
passwd user – изменяет/устанавливает пароль пользователя user
-l – блокирование учетной записи
-d – удаление пароля учетной записи (блокирование)
-f – установка даты прекращения полномочий
-n – минимальное время действия пароля в днях
-x – максимальное время действие пароля в днях
-w – число дней появления предупреждения об окончании действия пароля
-i – число дней, после которых пароль потеряет силу и учетка заблокируется.
-S – вывод сообщения о статусе пользователя
gpasswd group – изменяет/устанавливает пароль группы group (Наличие пароля группы позволяет пользователям временно войти в группу при помощи команды newgrp, если им известен пароль группы.)
id who – просмотр информации о пользователе/группе who (принадлежность к группам, UID, GID)
ulimit – ограничение пользовательских ресурсов:
-a – отображение всех возможных ресурсов
-f – ограничение размера файла
-t – процессорное время
2025/07/14 12:42:36
Back to Top
HTML Embed Code: