restic backup(1)

NAME

restic-backup - Create a new backup of files and/or directories

SYNOPSIS

restic backup [flags] [FILE/DIR] ...

DESCRIPTION

The "backup" command creates a new snapshot and saves the files and directories given as the arguments.

EXIT STATUS

Exit status is 0 if the command was successful. Exit status is 1 if there was a fatal error (no snapshot created). Exit status is 3 if some source data could not be read (incomplete snapshot created). Exit status is 10 if the repository does not exist. Exit status is 11 if the repository is already locked.

OPTIONS

-n, --dry-run[=false]
    do not upload or write any data, just show what would be done

-e, --exclude=[]
    exclude a pattern (can be specified multiple times)

--exclude-caches[=false]
    excludes cache directories that are marked with a CACHEDIR.TAG file. See https://bford.info/cachedir/ for the Cache Directory Tagging Standard

--exclude-file=[]
    read exclude patterns from a file (can be specified multiple times)

--exclude-if-present=[]
    takes filename[:header], exclude contents of directories containing filename (except filename itself) if header of that file is as provided (can be specified multiple times)

--exclude-larger-than=""
    max size of the files to be backed up (allowed suffixes: k/K, m/M, g/G, t/T)

--files-from=[]
    read the files to backup from file (can be combined with file args; can be specified multiple times)

--files-from-raw=[]
    read the files to backup from file (can be combined with file args; can be specified multiple times)

--files-from-verbatim=[]
    read the files to backup from file (can be combined with file args; can be specified multiple times)

-f, --force[=false]
    force re-reading the source files/directories (overrides the "parent" flag)

-g, --group-by=host,paths
    group snapshots by host, paths and/or tags, separated by comma (disable grouping with '')

-h, --help[=false]
    help for backup

-H, --host=""
    set the hostname for the snapshot manually (default: $RESTIC_HOST). To prevent an expensive rescan use the "parent" flag

--iexclude=[]
    same as --exclude pattern but ignores the casing of filenames

--iexclude-file=[]
    same as --exclude-file but ignores casing of filenames in patterns

--ignore-ctime[=false]
    ignore ctime changes when checking for modified files

--ignore-inode[=false]
    ignore inode number and ctime changes when checking for modified files

--no-scan[=false]
    do not run scanner to estimate size of backup

-x, --one-file-system[=false]
    exclude other file systems, don't cross filesystem boundaries and subvolumes

--parent=""
    use this parent snapshot (default: latest snapshot in the group determined by --group-by and not newer than the timestamp determined by --time)

--read-concurrency=0
    read n files concurrently (default: $RESTIC_READ_CONCURRENCY or 2)

--skip-if-unchanged[=false]
    skip snapshot creation if identical to parent snapshot

--stdin[=false]
    read backup from stdin

--stdin-filename="stdin"
    filename to use when reading from stdin

--stdin-from-command[=false]
    interpret arguments as command to execute and store its stdout

--tag=[]
    add tags for the new snapshot in the format tag[,tag,...] (can be specified multiple times)

--time=""
    time of the backup (ex. '2012-11-01 22:08:41') (default: now)

--with-atime[=false]
    store the atime for all files and directories

OPTIONS INHERITED FROM PARENT COMMANDS

--cacert=[]
    file to load root certificates from (default: use system certificates or $RESTIC_CACERT)

--cache-dir=""
    set the cache directory. (default: use system default cache directory)

--cleanup-cache[=false]
    auto remove old cache directories

--compression=auto
    compression mode (only available for repository format version 2), one of (auto|off|max) (default: $RESTIC_COMPRESSION)

--http-user-agent=""
    set a http user agent for outgoing http requests

--insecure-no-password[=false]
    use an empty password for the repository, must be passed to every restic command (insecure)

--insecure-tls[=false]
    skip TLS certificate verification when connecting to the repository (insecure)

--json[=false]
    set output mode to JSON for commands that support it

--key-hint=""
    key ID of key to try decrypting first (default: $RESTIC_KEY_HINT)

--limit-download=0
    limits downloads to a maximum rate in KiB/s. (default: unlimited)

--limit-upload=0
    limits uploads to a maximum rate in KiB/s. (default: unlimited)

--no-cache[=false]
    do not use a local cache

--no-extra-verify[=false]
    skip additional verification of data before upload (see documentation)

--no-lock[=false]
    do not lock the repository, this allows some operations on read-only repositories

-o, --option=[]
    set extended option (key=value, can be specified multiple times)

--pack-size=0
    set target pack size in MiB, created pack files may be larger (default: $RESTIC_PACK_SIZE)

--password-command=""
    shell command to obtain the repository password from (default: $RESTIC_PASSWORD_COMMAND)

-p, --password-file=""
    file to read the repository password from (default: $RESTIC_PASSWORD_FILE)

-q, --quiet[=false]
    do not output comprehensive progress report

-r, --repo=""
    repository to backup to or restore from (default: $RESTIC_REPOSITORY)

--repository-file=""
    file to read the repository location from (default: $RESTIC_REPOSITORY_FILE)

--retry-lock=0s
    retry to lock the repository if it is already locked, takes a value like 5m or 2h (default: no retries)

--tls-client-cert=""
    path to a file containing PEM encoded TLS client certificate and private key (default: $RESTIC_TLS_CLIENT_CERT)

-v, --verbose[=0]
    be verbose (specify multiple times or a level using --verbose=n``, max level/times is 2)

SEE ALSO

restic(1)