Как я знаю, работает ли acct? (Учет системных ресурсов Unix)

Попробуйте это:

find . -type f -name '*.base.coverage.txt' \
  | xargs paste > paste_all_l30.p90.base.cov.norm

Это будет работать, пока нет слишком многих файлов. Если существует много файла затем это:

touch paste_all_l30.p90.base.cov.norm
for file in `find . -type f -name '*.base.coverage.txt'`; do
  paste paste_all_l30.p90.base.cov.norm $file > tmp
  mv tmp paste_all_l30.p90.base.cov.norm
done
4
01.06.2015, 15:07
3 ответа

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

Возможно, должна быть символьная ссылка на текущий учетный файл где-нибудь в /proc, но нет того.

2
27.01.2020, 20:54

Я нахожусь на CentOS, и он использует psacct.

psacct выполнения как услуга, таким образом, Вы можете:

 service psacct status

и можно проверить на lockfile: /var/lock/subsys/psacct

Я думаю, что это работает в пространстве ядра, и я думаю его на самом деле разработанный быть твердым сказать, работает ли это или включенное (если Вы используете неописуемый учетный файл и изменяете местоположение lockfile в сценарии запуска), Это делает это очень полезным инструментом для того, чтобы сделать судебную экспертизу на pwned поле.

2
27.01.2020, 20:54

Вы правы: Нет процесса, связанного с учетной записью системы, это внутренняя функция ядра, которая напрямую пишут на системной учетной записи, который на многих Unixes является / var / аккаунт / ACCT . Нет системного вызова, чтобы получить статус этой внутренней функции ядра.

Версимый способ проверить, что учет системы включен, это использовать стандартную команду UNIX TASTCOMMM дважды. Первый процесс будет зарегистрирован в системном файле бухгалтерского учета, второй подтвердит вас, что последний прекращенный и зарегистрированный процесс FAXOMMM .

На сильно загруженном сервере, и, в частности, на многопроцессорах, 2-й LASTCOMMM может отображаться еще несколько других завершенных процессов, прежде чем отображать 1-й LASTCOMMM . Это нормально.

Вот моя лучшая функция оболочки, чтобы получить статус учетного учета на:

is_acct_on() {
    t=`mktemp /tmp/acct.XXXX`
    touch ${t}
    sleep 1
    x=`find /var/account -newercc ${t} -name "acct" | head -1`
    rm ${t}
    [ -z "${x}" ]
}

Использование:

is_acct_on

Возврат 0 0 , если учетная запись выключается

1 , если учет включен.

1
27.01.2020, 20:54

Теги

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