Эквивалентный из Соляриса “df-t” управляют на Linux?

Вывод MySQL и терминальная работа правильно; проблема состоит в том, что текст в базе данных маркирован как latin1, но на самом деле закодированный как utf8.

Это может быть зафиксировано

  1. дамп базы данных в файл Latin1, затем импорт того файла как UTF-8: Фиксация MySQL Character Encoding Mismatch; или
  2. в MySQL, преобразовывающем через binary проигнорировать неправильное кодирование:

    UPDATE table SET column=CONVERT(CONVERT(column USING binary) USING utf8) WHERE id=123;
    

    Фиксация столбца, кодирующего путаницу в MySQL.

0
12.02.2014, 14:17
2 ответа

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

Солярис только сообщает об общем и свободном inodes:

Solaris # df -t /home/jlliagre
rpool1/export/home/jlliagre: 20775669 blocks 20775669 files
                      total: 69672960 blocks 20775865 files

На Linux более близкая команда df -i. IUsed столбец показывает количество используемого inodes и IFree каждый показывает количество свободного inodes.

Linux # df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/mapper/root_vg-lv_root
                     1048576   57730  990846    6% /

Таким образом, Linux, эквивалентный из Вашей команды Solaris, был бы:

for i in /opt/aa /opt/aa/data /opt/aa/bb; do
    echo -n "$i "; df -i $i | awk 'NR > 1 {print $2}'
done

Отметьте это если /opt/aa, /opt/aa/data и /opt/aa/bb принадлежите той же файловой системе, число, о котором сообщают, будет тем же для каждого из этих каталогов, которые не могли бы быть тем, что Вы хотите.

2
28.01.2020, 02:37
  • 1
    количество inod означает количество файла? –  Kiwy 12.02.2014, 14:27
  • 2
    @Kiwy, да, хотя это зависит, что Вы подразумеваете под файлом. Например, некоторые inodes, о которых сообщают df не будет иметь никакой записи ни в каком каталоге, и у некоторых будет больше чем одна запись (жесткие ссылки). Это - вероятно, то же с Солярисом df -t. –  Stéphane Chazelas 12.02.2014, 14:31
  • 3
    См. также stat -fc '%c-%d' /opt/aa | bc (принятие GNU stat). –  Stéphane Chazelas 12.02.2014, 14:31
  • 4
    , я верю Вам, означают IUsed, который дает используемый inodes, IFRee дает свободные. В любом случае это дает inodes (файлы + каталоги + устройства, по существу) в файловой системе, не в соответствии с каталогом, который, кажется, то, что хочет OP. –  vonbrand 13.02.2014, 01:28
  • 5
    @vonbrand я действительно имел в виду IUsed. Я просто обновил свой ответ для разъяснения то, что сценарий OP делает и предоставляет эквивалентному сценарию в соответствии с Солярисом. –  jlliagre 13.02.2014, 02:25

На Linux я использовал бы:

 find /opt/aa           -type f -xdev| wc -l
 find /opt/aa/data      -type f -xdev | wc -l
 find /opt/aa/bb/oracle -type f -xdev | wc -l

Но это могло быть ненадежно, если Вы не корень.
find folder -type f распечатает список всего Вашего файла в папке. -mount использование для не поиска в точку монтирования и limitate к текущей файловой системе. | wc -l будет считать строки команды находки.

Я думаю, что эта команда не доступна, потому что тип файловой системы отличается на Linux.

0
28.01.2020, 02:37
  • 1
    Строго говоря это рассчитывает, строки от имени всех записей каталога (опускает . и .. хотя), не файлы или inodes. -xdev стандартное имя для -mount. –  Stéphane Chazelas 12.02.2014, 14:34

Теги

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