Если вы не возражаете против перестановки порядков, следующее должно сработать
awk -F, '{print $3","$4}' <file name> | uniq -c
uniq -c
подсчитывает количество повторений
Для вашего ввода, вывод будет
2 VO,1000 1 DT,1000 1 VO,2000
При необходимости дальнейшее редактирование можно выполнить с помощью 2-го awk
This seems more an hardware/use case problem than something else. I bet common sense might be more important than Linux skills here. Are you doing heavy I/O in the cards, MySQL/Apache/compiling stuff...syslog/frequent system updates? -- comment by Rui F Ribeiro
Я могу расширить сказанное выше. Но я согласен с первым пунктом, и я согласен, что это был первый вопрос, который я задал.
- Should I enable some debug logs for the MMC subsystem?
- Is there a userspace tool that can sniff what's going on?
- How do I make the error codes make more sense?
Единственная уверенность, которую я получил от атрибуции сбоев, исходила больше от "истории" и общих результатов, которые я получаю, а не от конкретных ошибок команд низкого -уровня. Которые в любом случае могут различаться между реализациями.
Я полагаю, что даже при использовании твердотельного накопителя разумной марки у меня возвращались неверные данные вместо ошибок ввода-вывода. Это, безусловно, был один из известных режимов отказа многих твердотельных накопителей. [2013 ][ 2017 ]. (Возможно, это удивит людей, знакомых с современными файловыми системами и реализациями баз данных, которые часто надеются на более управляемый набор режимов отказа ). Обратите внимание, что документы, на которые я ссылаюсь здесь, сосредоточены на возвращенных данных; они больше не делали различий в сообщениях об ошибках, за исключением различия мертвого диска / поврежденного сектора, которое вы уже измерили.
Неисправность моего твердотельного накопителя была связана с «восстановленным продавцом» ноутбуком, который уже был «отремонтирован» один раз и снова начал показывать сбои -, что, вероятно, вызывало перебои в подаче питания на диск, как и в связанных документах. Возможно, он также не смог обеспечить стабильные уровни напряжения.
I'm trying to understand if it's a matter of bad SD cards or if there might be something wrong with the controller driver that is pushing the cards to corruption.
Хорошее оборудование с хорошим сетевым питанием не приводит к выходу из строя хорошей SD-карты -, если только вы не слишком нагружаете ее. Рабочая нагрузка — очень важная переменная , которую вы [изначально] не упомянули . Эти карты памяти представляют собой относительно небольшие, обычно дешевые аппаратные средства, предназначенные для относительно не -требовательного использования для хранения мультимедийных файлов (, отсюда MMC, «MultiMediaCard» ). Особенно более дешевые не обязательно будут очень хороши в «выравнивании износа -» (, перераспределяя нагрузку с логических блоков горячей точки на большое количество физических блоков ).
Я измерил рабочую нагрузку с помощью быстрого хака, запланировав выполнение ежедневного задания cron tunefs -l /dev/mmcblk0p4 | grep writes >> /var/log/writes.log
.
Но если мы отложим в сторону рабочую нагрузку, вы будете правы, исходя из информации, которую вы предоставили, рассмотреть возможную проблему со стороны контроллера -. У меня были повторяющиеся поврежденные сектора на SD-карте из-за записи с карманного устройства, возможно, когда его батарея была разряжена. Это была карта от одного имени бренда. Сектора можно было восстановить, и я все еще использую ту же карту. У меня также был какой-то временный сбой инициализации на этой карте, я думаю, что это тоже было связано с поврежденными секторами (после того, как я преодолел сбой инициализации ), но я мог ошибаться -вспоминая.
I'm having a series of failing/sometimes failing SD cards.
Из вашего [первоначального] вопроса у меня сложилось впечатление, что это операция небольшого масштаба, и выполнение тщательной тестовой матрицы с различными картами, контроллерами и рабочими нагрузками было бы излишним.
После рабочей нагрузки первой переменной, которой вы управляете, является карта.
Написано в 2018 году, что существует один глобальный бренд, который можно считать «каноническим» для SD-карт-
см. результаты в:https://www.amazon.com/s/field-keywords=sd+card
-и мы надеемся, что у вас есть ряд розничных каналов, которые можно считать... по крайней мере, достаточно надежными для целей сравнения. (Помня о том, что различные популярные интернет-магазины действуют как «торговые площадки», а также продают собственные товары ).
Официальное оборудование Raspbery PI также может быть приемлемо. т.е. SD-карты, официально продаваемые для запуска Linux на небольшом настольном компьютере, которые, как сообщается, работают хорошо. (Более требовательная рабочая нагрузка, чем файлы мультимедиа ).
В общих чертах, если вы получаете карту, которая быстрее, чем вам строго нужно, я также думаю об этом как о потенциально более высоком рейтинге выносливости. (Учитывая, что рейтинг скорости, как правило, гораздо более доступен, чем выносливость ).
Если вы контролируете/измеряете эти две переменные,затем вы можете сосредоточить свои суждения на остальной части соответствующего оборудования.
The failing ones (can occasionally still be mounted)
Обратите внимание, что в самом общем случае, если вы считаете, что устройство было написано плохо, вы можете попытаться сбросить эту ошибку:
Если у вас хорошее встроенное оборудование MMC, как у вас, вы можете использовать команду Linux blkdiscard
как более эффективный способ проверить стирание всех блоков устройства перед его «переформатированием».. Но оперативность — единственное преимущество, по сравнению с проверкой на ошибки при перезаписи всего диска нулями, т.е. dd bs=1M if=/dev/zero of=/dev/mmcblk0
. (Кроме того, что устраняется необходимость записывать стертые блоки, blkdiscard
теоретически также может впоследствии обеспечивать более «-новую» производительность и повышать срок службы, давая устройству немного больше свободы ).
(Если это был диск SATA -, существует специальная команда «безопасного стирания» для удаления всего содержимого логического диска (, см.man hdparm
). Однако я не знаю ни одной эквивалентной команды MMC. Некоторые поставщики твердотельных накопителей воспользовались этой командой для сброса своих таблиц сопоставления блоков в качестве обходного пути, если им не удалось восстановить производительность «как -new» с эквивалентной последовательностью blkdiscard
. Обратите внимание, что эта команда не обязательно проверяет полное -стирание диска. В некоторых случаях удаляется только внутренний ключ шифрования ).
My SanDisk micro -SD-карта недавно снова заработала. Похоже, что приведенные ниже конкретные ошибки были вызваны ненадежным соединением.Проблема решилась удалением и повторной -вставкой микро -SD в переходник micro -SD на SD, после суеверного обдува всех металлических колодок.
В ридере на моем ноутбуке Dell Latitude E5450(sdhci-pci
драйвер ядра, версия ядра Fedora Linux около v4.17 ), не удалось инициализировать карту. На моем SheevaPlug (те же сведения об аппаратном и программном обеспечении, что и в этом вопросе ), эта карта, похоже, смогла инициализироваться, но показала ошибки ввода-вывода. Возможно на Dell ошибка -обработка тайм-аутов настроена не совсем корректно.
Делл:
[ 2.436566] mmc0: Unknown controller version (3). You may experience problems.
[ 2.449019] mmc0: SDHCI controller on PCI [0000:01:00.0] using ADMA
...
[509227.374012] mmc0: error -84 whilst initialising SD card
[509227.621510] mmc0: error -84 whilst initialising SD card
[509227.865472] mmc0: error -84 whilst initialising SD card
[509228.142120] mmc0: error -84 whilst initialising SD card
Шиваплаг:
[6076613.118617] mmcblk0: mmc0:aaaa SC16G 14.8 GiB
[6076613.295811] mmcblk0: error -110 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
[6076613.545740] mmcblk0: error -110 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
[6076613.555301] mmcblk0: retrying using single block read
[6076613.728413] mmcblk0: error -110 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
[6076613.737965] blk_update_request: I/O error, dev mmcblk0, sector 0
[6076613.912043] mmcblk0: error -110 transferring data, sector 1, nr 7, cmd response 0x900, card status 0x0
[6076613.921599] blk_update_request: I/O error, dev mmcblk0, sector 1
...