---
name: "nspatch"
section: "1p"
platform: "linux"
package: "nsdiff"
version: "1.85-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/nspatch"
---

# nspatch(1p)

run \`nsdiff \| nsupdate\` with error handling

## NAME

nspatch - run \`nsdiff \| nsupdate\` with error handling

## SYNOPSIS

nspatch \[**-hVv**\] \[**-r** *count*\]\
         \-- \[nsdiff options\] -- \[nsupdate options\]

## DESCRIPTION

The **nspatch** utility runs \``"nsdiff | nsupdate"`\` and checks that both programs complete successfully. It suppresses their output unless there is an error, in a manner suitable for running from **cron**.

The **nsupdate** script produced by **nsdiff** includes a prerequisite check to detect and fail if there is a concurrent update. These failures are detected by **nspatch** which retries the update.

Rather than using a pipe, **nspatch** uses temporary files to store the output of **nsdiff** and **nsupdate**.

## OPTIONS

- **-h**

  Display this documentation.

- **-V**

  Display version information.

- **-r** *count*

  If the update fails because of a concurrent update, **nspatch** will retry up to *count* times. The default retry *count* is 2.

- **-v**

  Turn on verbose mode, so the output from **nsdiff** and **nsupdate** is printed even if they are successful. (By default it is suppressed.)

  The verbose option is passed on to **nsdiff**. If **nspatch** is not given the **-v** option, it passes the **-v ''** option to **nsdiff**. If **nspatch** is given the **-v** option, it passes the **-v 'qr'** option to **nsdiff**.

## EXIT STATUS

The **nspatch** utility returns 0 if no change is required or if the update is successful, or 1 if there is an error.

## ENVIRONMENT

- "TMPDIR"

  Location for temporary files.

## VERSION

```
  This is nspatch-1.85 <https://dotat.at/prog/nsdiff/>
  Written by Tony Finch <fanf2@cam.ac.uk> <dot@dotat.at>
  at Cambridge University Information Services.
  You may do anything with this. It has no warranty.
```

## SEE ALSO

**nsdiff**(1), [**nsupdate**(1)](/nsupdate/1.md), [**cron**(8)](/cron/8.md)
