Заплановані завдання синхронізації
Реєструйте запуски синхронізації на основі конфігурації в планувальнику операційної системи. Godwit Sync встановлює одноразові завдання і не запускає власного демона планувальника.
Встановлення завдання
schedule install перевіряє конфігурацію синхронізації та реєструє поточний виконуваний файл Godwit Sync із повторюваним тригером.
godwit schedule install --name nightly --config ./nightly.yaml --daily-at 02:00
godwit schedule install --name hourly --config ./hourly.yaml --every 1h
godwit schedule install --name weekdays --config ./weekdays.yaml --cron "0 6 * * 1-5"| Прапорець | Тип | Типове значення | Поведінка |
|---|---|---|---|
--name | string | required | Унікальна назва завдання. |
--config | string | required | YAML-файл синхронізації. Встановлення завершується помилкою, якщо файл відсутній або некоректний. |
--cron | string | none | Канонічний вираз cron із п'яти полів: хвилина, година, день місяця, місяць, день тижня. |
--every | duration | none | Додатна тривалість у форматі Go, наприклад 30m або 1h. |
--daily-at | HH:MM | none | Щоденний локальний час у 24-годинному форматі HH:MM. |
--backend | string | auto | auto, systemd, cron, launchd або taskscheduler. |
--system | bool | false | Встановити в загальносистемній області планувальника. Потребує прав root або адміністратора. |
--extra-arg | stringArray | none | Додає один аргумент sync після sync --config. Повторюйте для кількох аргументів. |
Вкажіть рівно один із прапорців --cron, --every або --daily-at. Назви завдань мають відповідати [A-Za-z0-9._-]+. Godwit Sync зберігає абсолютні шляхи до конфігурації та виконуваного файлу.
Перегляд, перевірка та видалення завдань
Команди керування використовують обраний бекенд. Якщо під час install бекенд було задано явно замість auto, передайте те саме значення --backend до status і remove.
godwit schedule list
godwit schedule status --name nightly
godwit schedule remove --name nightly| Команда | Поведінка |
|---|---|
godwit schedule list | Перелічує назви зареєстрованих завдань, бекенди, розклади, шляхи до конфігурацій і доступний час наступного запуску. |
godwit schedule status --name <NAME> | Повідомляє, чи встановлено та чи активне завдання. Дані про наступний запуск залежать від бекенда. |
godwit schedule remove --name <NAME> | Видаляє артефакт планувальника ОС і запис у реєстрі Godwit Sync. |
godwit schedule remove --name <NAME> --if-exists | Повертає код виходу 0, якщо завдання відсутнє. |
Бекенди планувальника
--backend auto обирає планувальник відповідно до поточної операційної системи.
| Хост | Бекенд | Поведінка |
|---|---|---|
| Linux | systemd | Обирається, коли systemd запущено і доступний systemctl. Інакше auto обирає cron. |
| Linux / Unix | cron | Використовує crontab користувача або /etc/cron.d з --system. Вивід cron і launchd записується до ~/.godwit/logs. |
| macOS | launchd | Використовує LaunchAgent або LaunchDaemon з --system. |
| Windows | taskscheduler | Використовує schtasks. --system налаштовує завдання на виконання від імені SYSTEM. |
--system створює загальносистемний юніт systemd, запис у cron.d, демон launchd або завдання Task Scheduler від імені SYSTEM.
Адаптери бекендів відхиляють розклади, які не можуть представити. systemd відхиляє одночасні обмеження за днем місяця і днем тижня. Інтервали cron мають відображатися на поля cron. launchd відхиляє розгортання понад 500 календарних записів. Task Scheduler приймає поширені щоденні, щотижневі, щомісячні та інтервальні форми.
Облікові дані у сховищі ключів
Зберігайте статичні облікові дані S3 за назвою, а потім посилайтеся на цю назву з конфігурації запланованої синхронізації.
godwit secret set prod-backup
godwit secret list
godwit secret get prod-backup
godwit secret rm prod-backup| Команда | Поведінка |
|---|---|
godwit secret set <NAME> | Зберігає ключ доступу, секретний ключ і необов’язковий сеансовий токен. Відсутні прапорці ключів викликають запити в терміналі без відображення вводу. |
godwit secret list | Виводить лише збережені назви. |
godwit secret get <NAME> | Підтверджує наявність названих облікових даних без виведення значень. |
godwit secret get <NAME> --show | Виводить значення облікових даних. Команда відмовляється виводити дані в нетермінальний потік. |
godwit secret rm <NAME> | Видаляє названі облікові дані. |
Посилання в конфігурації
source:
url: s3://production/data
endpoint: s3.amazonaws.com
auth_mode: keyring
secret_ref: prod-backup
destination:
url: ./backupGodwit Sync використовує нативне сховище ключів ОС, коли воно доступне, і зашифрований файл у ~/.godwit/secrets як резервний варіант. Встановіть GODWIT_KEYRING_PASSWORD для неінтерактивного доступу до файлового бекенда. GODWIT_HOME перевизначає каталог застосунку ~/.godwit.