Таймер с несколькими накалендальными моментами

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

Я тестировал это в своей системе (Ubuntu 14.04; grep (GNU grep) 2.16) со следующими файлами:

$ cat culls.txt 
h00
h10
h20
h30
h40
$ cat culls2.txt 
h00
h10
h20
h30
h40
$ cat hashes.txt 
h04
h11
h13
h30
h61
h40
h41
h39
h42
$ file culls.txt hashes.txt  culls2.txt
culls.txt:  ASCII text
hashes.txt: ASCII text
culls2.txt: ASCII text, with CRLF line terminators

Результат, который я получаю с помощью culls.txt , соответствует ожиданиям ( h30 и h40 удалены из вывода):

$ grep -v -F -f culls.txt hashes.txt
h04
h11
h13
h61
h41
h39
h42

Вывод, который я получаю с помощью culls2.txt , похож на то, что вы видите (только h40 ] удален из вывода; h30 все еще там):

$ grep -v -F -f culls2.txt hashes.txt
h04
h11
h13
h30
h61
h41
h39
h42

В последней строке culls2.txt нет окончаний строк.

Когда я также добавил терминатор строки CRLF в последнюю полученную строку:

$ grep -v -F -f culls3.txt hashes.txt
h04
h11
h13
h30
h61
h40
h41
h39
h42

Теперь хеши не удаляются из вывода.

Это доказывает, что проблема заключается в ограничителях линии CRLF.

1
09.08.2018, 07:56
2 ответа

Хотя этот пост немного устарел, я хотел бы отметить, что есть несколько способов объявить его в одном и том же таймере:

Each component can be specified as a list of values separated by commas.

В вашем случае, поскольку меняется только один компонент, я бы рекомендовал использовать это решение. У вас почти получилось, запятую нужно поставить между вхождениями одного и того же компонента:

OnCalendar=10,21:00
  • Человек из systemd.timer объясняет, чтоOnCalendar=:

May be specified more than once, in which case the timer unit will trigger whenever any of the specified expressions elapse.

Если меняются несколько компонентов, то я бы рекомендовал использовать это второе решение:

OnCalendar=Mon..Wen 10:00  
OnCalendar=Thu..Fri 21:00
4
27.01.2020, 23:12

Is it possible to have it run at multiple moments by declaring it in the same timer?

Да.

См. этот отрывок изman systemd.timer(курсив мой):

OnCalendar=

    Defines realtime (i.e. wallclock) timers with calendar event expressions. See systemd.time(7) for more information on the syntax of calendar event expressions. Otherwise, the semantics are similar to OnActiveSec= and related settings.

    Note that timers do not necessarily expire at the precise time configured with this setting, as it is subject to the AccuracySec= setting below.

    May be specified more than once.

Вот рабочий пример, который я использую:

[Timer]
OnCalendar=Mon-Sun *-*-* 23:00:00
OnCalendar=Mon-Sun *-*-* 06:00:00
10
27.01.2020, 23:12

Теги

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