7

у меня есть программа, работающая с использованием этой команды

command 2> sample.txt

Теперь этот файл постоянно увеличивается, и команда будет завершена через 5-6 дней, и я считаю, что размер файла не будет в ГБ

Я пробовал это

echo "" > sample.txt но это ничего не меняет и размер файла растет.

я думал о настройке работы cron через 1 час, чтобы очистить ее содержимое

Как я могу очистить содержимое файла

4 ответа4

2

Поскольку файл остается открытым приложением, я не думаю, что вы можете просто очистить его традиционно. Погуглив немного я нашел это:

Предполагая, что автор кода, пишущего бесконечный файл, знает даже немного о Unix:

  1. Для этого процесса есть файл конфигурации, который называет выходной файл журнала.
  2. Процесс "самонастраивается", когда он получает сигнал SIGHUP, перечитывая файл конфигурации, и если имя файла журнала изменилось, то закройте старый, откройте новый.

Это в значительной степени стандарт UNIX для бесконечной программы записи журналов.

Кроме этого, я не могу найти никакого очевидного решения, так как вы использовали > а не >> . В следующий раз вы можете захотеть перенаправить через truncate или что-то в этом роде, чтобы избежать этой проблемы бесконечно открытого файла журнала.

1

Все, что тебе нужно:

cat /dev /null> sample.txt

или же

> sample.txt

0

Используйте logrotate, он предназначен именно для этой миссии

0

Следующая команда должна работать:

cat /dev/null > sample.txt  

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .