Skip to content

Restic json output and jq

wordpress meta

title: 'Restic json output and jq'
date: '2019-06-30T11:56:32-05:00'
status: publish
permalink: /restic-json-output-and-jq
author: admin
excerpt: ''
type: post
id: 1365
category:
    - json
    - restic
tag: []
post_format: []

Restic has the ability to show output in json. Here is how I used it for some CSV type reporting I needed on backup jobs.

Example json output.

``` # restic -r rclone:s3_phx:/restic-backup backup /root --json | jq -r 'select(.message_type=="summary")' { "message_type": "summary", "files_new": 0, "files_changed": 0, "files_unmodified": 761, "dirs_new": 0, "dirs_changed": 0, "dirs_unmodified": 0, "data_blobs": 0, "tree_blobs": 0, "data_added": 0, "total_files_processed": 761, "total_bytes_processed": 251861194, "total_duration": 1.118076434, "snapshot_id": "09d1a6b9" }
</div>With @csv filter.

<div class="wp-block-syntaxhighlighter-code ">```

# restic -r rclone:s3_phx:/restic-backup backup /root --json | jq -r 'select(.message_type=="summary") | [.files_new,.files_changed,.files_unmodified,.dirs_new,.dirs_changed,.dirs_unmodified,.data_blobs,.tree_blobs,.data_added,.total_files_processed,.total_bytes_processed,.total_duration,.snapshot_id] | @csv'
0,0,764,0,0,0,0,0,0,764,251918381,1.037043765,"3a55b3b3"

I needed double quotes and could not figure out how to tell @csv filter to quote so below workaround for now. This was then usable in my bash script.

``` # restic -r rclone:s3_phx:/restic-backup backup /root --json | jq -r 'select(.message_type=="summary") | "\"\(.files_new)\",\"\(.files_changed)\",\"\(.files_unmodified)\",\"\(.dirs_new)\",\"\(.dirs_changed)\",\"\(.dirs_unmodified)\",\"\(.data_blobs)\",\"\(.tree_blobs)\",\"\(.data_added)\",\"\(.total_files_processed)\",\"\(.total_bytes_processed)\",\"\(.total_duration)\",\"\(.snapshot_id)\""' "0","3","761","0","0","0","3","1","2901845","764","251920790","2.035211002","fb9d780b" ````