Как запустить определенный файл Crontab

Если вы собираетесь использовать синтаксис #include "file"как в программировании на C язык, который вы могли бы использовать cppдля его разбора. Скажем, если ваш main.txtвыглядел так:

Some text

#include "fragment1.txt"

Some other text

#include "fragment2.txt"

Some other text

ты мог бы сделать:

$ cpp -nostdinc -P <main.txt
Some text
This is content of fragment1
Some other text
This is content of fragment2
Some other text

Как поясняется вman cpp:

-nostdinc Do not search the standard system directories for header files. Only the directories you have specified with -I options (and the directory of the current file, if appropriate) are searched.

-P Inhibit generation of linemarkers in the output from the preprocessor. This might be useful when running the preprocessor on something that is not C code, and will be sent to a program which might be confused by the linemarkers.

Обратите внимание, однако, что cppделает больше, чем анализирует #includeстрок и в зависимости от вашего варианта использования это может быть или не быть полезным. Для например, cppавтоматически удаляет все комментарии в стиле C -:

// this is a comment
/* this as a comment too /*

Это выглядит полезным, и если вы хотите сохранить комментарии, вы можете использовать опцию -C. Другое дело что cppпопытается интерпретировать все строки, начинающиеся с #, как директивы препроцессора. Например, это:

#define A 7
Value: A

будет напечатано как:

Value: 7

и это

#blah blah

выдаст ошибку:

<stdin>:14:2: error: invalid preprocessing directive #blah

На практике существуют некоторые программы, использующие cpp. парсер конфигов, например xrdb.

1
05.11.2020, 04:55
1 ответ

Зачем вам 2 разных кронтаба (нельзя на уровне пользователя, только на уровне системы в/etc/cron.d-там в отдельных файлах можно указать пользователя который запускает крон )? Просто сделайте 2 строки в одном crontab, каждая с другим расписанием. Или другую команду/скрипт для выполнения, который проверит ваше состояние и решит, запускать ли некоторые команды или нет.

См. дальнейшее обсуждение сохранения отдельных файлов и их установки в ваш (один )crontab здесь:https://superuser.com/questions/391246/multiple-crontabs-for-one-user

В основном (псевдо--код )делает это:

if <something> cat file1 | crontab; else <something-else> cat file2 | crontab; fi

, который в любом случае должен работать на cron. Так что мое предыдущее предложение более элегантно в этом смысле.

1
18.03.2021, 22:52

Теги

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