Linode Backup Pricing Questions

I'm hosting a few websites on my Linode, and I want to make sure that my data is safe. Can you explain to me how your backups service works and how much it costs? How long do you keep my backups for, and are they saved on the same host as my Linode?

2 Replies

Hey there -

These are great questions and I'm happy to answer them for you.

Can you explain to me how your backups service works and how much it costs?

I'll start with the pricing. This depends on the size of your Linode. You can view the pricing on the page linked below - use the slider bar to switch between plans:

Linode Backups - Pricing

Like most of our services, the Backups are billed hourly, and the hourly rate and monthly cap are listed together on that page.

How it works is that you get four Backup slots - three automatic and one manual. The automatics are rotated out regularly so there's always a fresh Backup in that slot. The manual slot is for you to save an automatic snapshot, which is only overwritten when you take another one. Here are the specifics about each of these slots, taken directly from our Backups guide:

  • Daily backup: Automatically initiated daily within the backup window you select. Less than 24 hours old.
  • Current week’s backup: Automatically initiated weekly within the backup window, on the day you select. Less than 7 days old.
  • Last week’s backup: Automatically initiated weekly within the backup window, on the day you select. Between 8 and 14 days old.
  • Manual Snapshot: A user-initiated snapshot that stays the same until another snapshot is initiated.

How long do you keep my backups for, and are they saved on the same host as my Linode?

Your daily and weekly Backups are overwritten when a new Backup is saved in that slot. We do not keep automated Backups longer than 14 days.

Your Manual Snapshot, on the other hand, will stay in that slot as long as you want it to. It's only overwritten when you save another snapshot into that slot.

Your Backups are not saved on the same host as your Linode.

For more information on backing up your data, check out this additional documentation:

Introduction to Backups

Backing Up Your Data

I have a script that uses the Linode API to automate manual snapshots. I do them weekly on Sunday nights. Herewith is the text:

#!/bin/bash
#

ME=$(basename $0)

# Report Linode error
#
function linodeerror()
{
    local e

    e=$(echo "$2" | $JQ '.errors')
    if [ "$e" != "null" ]
    then
        echo $ME: Error on "'$1':" 1>&2
        rsn=$(echo "$e" | $JQ '.[].reason' | sed -e 's/\"//g')
        fld=$(echo "$e" | $JQ '.[].field' | sed -e 's/\"//g')
        echo "           Reason: ${rsn}." 1>&2
        [ "$fld" == "null" ] || echo "           Field(s): "$fld 1>&2
        exit 1
    fi
}

# Indent lines
#
function indent() 
{
  local indentSize=2
  local indent=1
  if [ -n "$1" ]; then indent=$1; fi
  pr -to $(($indent * $indentSize))
}

# Report JSON query error
#
function jqerror()
{
    echo $ME: JQ Error: 1>&2
    echo "$(cat $1 | indent 3)"
    echo "           Input: ${2}." 1>&2
    echo "           Query: ${3}." 1>&2
    rm -f $1
    exit 1
}

LABEL="mydomain.com"
DIR=$HOME/tmp

TOKEN=<redacted>

CURL=/usr/bin/curl
JQ=/usr/bin/jq

# Ask linode for all my linode instances
#
req="https://api.linode.com/v4/linode/instances"
resp=$($CURL -s -H "Authorization: Bearer $TOKEN" $req)
linodeerror "$req" "$resp"

# Find the instance I'm looking for
#
out=$(mktemp -p "$DIR" "XXXXXXX")
qry=".data[] | select(.label == \"$LABEL\").id"
instid=$(echo "$resp" | $JQ "$qry" 2>>$out)
[ $? == 0 ] || jqerror "$out" "$resp" "$qry" && rm -f $out

# Start a snapshot
#
req="https://api.linode.com/v4/linode/instances/$instid/backups"
resp=$($CURL -s -H "Content-Type: application/json" \
                -H "Authorization: Bearer $TOKEN" \
                -X POST -d "{ \"label\": \"$LABEL snapshot\" }" \
                $req)
linodeerror "$req" "$resp"

exit 0

jq (/usr/bin/jq) is a utility like sed(1) for querying/modifying JSON text. It's an installable package on most distros. More info here:

https://www.baeldung.com/linux/jq-command-json

It's quite handy…

-- sw

P.S. This would have to be modified to handle more than one Linode at a time. It also makes an assumption that the Linode "label" and the domain name are the same.

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct