▪️ Базовая проверка записи
touch /mnt/data/.test && rm /mnt/data/.test
Если команда зависает или падает - есть проблемы с файловой системой.
▪️Проверка с таймаутом
timeout 3 bash -c 'touch /mnt/data/.test && rm /mnt/data/.test'
Теперь: если FS зависла - команда завершится по таймауту, скрипт не повиснет
▪️ Измерение latency. Можно измерить время операции:
start=$(date +%s%N)
touch /mnt/data/.test && rm /mnt/data/.test
end=$(date +%s%N)
echo $(( (end - start)/1000000 )) ms
Если операция занимает:
<10 ms - нормально
100–500 ms - уже подозрительно
секунды - проблема
🛠 Готовый скрипт
#!/usr/bin/env bash
MOUNT="/mnt/data"
TIMEOUT=3
start=$(date +%s%N)
if timeout "$TIMEOUT" bash -c "touch $MOUNT/.test && rm $MOUNT/.test"; then
end=$(date +%s%N)
latency=$(( (end - start)/1000000 ))
echo "OK ($latency ms)"
else
echo "FAIL: FS недоступна или зависла"
fi
▪️ Проверка нескольких точек
for m in /data /backup /nfs; do
echo -n "$m: "
timeout 3 bash -c "touch $m/.test && rm $m/.test" \
&& echo "OK" || echo "FAIL"
done
BashTex 📱 #scripts #filesystem