Длинный список часов с момента модификации

"I've checked the SATA cables and they seem alright, unplugged them and plugged them in again"

У меня была та же проблема дома, но она решилась только заменой кабелей sata. Так же, как и вы, они казались в порядке физически, но что-то было не так внутри них. Не судите о кабеле, просто взглянув на него. И эти ошибки ataраздражают, и они могут появиться практически ОТКУДА, даже из вашего блока питания. Пример:

... I first thought it was a problem of the SATA controller or cables so I switched the drives around, yet the same drive was still affected. I then assumed it was related to the drive which got me sidetracked for a while, till I routinely decided to reset the BIOS. Doing so I randomly had a look at the supply voltages, the 12V rail had dropped to around 10.2V... ...It really was an annoying experience and the symptoms were highly misleading. After all the drive was fine, and it was just the manifestation of a completely different problem. From now on I will routinely check lm-sensors for voltages as well....

В вашем конкретном сценарии я бы провел устранение неполадок следующим образом.

Сначала обо всем по порядку (, потому что,mdraid):

  • Проверьте в BIOS, является ли ваш контроллер диска FakeRAID , и проверьте, включен ли режим рейда в вашей установке. Измените его на Sata AHCI и переустановите систему. Общеизвестно (, и даже у Red Hat есть документ о ), что режим рейда FakeRAID может испортить настройки mdraid. Это не может решить проблему, но позволит избежать головной боли в ближайшем будущем .

После проверки SATA:

  • Замените кабели SATA. В наши дни они довольно недорогие, если только Supermicro не использует какой-то «фирменный» разъем на материнской плате.
  • Обновите встроенное ПО твердотельного накопителя и контроллера диска. Ваша проблема (failed command: WRITE FPDMA QUEUED,Emask 0x4 (timeout))кажется тесно связанной с этим, но с другим оборудованием :[решена] "неудачная команда :WRITE FPDMA QUEUED" ошибки ATA
  • Одолжите запасной блок питания у друга, обратив внимание на его технические характеристики, и попробуйте заменить его.
  • Обратитесь в supermicro и попросите обратиться в службу поддержки для вашей материнской платы, так как вы выполнили все основные действия.
  • После всего этого замените диски.
1
10.07.2020, 04:50
1 ответ

Я не знаю, как заставить lsделать то, что вы хотите. В зависимости от того, что вы ищете, вы можете создать сценарий, демонстрирующий такое поведение.

Было бы много работы, чтобы получить все прибамбасы и свистки, которые lsимеют в дополнение к этому поведению, но вы могли бы получить только такое поведение довольно легко.

Вот пример такого скрипта:

#!/bin/bash

function age() {
    local -r last_modification="${1}"
    local -r now="$(date +%s)"

    local -r seconds="$((now - last_modification))"
    if [[ ${seconds} -lt 60 ]]; then
        printf "%s seconds ago" "${seconds}"
        return
    fi

    local -r minutes="$((seconds / 60))"
    if [[ ${minutes} -lt 60 ]]; then
        printf "%s minutes ago" "${minutes}"
        return
    fi

    local -r hours="$((minutes / 60))"
    if [[ ${hours} -lt 24 ]]; then
        printf "%s hours ago" "${hours}"
        return
    fi

    local -r days="$((hours / 24))"
    if [[ ${days} -lt 365 ]]; then
        printf "%s days ago" "${days}"
        return
    fi

    local -r years="$((days / 365))"
    printf "%s years ago" "${years}"
}

function list_file() {
    local -r target_file="${1}"
    local -r last_modification="$(stat --format=%Y "${target_file}")"

    stat --format="%A %2h %-8U %-8G %5s $(printf "%-14s" "$(age "${last_modification}")") %n" "${target_file}"
}

if [[ $# -eq 0 ]]; then
    for i in *.*; do
        list_file "${i}"
    done
else
    for i; do
        list_file "${i}"
    done
fi

Вот пример выполнения:

$ myls
-rw-------  1 user  group   9061 3 days ago    .bash_history
-rw-r--r--  1 user  group    127 2 years ago   .bash_logout
-rw-r--r--  1 user  group    611 1 years ago   .bashrc
drwxr-xr-x  4 user  group   4096 155 days ago  .cache
-rw-------  1 user  group  40583 5 hours ago   .histfile
-rw-------  1 user  group    703 1 minutes ago .lesshst
...
$

$ myls myls
-rwxr-xr-x  1 user  group   1127 2 minutes ago  myls
$

Если вы укажете параметры скрипта, он выведет список этих параметров, в противном случае он выведет список содержимого текущего каталога.

Он использует statдля получения традиционных полей, представленных ls. Вместо отображения даты он использует функцию ageдля вывода строки «дружественно, x единиц времени назад». Эта функция может быть улучшена в зависимости от того, что конкретно вы хотите увидеть.

1
18.03.2021, 23:20

Теги

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