Как зарегистрировать сервис Rhythmbox в системном dbus?

Проверив Центр знаний IBM на предмет различий в необходимых командах, я думаю, что у меня это получилось. Доводим до вашего сведения , у меня нет возможности проверить это в AIX, поэтому он основан на том, что я могу узнать об отличиях AIX на указанном выше сайте. В стандартных инструментах GNU / Linux перед рассмотрением некоторых опций он тестируется как хорошо. YMMV.

Для начала мы можем получить список файловых систем и какой процент используется для каждой, а также размер файловой системы (которую мы не можем отключить) и точку монтирования, которая может нам понадобиться для более поздняя обработка. Использование df -F% z% m возвращает что-то вроде / dev / sda1 1545476 78% / home , что означает 78 процентов из 1545476 блоков на устройстве / dev / sda1 , установленные на / home , используются.

Поскольку нам нужно знать только файловую систему и точку монтирования, чтобы проверить ее дальше и использованный процент, без знака «%», мы изменяем вывод с помощью sed и awk . Делая это, мы могли бы также поставить первым uasge и вторым именем, вырезать строки, которые не представляют настоящие файловые системы, и получить точку монтирования для каждой файловой системы. Это упростит обработку позже. Наконец, мы можем отсортировать его по убыванию используемого процента, чтобы самые важные были первыми. Это дает нам команду:

df -F %z %m | grep -e '^/dev/[sh]d' | sed 's/%//g' | awk '{print $3" "$1" \""$4"\""}' | sort -rn

Окончательный вывод для строки такой 78 / dev / sda1 / home .

Теперь мы можем использовать это как входные данные для цикла, который считывает каждую строку и обрабатывает ее так, как мы хотим, на основе предустановки action_limit , здесь установленной на 75. Сохраните его как сценарий оболочки с выполнять разрешения.

#!/bin/bash
action_limit=75;
df -F %z %m \
    | grep -e '^/dev/[sh]d' \
    | sed 's/%//g' \
    | awk '{print $3" "$1" "$4}' \
    | sort -r -n \
    | while read -r pct dsk mnt; do
        if test $action_limit -le $pct; then
            echo "$mnt for $dsk is using ${pct}%";
        fi;
    done

Строку с echo необходимо заменить на команду того, что вы хотите делать с этими файловыми системами, теперь, когда вы знаете, какие из них подходят. Команда echo показывает, где должна быть вызвана другая команда, и показывает, какая информация доступна для передачи этому сценарию. Не все нужно использовать. Скорее всего, потребуется только точка монтирования $ mnt . Обратите внимание, что $ mnt содержит путь к каталогу, который может содержать пробелы или другие опасные символы оболочки, и должен быть заключен в кавычки при использовании в качестве параметра для другого сценария или команды.

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

#!/bin/bash
action_limit=75;
top_count=10;
df -F %z %m \
    | grep -e '^/dev/[sh]d' \
    | sed 's/%//g' \
    | awk '{print $3" "$1" "$4}' \
    | sort -r -n \
    | while read -r pct dsk mnt; do
        if test $action_limit -le $pct; then
            echo "$mnt for $dsk is using $pct%";
            du -s -x -m "$mnt"/* | sort -rn | head -$top_count| awk '{SZ=$1;$1="";print "\t"SZ"\t"$0}';
        fi;
    done

На выходе будут в порядке убывания файловые системы, которые соответствуют или превышают установленный предел, action_limit , за которым следует файлы или каталоги, занимающие больше всего места в этой файловой системе. Количество перечисленных файлов или каталогов устанавливается новой переменной top_count . Они имеют отступ под точками монтирования, чтобы все было аккуратно и читабельно, и включают в себя общий размер каждого файла или каталога в мегабайтах.( -m управляет этим, и его можно изменить на -k для килобайт или -g для гигабайт. Мегабайты казались хорошим компромиссом.)

Наконец, вы использовали тег / bash , поэтому все тесты проводились в bash , и если используются какие-либо специфичные для bash тесты или синтаксис, я их не уловил. . Поэтому, если у вас есть другая оболочка, внимательно проверьте ее, прежде чем доверять ей.

2
20.12.2015, 11:40
0 ответов

Теги

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