Системный администратор - Сетевые технологии - Компьютерная помощь
8.6K subscribers
3.61K photos
4.96K videos
1.13K files
867 links
Канал для системных администраторов или те кто работает в ИТ сфере.
📚КНИГИ ПО
💠Cisco systems
💠Mikrotik
💠VoIP
💠Linux
💠 Windows server
💠 Сетевые технологии
📽Видеоуроки
🤝Поддержка
Наша группа: @SySAD
Feedback bot: @SySADbot
Download Telegram
3 шпаргалки по работе с Git

Сохраняйте подборку шпаргалок, которые учат базовым командам Git, работе с GitHub и схемам ветвления

@sysadmin1
👍2🔥1🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
Я говорю Клоду:
"Ты старший веб-разработчик с 20-летним опытом"

@sysadmin1
🤣13😁1🎉1
📈Скрипт показывает, какие каталоги выросли с прошлого запуска

Скрипт ниже делает снимок размеров каталогов (через du), а при следующем запуске покажет топ приростов - кто вырос и на сколько.

#!/usr/bin/env bash
# автор: https://t.me/i_odmin

set -Eeuo pipefail

usage() {
cat <<'HELP'
Usage: du-delta.sh [-p PATH] [-d DEPTH] [-n TOP] [-t THRESH] [-s STATE_DIR]
-p PATH Корень анализа (по умолчанию /)
-d DEPTH Глубина du (по умолчанию 2)
-n TOP Сколько строк показать (по умолчанию 15)
-t THRESH Порог роста (например 100M, 1G; по умолчанию 100M)
-s STATE_DIR Директория состояния (по умолчанию /var/lib/du-delta)
-h Помощь
Прим.: требуются права на чтение анализируемых каталогов.
HELP
}

PATH_TO="/"
DEPTH=2
TOP=15
THRESH="100M"
STATE_DIR="/var/lib/du-delta"

while getopts ":p:d:n:t:s:h" opt; do
case "$opt" in
p) PATH_TO="$OPTARG" ;;
d) DEPTH="$OPTARG" ;;
n) TOP="$OPTARG" ;;
t) THRESH="$OPTARG" ;;
s) STATE_DIR="$OPTARG" ;;
h) usage; exit 0 ;;
\?) echo "Неизвестный параметр: -$OPTARG" >&2; usage; exit 1 ;;
🙂 echo "Параметру -$OPTARG нужно значение" >&2; exit 1 ;;
esac
done

to_bytes() {
local v="$1"
if command -v numfmt >/dev/null 2>&1; then
numfmt --from=iec "$v"
else
awk -v s="$v" 'BEGIN{
n=s; sub(/[KkMmGgTtPp][Bb]?$/,"",n);
u=""; if (match(s,/[KkMmGgTtPp]/)) u=substr(s,RSTART,1);
m=1; if(u=="K"||u=="k") m=1024;
else if(u=="M"||u=="m") m=1024^2;
else if(u=="G"||u=="g") m=1024^3;
else if(u=="T"||u=="t") m=1024^4;
else if(u=="P"||u=="p") m=1024^5;
printf "%d", n*m
}'
fi
}

human() {
local b="$1"
if command -v numfmt >/dev/null 2>&1; then
numfmt --to=iec --suffix=B "$b"
else
awk -v b="$b" 'function h(x, a,i){
split("B KiB MiB GiB TiB PiB",a," ");
for(i=1; x>=1024 && i<6; i++) x/=1024;
return sprintf("%.1f %s", x, a[i])
} BEGIN{print h(b)}'
fi
}

# Определяем совместимый ключ глубины для du
if du -d 0 / >/dev/null 2>&1; then
DU_DEPTH=(-d "$DEPTH")
else
DU_DEPTH=(--max-depth="$DEPTH")
fi

mkdir -p "$STATE_DIR"
chmod 700 "$STATE_DIR"

# Имя снапшота зависит от пути и глубины
safe_name="$(echo "$PATH_TO" | sed 's|/|_|g; s|^_$|root|')_d${DEPTH}.tsv"
SNAP_FILE="$STATE_DIR/$safe_name"

tmp_cur="$(mktemp)"
trap 'rm -f "$tmp_cur"' EXIT

# Снимок текущих размеров: "path \t bytes"
# -B1: байты, -x: не вылезать на другие ФС, --apparent-size: по желанию (коммент ниже)
# Уберите --apparent-size, если хотите считать выделенные блоки, а не логический размер.
du -B1 "${DU_DEPTH[@]}" -x --apparent-size "$PATH_TO" 2>/dev/null \
| awk 'BEGIN{OFS="\t"} {sz=$1; $1=""; sub(/^[ \t]+/,""); print $0, sz}' \
| sort -k1,1 > "$tmp_cur"

# Если есть предыдущий снимок — считаем дельты
THRESH_BYTES="$(to_bytes "$THRESH")"
printf "📈 Топ %d приростов в %s (глубина %d, порог %s):\n" \
"$TOP" "$PATH_TO" "$DEPTH" "$THRESH"

if [[ -s "$SNAP_FILE" ]]; then
awk -F'\t' -v th="$THRESH_BYTES" '
NR==FNR { prev[$1]=$2; next }
{
cur=$2+0; p=(($1 in prev)?prev[$1]+0:0);
d=cur-p;
if (d>=th) { print $1 "\t" d }
}
' "$SNAP_FILE" "$tmp_cur" \
| sort -k2,2nr \
| head -n "$TOP" \
| awk -F'\t' '{printf " + %-8s %s\n", "'"$(human "$2")"'", $1}' \
|| true
else
echo " (первый запуск — снимаю базовую метрику, сравнивать не с чем)"
fi

# Обновляем снимок
mv -f "$tmp_cur" "$SNAP_FILE"



- Быстрый запуск вручную:

sudo bash du-delta.sh -p /var -d 3 -t 200M -n 20


- Повесить на cron (каждые 6 часов) и писать в syslog:

*/6 * * * * root /usr/local/sbin/du-delta.sh -p / -d 3 -t 200M -n 20 | logger -t du-delta


Хочешь логический размер файлов (как видит ls -l) - оставляй --apparent-size. Нужен именно занятый на диске объём - убери этот флаг.

💡 Начни с -d 2 для обзора верхних уровней, потом точечно спускайся глубже по «подозрительным» каталогам.

@sysadmin1
👍2🔥1🎉1
🎯 Шпаргалка по регулярным выражениям (RegEx)

Полезно для всех, кто работает с текстом, логами, парсингом или просто хочет стать гуру поиска 🔍


🔤 Символы для сопоставления

. — любой символ, кроме перевода строки
\w — буква, цифра или подчёркивание
\W — любой символ, кроме \w
\d — цифра (0–9)
\D — любой символ, кроме цифры
\s — пробельный символ
\S — любой непробельный символ




Якоря (позиции в строке)

^ — начало строки
$ — конец строки
\b — граница слова
\B — не граница слова




Квантификаторы (повторы)

* — 0 или более раз
+ — 1 или более раз
? — 0 или 1 раз
{n} — ровно n раз
{n,} — от n раз
{n,m} — от n до m раз




🧩 Классы символов

[abc] — один из: a, b или c
[^abc] — любой, кроме: a, b или c
[a-z] — символ от a до z
[0-9] — цифра от 0 до 9




🌀 Группировка и выбор

(...) — захватывающая группа
(?:...) — НЕзахватывающая группа
| — логическое ИЛИ (или то, или это)




🛡 Экранирование

\ — экранирует спецсимвол (например, \. — точка)




🧪 Примеры

\d{3}-\d{2}-\d{4} — формат SSN: 123-45-6789
\w+@\w+\.\w+ — email-адрес


📌 Сохрани, чтобы не потерять!

@sysadmin1
👍3🔥1🎉1
Оконные функции в SQL.pdf
520.3 KB
🌟 Шпаргалка по оконным функциям SQL с примерами на русском

@sysadmin1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Foremost.pdf
472.1 KB
Foremost – Легкое восстановление удаленных файлов на Kali Linux

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

@sysadmin1
🔥3🎉2👍1
Media is too big
VIEW IN TELEGRAM
Разжёванный курс по Linux для чайников. Часть 1

0:10 Знакомство с Линух (теория)
2:17:17 Командная оболочка (pwd, ls, touch, date, rm, mkdir, rmdir)
2:56:51 stdout и stderr (перенаправление в файл)
2:59:23 связь с космосом (зависла трансляция)
3:11:52 конец связи с космосом(продолжение)
3:37:33 Команды (cр, mv, head, tail, wc, less, grep, cat, маски)
5:03:00 режим питания нарушать нельзя(обед)
5:12:05 продолжение
5:39:11 права пользователей (chmod, inode и т. д.)
6:35:02 SUD (sudo, passwd, stat)
7:27:42 перекур
7:39:17 Регулярные выражения

@sysadmin1
1👍84🔥2🎉1
Media is too big
VIEW IN TELEGRAM
Разжёванный курс по Linux для чайников. Часть 2

0:10 Введение. Ответы на вопросы.
6:00 Негативный поиск(echo, grep, регулярки)
24:36 Код возврата приложений
31:42 Логическое И, ИЛИ
38:38 Цикл FOR (Однострочная конструкция)
53:07 Перекур
1:05:16 Понятие скрипта. Скрипт файл.
1:15:09 Переменные окружения (SPATH)
1:30:16 Команда hash
1:42:56 /dev/null
1:48:28 Планировщик задач (Сron)
2:09:34 дом зад
2:16:01 вводный урок. Веб-сервисы.
3:17:03 Реш дом зад(логи регулярки)
4:32:27 Разбор дом зад и непонятных вопросов.
4:39:23 Настройка выделенного сервера
7:03:27 SOA и введение в Docker

@sysadmin1
🔥5🎉21👍1