Сделать через жопу — это лучше, чем не сделать совсем
Иногда требуется проверить поведение скрипта, когда на диске физически закончилось место. Но создавать огромный файл с нулями и забивать всё место — такое себе решение.
А как быть? Да всё просто, диск можно забить искусственно, не забивая его. Для этого существует такая поебень, как /dev/full.
При попытке записи в /dev/full тебе выдаст — опа, а места нету! Даже если физически место есть.
Держу пари, будет пытаться продолжать писать. А по-хорошему, он должен сообщить тебе про это либо корректно завершиться и освободить файл. Смекаешь?
Вот пример скрипта:
#!/bin/bash
output_file="data.txt"
while true; do
# Записываем данные в файл
echo "bashdays data" >> "$output_file"
# Проверяем на "No space left on device"
if ! echo "bashdays data" >> "/dev/full"; then
echo "Disk is full!"
break
fi
done
Скрипт при каждой итерации проверяет, заполнен ли диск, и, если заполнен, выводит сообщение «Disk is full!».
Символ «!» в этом примере инвертирует результат выполнения команды. То есть если запись в /dev/full не вызывает ошибки, то диск ещё не заполнен.
echo можешь заменить, например, на триггер, который тюкнет тебе в Telegram и скажет, что твой скрипт сожрал всё место.
Такие дела. Изучай.








Комментарии