У меня есть команда, например. ls-l> file.txt Когда на моем диске недостаточно места, приведенная выше команда просто останавливается, ожидая чего-то. Кто-нибудь знает о коде, который я мог бы написать, позволяя мне отображать сообщение о нехватке места на моем диске? Например. могу ли я использовать IPC или у вас есть другие идеи? Заранее спасибо.Bash: Перенаправления перенаправления
ответ
Вы можете использовать команду df
, чтобы определить количество свободного места на диске и не начинать обработку, если есть, например, менее 5 М свободного пространства.
Или вы можете проверить количество свободного места из своей внутренней программы и написать предупреждающее сообщение в STDERR.
Команда вывода команды через другую программу, которая будет перехватывать ошибки записи (например, ENOSPC
), диагностировать печать и сбой, если ничего не поделаешь.
Эта программа может быть столь же просто, как cat
:
foobar | cat > file.txt
cat
сообщит об ошибке и умереть, и foobar
получит SIGPIPE
с действием по умолчанию, чтобы умереть, а также.
Не могли бы вы предоставить дополнительную информацию? – user365828
Каково желаемое поведение, когда приложение заканчивается на диске? Сбой с некоторой диагностикой вместо ожидания на неопределенное время, продолжайте писать, как в круговом буфере, что-то еще? – rkhayrov
Когда приложение заполнило диск, нет необходимости ждать неограниченное количество свободного места, просто предупредите, показывая «вне дискового пространства» и остановитесь оттуда или выйдите из кода. – user365828
- 1. Bash перенаправления внутри команды
- 2. Ограничения перенаправления выхода bash?
- 3. Помощь перенаправления Bash
- 4. последовательность перенаправления ввода-вывода bash
- 5. Получить местоположение перенаправления в bash
- 6. полосы перенаправления перенаправления перенаправления на https url
- 7. . Правило перенаправления перенаправления
- 8. Страница перенаправления перенаправления почты
- 9. Справочник перенаправления перенаправления для vscode
- 10. Ошибка перенаправления Bash stderr и stdout
- 11. Подробности перенаправления в bash (Cygwin специально)
- 12. Согласование перенаправления bash на тот же файл
- 13. Другой способ перенаправления вывода в Bash
- 14. Bash IF код выхода ошибки перенаправления
- 15. Вывод перенаправления Bash в tty и файл
- 16. Bash capture stderr в переменную без перенаправления
- 17. ожидать перенаправления выходов giberish
- 18. Передача аргумента скрипту bash, который запускается путем перенаправления на bash
- 19. Как получить URL-адрес перенаправления HTTP-перенаправления?
- 20. Apache2 перенаправление перенаправления htaccess слишком много перенаправления
- 21. Имя параметра перенаправления перенаправления IIS URL-адрес
- 22. Запрос SAML для перенаправления HTTP-перенаправления
- 23. cURL: После перенаправления без фактического перенаправления
- 24. Параметры перенаправления пиксельных параметров Facebook для перенаправления?
- 25. Почему 2 перенаправления PHP вызывают цикл перенаправления?
- 26. Как перенаправить ошибку перенаправления
- 27. Тест двойного перенаправления
- 28. Попытка перенаправления в скрипте
- 29. Ожидать перенаправления стандартного ввода
- 30. Смещение сценариев перенаправления ввода
К сожалению, команда всегда будет работать. Мне просто нужно будет решить проблему блокировки. Вы имеете в виду, что мне придется написать какой-то цикл, который всегда будет вычислять свободное пространство с помощью df, и когда он выходит за рамки некоторого предела, я показываю сообщение? Но нет ли более эффективного способа проверки того, остановился ли процесс, а не петля. – user365828