2$ (ссылка поля) в awk НАЧИНАЮТСЯ, не работает

Ваш сервер работает в UTC? Большинство работало бы в зоне местного времени, которую я предполагаю, UTC+1 (ВСТРЕЧЕННЫЙ или CET) для Вас. Я спрашиваю, потому что мы должны знать, какой часовой пояс используется в crontab, например, возможно 3.05 не назван 3.05 в crontab.

Общие задачи, которые делают большой доступ к диску, включают makewhatis/man-db и slocate/mlocate. Двойная проверка они не выполняются приблизительно 3,05, например, смотрят на /etc/crontab и /etc/cron.daily. Регистрируйте пользовательские вкладки крона /var/spool/cron.

Существует два способа, которыми я могу думать для выяснения то, что достигает 3,05 без журналов крона.

Первое auditctl, который является немного болезненным для использования.

На основе страницы справочника я попробовал бы что-то как:

$ sudo auditctl -a entry,always -S open -S creat \
    -S read -S readv -S write -S writev -S sendfile \
    -S fork -S clone -S execve -k 305

настраивать аудит, затем

$ sudo aureport -s -i -ts 03:04 -te 03:06

когда Вы входите в систему после 3.05 для проверки то, что произошло.

Вторым является простое ps. Просто запишите сценарий для выполнения ps несколько раз, и расписание это для достижения 3,04.

Много аспектов ps может быть полезным здесь, например, wchan и status поля для наблюдения, какие процессы делают ввод-вывод и pcpu видеть, какие процессы используют большую часть ЦП в то время. Конечно, любой процесс, который не появляется в списке в 3.04.59, но действительно появляется в или вскоре после 3.05.01, является очевидным подозреваемым также.

1
11.02.2012, 00:42
2 ответа

BEGIN шаблоны выполняются, прежде чем любой вход читается, поэтому следовательно, ни одна из переменных, которые относятся для ввода, как NR, поля как $0..., будет определен в любом из BEGIN блоки. Ваш второй подход корректен и намного лучше. ¹ От POSIX awk спецификация (шахта акцента):

awk утилита должна распознать два специальных шаблона, НАЧАТЬСЯ и ЗАКОНЧИТЬСЯ. Каждый НАЧИНАЕТ, шаблон должен быть подобран однажды и его связанное действие, выполняемое, прежде чем первая запись входа будет считана...

¹ Просто примечание стороны, это также хорошо, потому что это не делает предположения о минимуме или максимуме, ограничиваемом конкретным значением как 0, что-то, много острот, которые каждый находит в Интернете, принимают.

6
27.01.2020, 23:13
  • 1
    НАЧНИТЕ шаблоны выполняются, прежде чем любой вход читается - если я не использую getline.. Спасибо за ответ. –   11.02.2012, 00:22

Если Вы хотите выполнить команду на первой строке входного текста, необходимо использовать NR==1 шаблон, нет BEGIN.

awk  -F'=' '
    NR==1 {
            MIN=$2; MAX=$2; print MIN;
    }
    NR>1 {
            if ( $2 > MAX )
            {
                    MAX = $2;
            }
...

Как указано @jw013, BEGIN шаблон - чтобы действия выполнились перед чтением первой строки.

1
27.01.2020, 23:13
  • 1
    Вы могли избежать NR>1 тест путем окончания первого блока next. –  dubiousjim 19.04.2012, 22:27

Теги

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