---
name: "backupninja"
section: "1"
platform: "linux"
package: "backupninja"
version: "1.2.2-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/backupninja"
---

# backupninja(1)

A lightweight, extensible meta-backup system "a silent flower blossom death strike to lost data."

## NAME

BACKUPNINJA - A lightweight, extensible meta-backup system\
 *"a silent flower blossom death strike to lost data."*

## SYNOPSIS

**backupninja \[ -h \] \[ -v \] \[ -d \] \[ -n \] \[ -t \] \[ -f filename \] \[ --run filename \]**\

## DESCRIPTION

**Backupninja** allows you to coordinate system backups by dropping a few simple configuration files into /etc/backup.d/. Most programs you might use for making backups don't have their own configuration file format. Backupninja provides a centralized way to configure and coordinate many different backup utilities.

## FEATURES

- \-

  easy to read ini style configuration files.

- \-

  you can drop in scripts to handle new types of backups.

- \-

  backup actions can be scheduled.

- \-

  you can choose when status report emails are mailed to you (always, on warning, on error, never).

- \-

  console-based wizard (ninjahelper) makes it easy to create backup action configuration files.

- \-

  passwords are never sent via the command line to helper programs.

- \-

  in order to backup a db or sql database, you cannot simply copy database files. backupninja helps you safely export the data to a format which you can backup.

  **Backup types include:**

- \-

  secure, remote, incremental filesystem backup (via rdiff-backup). incremental data is compressed. permissions are retained even with an unpriviledged backup user.

- \-

  basic system and hardware information.

- \-

  encrypted remote backups (via duplicity).

- \-

  safe backup of MySQL, PostgreSQL, OpenLDAP, and subversion databases.

- \-

  burn CD/DVDs or create ISOs.

## OPTIONS

- **-h, --help**

  Show summary of options

- **-V, --version**

  Show backupninja version number

- **-d, --debug**

  Run in debug mode, where all log messages are output to the current shell.

- **-f, --conffile CONF\_FILE**

  Use CONF\_FILE for the main configuration instead of /etc/backupninja.conf

- **-t, --test**

  Run in test mode, no actions are actually taken.

- **-n, --now**

  Perform actions now, instead of when they might be scheduled.

- **--run ACTION\_FILE**

  Runs the action configuration ACTION\_FILE and exits.

## CONFIGURATION

General settings are configured in /etc/backupninja.conf. In this file you can set the log level and change the default directory locations. See **[backupninja.conf(5)](/backupninja.conf/5.md)**.

To preform the actual backup actions, backupninja processes each action configuration file in /etc/backup.d according to the file's suffix. See **[backup.d(5)](/backup.d/5.md)**.

## EXAMPLE USAGE

- Backupninja can be used to implement whatever backup strategy you choose. It is intended, however, to be used like so:

  - First, databases are safely copied or exported to /var/backups. Often, you cannot make a file backup of a database while it is in use, hence the need to use special tools to make a safe copy or export into /var/backups.

  - Then, vital parts of the file system, including /var/backups, are nightly pushed to a remote, off-site, hard disk (using rdiff-backup). The local user is root, but the remote user is not privileged. Hopefully, the remote filesystem is encrypted.

  - In order for this to work (ie for diff-backup to run unattended), you must create ssh keys on the source server and copy the public key to the remote user's authorized keys file. For example:

  root@srchost# ssh-keygen -t rsa -b 4096\
   root@srchost# ssh-copy-id -i /root/.ssh/id\_dsa.pub backup@desthost

- Now, you should be able to ssh from user 'root' on srchost to user 'backup' on desthost without specifying a password. When prompted for a password by ssh-keygen, just leave it blank by hitting return. The "wizard" **[ninjahelper(1)](/ninjahelper/1.md)** will walk you through these steps.

  ## EXIT VALUES

**0**        success\
 **1**        errors or warnings emitted during backup\
 **2**        one or more backup actions failed\
 **3**        syntax or usage error\

## FILES

**/usr/sbin/backupninja**        main script\
 **/etc/backupninja.conf**        main configuration file; general options\
 **/etc/cron.d/backupninja**      runs main script hourly\
 **/etc/logrotate.d/backupninja** rotates backupninja.log\
 **/etc/backup.d**                directory for configuration files\
 **/usr/share/backupninja**       directory for handler scripts\
 **/usr/share/doc/backupninja/examples**       example action configuration files.\

## SEE ALSO

[**ninjahelper**(1)](/ninjahelper/1.md), [**backupninja.conf**(5)](/backupninja.conf/5.md), [**backup.d**(5)](/backup.d/5.md),\

## AUTHOR

BACKUPNINJA was written by the riseup.net collective.
