Мониторинг заданий CRON с использованием кода выхода

Как и обещал, вот подход, который я разработал перед написанием этого вопроса. Он работает и возможно это хороший подход, но он казался слишком запутанным для этой, казалось бы, простой задачи. Теперь кажется, что все не так уж плохо. :)

function printcounts() {
  printf "%s", currentf1
  for (i = 2; i <= 3; i++ ) {
    printf "%s", FS countuniq [ i ]
  }
  printf "\n"
}

function resetvars() {
  delete already_seen_value
  for ( i = 2; i <= 3; i++ ) {
    countuniq [ i ] = 0
  }
}

$1 != currentf1 {

  if ( NR != 1 ) {
    printcounts()
  }
  currentf1 = $1
  resetvars()
}

{
  for ( i = 2; i <= 3; i++ ) {
    if ( ! already_seen_value [ i ":" $i ] ) {
      already_seen_value [ i ":" $i ] ++
      countuniq [ i ] ++
    }
  }
}
END {
  printcounts()
}

С изменениями, основанными на ответе chaos'а:

function printcounts() {
  printf "%s", currentf1
  for (i = 2; i <= 3; i++ ) {
    printf "%s", FS countuniq [ i ] + 0
  }
  printf "\n"
  # Reset vars
  delete seenthis
  delete countuniq
}

NR != 1 && currentf1 != $1 {
  printcounts()
}

{
  for ( i = 2; i <= 3; i++ ) {
    if ( ++ seenthis [ i ":" $i ] == 1 ) {
      countuniq [ i ] ++
    }
  }
  currentf1 = $1
}

END {
  printcounts()
}

(+ 0 в функции printcounts - для того, чтобы всегда выводилось число, так как в реальном случае используется разделитель полей запятой и игнорирование пустых полей, поэтому нулевой счет действительно возможен)

.

2
06.06.2018, 15:24
4 ответа

Я сам нашел решение. Я описываю это здесь, если это кому-то еще нужно.

Проблемный файл был /home/<username>/.config/menus/mate-applications.menu. В моем случае было ясно, какая часть файла была повреждена и как последняя должна быть восстановлена ​​(, если это не так, путь вперед будет заключаться в использовании самой новой из резервных копий с именем mate-applications.menu.undo-10, расположенных в том же каталог ).

1
27.01.2020, 23:09

Я удалил каталог меню в .configс помощью:

me@pc ~/.config $ rm -rf menus/
-1
27.01.2020, 23:09

G -Ответ человека дал мне необходимую подсказку, я просто просмотрел файл /home/shimmy/.config/menus/mate -apps.menu, скопировал и вставилhttps://github.com/mate-desktop/mate-menus/blob/master/layout/mate-applications.menuв него (нашел через поиск)

-1
27.01.2020, 23:09

Я полагаю, что попытка использовать перетаскивание -и -опускание в апплете меню вызвала проблему в моем случае.

В упомянутом файле /home/<username>/.config/menus/mate-applications.menuв конце был неправильно отформатированный раздел XML. Что-то вроде<New>d</Old>

После исправления и сохранения, при следующем использовании апплет снова показывал приложения.

0
17.05.2021, 06:40

Теги

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