Системный администратор - Сетевые технологии - Компьютерная помощь
Открыть в Telegram
8 344
Подписчики
+224 часа
-107 дней
-12130 дней
Архив постов
🌟 Шпаргалка по оконным функциям SQL с примерами на русском
@sysadmin1
Сетка затеняющая 2x10 м ЧЗМ
2 млн товаров. Доставка в срок. Самовывоз. Рассрочка. Помощь экспертов
Узнать больше
#реклама
vseinstrumenti.ru
О рекламодателе
🎯 Шпаргалка по регулярным выражениям (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📈Скрипт показывает, какие каталоги выросли с прошлого запуска
Скрипт ниже делает снимок размеров каталогов (через 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Скидки на теплоизоляцию из стекловолокна ТЕХНОНИКОЛЬ
Актуальные скидки на теплоизоляцию из стекловолокна. Покупайте по выгодной цене!
Узнать больше
#реклама
tn.ru
О рекламодателе
QA Lead: снижаем риски неверных сроков
Вы узнаете принципы оценки трудозатрат и инструменты планирования. Сможете управлять сроками релизов. Регистрируйтесь!
Узнать больше
#реклама 16+
otus.ru
О рекламодателе
Получите 400 рублей на счет мобильного телефона
Выберите Яндекс Поиск в настройках браузера, ищите в нём — и они ваши!
Узнать больше
#реклама 16+
portal.yandex.ru
О рекламодателе
Кинопоиск до 360 дней бесплатно
Кинопоиск — тысячи фильмов и сериалов без рекламы, в высоком качестве.
Яндекс Музыка и Книги тоже в мультиподписке Плюс.
Попробуйте бесплатно ❤️
Попробовать
#реклама 18+
kinopoisk.ru
О рекламодателе
Я говорю Клоду:
"Ты старший веб-разработчик с 20-летним опытом"
@sysadmin1
+2
3 шпаргалки по работе с Git
Сохраняйте подборку шпаргалок, которые учат базовым командам Git, работе с GitHub и схемам ветвления
@sysadmin1
Ловите огромный туториал-шпаргалку по SQL с примерами запросов и объяснением
@sysadmin1
Зарабатывайте на установках Яндекс Браузера
Партнёрская программа для сервисных центров, магазинов компьютерной техники, сайтов для скачивания файлов и авторов статей.
Вы можете предлагать его своим клиентам и аудитории — и зарабатывать на новых установках.
Выплаты до 500₽ за каждую установку Яндекс Браузера.
Подать заявку
#реклама 0+
partner.browser.yandex.ru
О рекламодателе
Сам виноват, знал на кого проект оставлял
@sysadmin1
Узнайте о технологиях для ваших сложных задач
Главная конференция Yandex Cloud 24 сентября: треки AI, Infra + DevTools, Data, Security, Deep Tech, а ещё воркшопы по ИИ и интерактивы.
Участие бесплатное!
Зарегистрироваться
#реклама 16+
scale.yandex.cloud
О рекламодателе
DevSecOps
#devops #девопс
@sysadmin1
