Как записать это расписание в crontab?

Существует ряд различных инструментов, которые вы можете использовать в Linux:

  • sh | bash | ksh | csh - или какой-либо другой командный интерпретатор
  • awk
  • perl
  • python (зависит от того, установлен ли он)

Или любая комбинация вышеперечисленных инструментов.

Возможное решение с использованием bash и sed , см. Примечания после об ограничениях / предположениях:

#!/bin/bash
IN_FILE="$1"   ## Argument: test.txt
OUT_FILE=

# See done for
while read LINE
do
    case $LINE in
        begin)
            OUT_FILE=
            ;;

        path:*)
            OUT_FILE=$(echo "$LINE" | sed 's/^path: \(.*\)/\1/g').txt
            ## TODO: Do a first-seen OUT_FILE check and truncate file.
            echo "begin" >> "$OUT_FILE"   # TODO: Write from buffer instead
            echo "$LINE" >> "$OUT_FILE"
            ;;

        *)
            if [ ! -z "$OUT_FILE" ]
            then
                echo "$LINE" >> "$OUT_FILE"
            else
                ## TODO: Append to a buffer
            fi
           ;;
    esac
done < "$IN_FILE"

ПРИМЕЧАНИЕ: Приведенный выше код дал ожидаемый результат, но я не знаю Не проверял его, чтобы убедиться, что логика полная / без ошибок.

Он также имеет следующие ограничения и проблемы:

  • Будет добавляться к файлам .txt , даже если они уже существуют (проверка уникальности может быть добавлена ​​по запросу).
  • Предполагается, что begin предшествует path: .. и поэтому может игнорировать эту строку из ввода и записывать ее при обнаружении пути. Можно было бы создать переменную BUFFER , но я еще не сделал этого.
  • Возможно, отсутствуют некоторые проверки для пустого OUT_FILE.
2
25.12.2016, 03:17
1 ответ

Полночь равна 0, а не 24. Кроме того, каждый столбец работает независимо, поэтому 7-23 означает «всякий раз, когда часовая часть время с 7 до 23 включительно », а не« с 7:00 до 23:00 ». Поэтому используйте 7-23 для «с 7:00 до полуночи» и 0-6 для «от полуночи до 7:00».

*/2 7-23 * * * command
*/10 0-6 * * * command
4
27.01.2020, 21:59

Теги

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