All posts
featureschedulerautomationoperations

Set It and Forget It: NetDefense Now Has a Recurring-Task Scheduler

NetDefense Team

Managing a fleet of firewalls is mostly routine — the same backups at the same time every night, the same config sync every Monday morning, a reboot window on the first Sunday of the month. Until now, NetDefense could defer a command with --at, but you had to remember to re-schedule it every time. Today that changes.

Recurring-task scheduling is now live across NDWeb and NDCLI. Every command you already use — run, sync apply, and backup config set — can be attached to a named schedule so the work happens automatically, on your cadence, without you needing to remember.

Schedules are named cadences you reuse

A schedule is a name, a cron expression, and a timezone. That’s the whole concept. You create one, then attach it to as many operations as you like.

$ ndcli schedule create \
  —name nightly-maintenance \
  —cron “0 3 * * *” \
  —timezone America/New_York

That’s “3 AM Eastern every night”. Now you can wire it to a backup:

$ ndcli backup config set —schedule nightly-maintenance

Or to a weekly sync of your branch-office firewalls:

$ ndcli sync apply —ou branch-offices —schedule nightly-maintenance

Or to a Monday-morning reboot across the staging OU:

$ ndcli schedule create \
  —name monday-reboot \
  —cron “0 4 * * 1” \
  —timezone America/Chicago
$ ndcli run restart —ou staging —schedule monday-reboot

One scheduler for everything. No separate backup daemon, no cron on a jump host, no calendar reminder.

The same interface in the web console

Everything you can do from NDCLI, you can do from NDWeb. The new Schedules page lets you create, rename, enable, disable, and delete schedules. The Sync page, the Run page, and the Backup page all have a schedule picker in their forms — select a schedule and the operation recurs automatically.

Sync gets a filter preview

While we were here, we also improved the Sync page’s targeting. You can now build a filter — by device name, OU, template, or drift status — and preview the matching devices before committing. You’ll see exactly which firewalls will receive the sync, whether you’re running it immediately or attaching it to a schedule. No more running a filtered sync and wondering which devices actually got the push.

Manage recurring tasks org-wide

Once a recurring sync or run is live, you need a way to see and control it. Scheduled Specs on the Tasks page show every active recurring task across your organization — what it does, which schedule drives it, whether it’s enabled or paused. You can enable, disable, or remove any of them without touching the underlying schedule.

# See everything running on a recurring basis
$ ndcli schedule tasks list
# Pause one without deleting the schedule itself
$ ndcli schedule tasks disable <code>

Backup scheduling moves here

Previously, ndcli backup config set --schedule accepted a raw cron expression inline. That still works for backward compatibility, but the preferred approach is now a named schedule — which gives you a single place to update the timing across everything that uses it. When you look at a backup config and see Schedule: nightly-maintenance instead of 0 2 * * *, the intent is immediately clear, and changing the time is one edit in one place.

Getting started

Create your first schedule and attach it to something today:

$ ndcli schedule create —name nightly —cron “0 2 * * *” —timezone UTC
$ ndcli backup config set —schedule nightly

Then verify it’s registered:

$ ndcli schedule list
$ ndcli schedule tasks list

Full reference: Schedules and Scheduled Tasks in the documentation.

Join the discussion in our Community

Enjoyed this post? Explore more in the documentation.