Игнорировать изменение размера «df -h» при использовании diff

@The-amateur-programmer's answer - отличный ответ, но я хотел бы добавить к нему одну вещь. Если вы беспокоитесь о том, что ваш пароль будет виден, когда кто-нибудь выполнит ps auxwww, вы также можете передать пароль в MySQL с помощью переменной среды под названием MYSQL_PWD:

mysql> set password for 'will@localhost' = PASSWORD('test');
Query OK, 0 rows affected, 1 warning (0.01 sec)

$ export MYSQL_PWD=test
$ mysql -uwill@localhost
Welcome to the MySQL monitor.

Это и другие варианты объясняются здесь в документации MySQL.

4
07.05.2017, 01:04
4 ответа

Вы также можете рассмотреть вывод команды lsblk. Это утилита только для Linux, но она выводит список всех блочных устройств, даже если они не смонтированы. См. справочную страницу для опции -n, которая отключает заголовки, и опции -o, которая позволяет указать нужные столбцы.

0
27.01.2020, 20:50

Вы можете сравнить выходные данные команды mount, а не команды df, если хотите сравнить только точки монтирования.

Это также позволит сравнить параметры монтирования и типы файловых систем, что тоже может быть полезно.

$ mount
server:/export/client/root on / type nfs (v3, udp, timeo=100, retrans=101)
server:/export/shared/usr on /usr type nfs (nodev, wxallowed, v3, tcp, soft, intr, timeo=100)
amd:20004 on /home type nfs (v2, udp, intr, timeo=100, retrans=101)
server:/export/shared/home on /tmp_mnt/server/export/shared/home type nfs (nodev, nosuid, v2, udp, soft, intr, timeo=100)
3
27.01.2020, 20:50

В GNU diff есть два способа игнорировать изменения. Есть варианты игнорировать определенные виды различий, такие как пробелы или регистр, но они ограничены несколькими предустановками. И есть возможность игнорировать строки, которые соответствуют определенным шаблонам, но это позволяет игнорировать только строки, а не определенные изменения в строках. Игнорирование изменений пробелов(diff -w)может помочь вам в случае, если столбцы отформатированы до разной ширины, но для игнорирования некоторых чисел вам нужно что-то еще.

Обычный способ игнорировать определенные различия — предварительно обработать два файла, чтобы удалить или канонизировать те части, которые вы хотите игнорировать. Например, если вы хотите игнорировать используемые/доступные/процентные столбцы, предполагая, что ваши имена томов и точки монтирования не содержат пробелов, вы можете использовать

awk '{print $1, $2, $6}'

в качестве препроцессора. Вы также можете отсортировать файлы, если вы еще этого не сделали, потому что разница в порядке перечисления с dfнесущественна. В оболочке с заменой процесса (ksh, bash, zsh):

diff <(<./prechecks/file awk '{print $1, $2, $6}' | sort) \
     <(<./postchecks/file awk '{print $1, $2, $6}' | sort)

Если вы делали это для многих файлов, вместо использования diff -rsсоздайте собственный цикл для вызова diff для файлов по отдельности.

2
27.01.2020, 20:50

Is there a way to ignore the tabs - Size; Used; Avail; Use%;

Поля вывода команды dfнастраиваются с помощью опции --output:

.
df -h --output='source'

Приведенное выше выведет только файловую систему список имен

Filesystem
/dev/mapper/vg00-lvroot

--output[=FIELD_LIST]
use the output format defined by FIELD_LIST, or print all fields if FIELD_LIST is omitted.


Если некоторые параметры не поддерживаются, попробуйте следующий обходной путь сawk:

df -h | awk '{print $1}'
2
27.01.2020, 20:50

Теги

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