TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #292 1.16K
Скрытые сенсоры системы в скриптах

Когда bash-скрипт работает в продакшене, важно понимать окружение: доступные ресурсы, нагрузку, ограничения. Знакомимся: getconf, ulimit, vmstat, iostat - системные команды, которые можно встраивать прямо в bash для более "умных" решений.

▪️ getconf: узнать параметры системы


echo "Page size: $(getconf PAGESIZE)"
echo "Максимум аргументов в командной строке: $(getconf ARG_MAX)"


Можно использовать перед запуском ресурсоемких команд, чтобы адаптировать размер батчей, буферов и т.д.

▪️ ulimit: узнать и задать ограничения


echo "Открытых файлов можно: $(ulimit -n)"
ulimit -c 0 # Запретить core dumps


Полезно перед форком процессов: не дайте скрипту уронить систему из-за 10000 открытых файлов.

▪️ vmstat: мониторинг памяти и нагрузки


vmstat 1 2 | tail -1 | awk '{print "Свободная память: " $4 " KB, ожидание I/O: " $16}'


Используй для самодиагностики скриптов: если скрипт замечает, что система в swap - можно приостановить запуск тяжелых задач.

▪️ iostat: здоровье диска


iostat -dx 1 2 | grep sda | tail -1 | awk '{print "IO util: " $NF "%"}'


Если util% > 90 - диск перегружен. Скрипт может решить подождать или отложить копирование.

▪️ Пример: скрипт отложенного запуска при перегрузке


wait_for_idle() {
while :; do
util=$(iostat -dx 1 2 | awk '/sda/ {u=$NF} END{print int(u)}')
[[ $util -lt 50 ]] && break
echo "Диск занят ($util%), ждём..."
sleep 5
done
}


Скрипты могут быть "умными", если читают данные от системы: не запускай, если ресурсов нет, не ломай лимиты.

BashTex 📱 #bash #utils
  • 👍 10
More from @bash_tex
  1. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  2. Oct 9, 2026BashTex 📱 #мем
  3. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  4. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  5. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  6. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →