Filesystem emptiness
Находит пустые файлы, пустые директории и placeholder-объекты.
Разработано группой Безопасные Каннели
Наблюдаемость отсутствия для Linux-систем.
Лёгкая CLI-утилита для анализа пустых файлов, тихих логов, незаполненных директорий и терминального вакуума. Пустота тоже заслуживает метрик.
$ emptystat scan /var/log
Directory: /var/log
Total objects: 384
Empty files: 19
Empty directories: 4
Whitespace-only files: 3
Void Index: 0.084
Status: nominal
Recommendation: Continue observing absence.emptystat делает отсутствие измеримым в shell-скриптах, CI-пайплайнах, systemd timers и диагностике логов.
Находит пустые файлы, пустые директории и placeholder-объекты.
Измеряет периоды, когда лог-файлы не изменяются.
Показывает, какая часть терминального пространства не используется.
Поддерживает машинно-читаемый вывод для CI и скриптов.
Позволяет экспортировать метрики отсутствия.
Удобен для cron, systemd timers и shell-автоматизации.
Установка
emptystat можно собрать из исходного кода или скачать готовый бинарник из GitHub Releases.
git clone https://github.com/m1tm4n404/emptystat.git
cd emptystat
cargo build --release
sudo cp target/release/emptystat /usr/local/bin/curl -LO https://github.com/m1tm4n404/emptystat/releases/download/v0.1.3/emptystat-x86_64-linux.tar.gz
tar -xzf emptystat-x86_64-linux.tar.gz
sudo install -m 0755 emptystat /usr/local/bin/emptystatemptystat --version
emptystat 0.1.3sudo rm /usr/local/bin/emptystat
rm -rf ~/.config/emptystatПримеры
Практические сценарии для наблюдения пустоты в файловых системах, логах, терминалах и CI.
emptystat scan .Path: .
Total objects: 812
Empty files: 44
Empty directories: 13
Whitespace-only files: 5
Placeholder files: 8
Void Index: 0.118
Absence Entropy: 0.37
Status: noticeable
Recommendation: Continue monitoring absence.sudo emptystat scan /var/logDirectory: /var/log
Total objects: 384
Empty files: 19
Silent logs: 42.8%
Void pressure: nominal
Recommendation: Silence is within acceptable operational limits.emptystat scan ~/projects --json{
"path": "/home/user/projects",
"total_objects": 1284,
"empty_files": 91,
"empty_directories": 12,
"placeholder_files": 17,
"void_index": 0.142,
"absence_entropy": 0.51,
"status": "noticeable"
}emptystat silence /var/log/syslog --window 60Watching /var/log/syslog for 60 seconds...
Silence detected: 47.2s
Noise bursts: 3
Silence Ratio: 0.786
Log calmness: stable
Suspicious quietness: falseemptystat ttyTerminal size: 120x32
Occupied rows: 8
Unused visual field: 75.00%
Prompt loneliness: moderate
Cursor existential drift: 2 columnsemptystat scan . --threshold 0.4 --json > emptystat-report.jsonЕсли Void Index превышает заданный порог, emptystat завершится с exit code 1. Это позволяет использовать утилиту в пайплайнах качества пустоты.
Метрики
emptystat представляет отсутствие активности как нормализованные сигналы, удобные для скриптов.
Основная нормализованная метрика структурной пустоты.
void_index = weighted_empty_objects / total_objectsОценивает равномерность распределения пустоты по дереву файлов.
H(absence) = -Σ p(empty_region) log p(empty_region)Доля времени, в течение которого наблюдаемый файл не изменялся.
silence_ratio = silent_seconds / observation_windowВлияние файлов .keep, .empty, .placeholder, TODO и stub-файлов.
gravity = placeholder_weight × local_void_densityПроцент незанятой площади терминального окна.
vacancy = unused_cells / terminal_cellsДоля строк, состоящих только из пробельных символов.
density = whitespace_only_lines / total_linesДокументация
Справочник команд и эксплуатационные заметки для наблюдаемости отсутствия.
emptystat scan <PATH>
emptystat ratio <PATH>
emptystat silence <FILE>
emptystat tty
emptystat report
emptystat explain <METRIC>--json
--quiet
--verbose
--threshold <VALUE>
--format text|json|markdown|prometheus
--no-color
--max-depth <N>
--ignore-hidden| Code | Meaning |
|---|---|
| 0 | Absence within configured limits. |
| 1 | Void Index exceeded threshold. |
| 2 | Input path or file was inaccessible. |
| 64 | Usage or configuration error. |
[Timer]
OnCalendar=hourly
[Service]
ExecStart=/usr/local/bin/emptystat scan /var/log --format prometheusFAQ
Серьёзные ответы для нагрузок наблюдения отсутствия.
История изменений
Документированные изменения поверхности наблюдаемого отсутствия.