Как безопасно остановить команду усечения

en_DEне существует в качестве языкового стандарта по умолчанию, поэтому вы не можете выбрать английский язык, локализованный для немецкоязычных -стран, в качестве языкового стандарта во время установки.(Почему следует использовать обновление локали -вместо прямой установки ЯЗЫКА? описывает проверки, связанные с выбором локали.)

Есть два подхода к достижению цели.

  1. Первый — создать новую локаль с вашими настройками; см. Как (легко )использовать новую локаль en _**? для получения подробной информации.
  2. Другой способ — настроить параметры локали -более детально, используя различные LC_переменные ; например:

    export LANG=en_US.UTF-8
    export LC_MONETARY=de_DE.UTF-8
    export LC_TIME=de_DE.UTF-8
    

    или, если вы хотите, чтобы по умолчанию использовался немецкий язык, за исключением сообщений:

    export LANG=de_DE.UTF-8
    export LC_MESSAGES=en_US.UTF-8
    

    (и сбросьте любые другие конфликтующие LC_переменные, в частности LC_ALL, которая переопределяет все остальные настройки ). Вы можете проверить настройки с помощью программы locale; см. Как работает программа "locale"? для получения подробной информации.

2
03.08.2020, 18:50
1 ответ

Прерывание процесса никогда не приведет к повреждению самой файловой системы¹. Ядро обеспечивает это. Худшее, что может случиться, это то, что файлы находятся в несогласованном состоянии по отношению к инвариантам приложения. Например, удаление файлового редактора во время сохранения файла может оставить половину -записанного файла, но не повредит другие файлы.

Утилита truncateскрытно вызывает системный вызов ftruncate. Этот системный вызов является атомарным :, он либо происходит, либо нет. Таким образом, если вы завершите процесс truncate, конечным результатом будет либо файл в исходном состоянии, как если бы truncateне запускался, либо файл будет усечен. Вы не можете получить укороченный, но не полностью усеченный файл.

Усечение файла не перезаписывает данные на диске. Он обновляет только список блоков, используемых файлом, и список свободных блоков. Он не обновляет сами блоки данных :, они будут перезаписаны, когда они будут использованы для последующего хранения данных. Даже с большим файлом это не займет много времени. И даже перезапись 77 ГБ данных не займет несколько часов на любом оборудовании, где у вас может быть место для 77 ГБ журналов. Так что, скорее всего, происходит что-то нехорошее. Возможно, вы попали в патологический случай с плохой производительностью на полном диске, но даже в этом случае я ожидаю, что система будет замедляться на секунды или минуты, если что-то еще пишет на диск с высоким приоритетом, но не часами.Более вероятная возможность состоит в том, что с диском что-то не так, и то, что оно обнаружено сейчас, в основном совпадение. Проверьте журналы ядра :, если с диском что-то не так, вы увидите сообщения об этом. Также проверьте состояние диска с помощью smartctl .

Между прочим, syslog.1— это файл архива, так что больше ничего в него не записывается. Вы могли бы также удалить его, а не делать его пустым.

¹ Если нет ошибки ядра или оборудования, но это может произойти независимо от того, завершаете ли вы процесс.

4
18.03.2021, 23:15

Теги

Похожие вопросы