XFS, GlusterFS v5.5 и проблема 2038 года

Вы можете подсчитать повторяющиеся пары букв, например, в вашем примере aa в файле данных big_file следующим образом:

tr -cs a '\012' <big_file | awk '/aa/{n += length - 1}; END {print n+0}'

Строку можно объяснить следующим образом

  • tr заменяет любую последовательность символов, не являющуюся , на новую строку. Это разбивает несколько вхождений aa ... на отдельные строки
  • awk подсчитывает длину ненулевых строк. Используя свойство, состоящее в том, что последовательность из N символов содержит N-1 перекрывающихся пар, она может суммировать количество перекрывающихся пар и давать итоговую сумму в конце файла

На самом деле, поскольку файл "очень большой", вы получит лучший ответ, если включить grep в конвейер следующим образом:

tr -cs a '\012' <big_file | grep aa | awk '{n += length - 1}; END {print n+0}'
1
15.04.2019, 16:11
1 ответ

Возможное объяснение того, почему дата LastAccess изменена на уровне блоков, соответственно. почему XFS может когда-либо иметь дату, например. Может хранить 2070 в поле INT32:

Удивительно, что вы можете установить временные метки намного выше 2038 для atime, и они также отображаются с помощью обычных системных инструментов. Через некоторое время было замечено, что значения меняются и отображаются в диапазоне от 1902 -до 1969. Я подозреваю, что изначально удачная установка более чем 2038 стационарного времени соответствует в -memory представление метки времени. Кажется, это позволяет установить более 2038. на -диске представление XFS, с другой стороны, допускает только максимальное значение 2038, значения выше затем сопоставляются с диапазоном 1902 -. ] 1969, что является отрицательным диапазоном чисел int32 со знаком. Вот что я взял из этой ветки :https://lkml.org/lkml/2014/6/1/240

0
28.01.2020, 00:15

Теги

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