Git Product home page Git Product logo

raspibackup's Introduction

raspiBackup - Backup and restore your running Raspberries

  • Unattended full or incremental system backup with no shutdown of the system.
  • No manual intervention required by using cron.
  • Number of backup versions to keep configurable.
  • Smart recycle backup strategy available (e.g. save backups of last 7 days, last 4 weeks, last 12 months and last n years) - also known as grandfather, father and son backup rotation principle.
  • Restore any of the created backup versions.
  • Menu driven installer installs and configures raspiBackup with all major options to get raspiBackup up and running in 5 minutes. Much more configuration options can be configured in a configuration file.
  • Important services can be stopped before starting the backup and will be restarted when the backup finished.
  • Any device mountable on Linux can be used as backup space (local USB disk, remote nfs drive, remote samba share, remote ssh server using sshfs, remote ftp server using curlftpfs, webdav drive using davfs, ...).
  • Standard Linux backup tools dd, tar and rsync can be used to create the backup.
  • dd and tar are full backups. rsync uses hardlinks for incremental backups.
  • Restore a SD card image backup to SSD or USB disk and migrate to use USB boot mode.
  • Backup run results may be send via eMail or to Telegram.
  • Extensionpoints allow to execute any additional logic at various steps in the backup process.
  • National language support:
    • English (Default)
    • German
    • Finnish
    • Chinese
    • French
  • Extensive logging.
  • Automated regressiontests.
  • Much more features (see below).

Note

raspiBackup is supported only for RaspberryOS as operating system and Raspberry hardware. raspiBackup runs also successfully on other Linux distros but any support request on these unsupported environments will be rejected. Just try it and be happy if it works but don't ask for any support.

Documentation

English

German

French

This README was translated into French. Credits to mgrafr for his translation work.

Installer

The installer uses menus, checklists and radiolists similar to raspi-config and helps to install and configure major options of raspiBackup and in 5 minutes the first backup can be created.

Screenshot1 Screenshot2 Screenshot3

Installer demo

Demo

Installation of raspiBackup will started with following command:

curl -s https://raw.githubusercontent.com/framps/raspiBackup/master/installation/install.sh | sudo bash

Donations

raspiBackup is maintained just by me - framp. If you find raspiBackup useful please donate to support future development and acknowledge support. For details how to donate see here

Feature requests

Anybody is welcome to create feature requests in github. They are either immediately scheduled for the next release or moved into the backog. The backlog will be reviewed every time a new release is planned and some issues are picked up and will be implemented in the next release. If you find some features useful just add a comment to the issue with ๐Ÿ‘. This helps to prioritize the issues in the backlog.

Much more detailed documentation

Social media

  • Youtube - Videos in English and German
  • Twitter - News and announcements - English only
  • Facebook - News, discussions, announcements and misc background information in English and German

Miscellaneous sample scripts (Code)

  • Sample wrapper scripts to add any activities before and after backup (Code)

  • Sample wrapper script which checks whether a nfsserver is online, mounts one exported directory and invokes raspiBackup. If the nfsserver is not online no backup is started. (Code)

  • Sample script which restores an existing tar or rsync backup created by raspiBackup into an image file and then shrinks the image with pishrink. Result is the smallest possible dd image backup. When this image is restored via dd or windisk32imager it's expanding the root partition to the maximum possible size. (Code)

Sample extensions

There exist sample extesions for raspiBackup which report for example memory usage, CPU temperature, disk usage and more. There exist also user provided extensions.

Systemd

Instead of cron systemd can be used to start raspiBackup. See here (thx Hofei) for details.

REST API Server proof of concept

Allows to start raspiBackup from a remote system or any web UI.

  1. Download executable from RESTAPI directory
  2. Create a file /usr/local/etc/raspiBackup.auth and define access credentials for the API. For every user create a line userid:password
  3. Set file attributes for /usr/local/etc/raspiBackup.auth to 600
  4. Start the RESTAPI with sudo raspiBackupRESTAPIListener. Option -a can be used to define another listening port than :8080.
  5. Use curl -u userid:password -H "Content-Type: application/json" -X POST -d '{"target":"/backup","type":"tar", "keep": 3}' http://<raspiHost>:8080/v0.1/backup to kick off a backup.

raspibackup's People

Contributors

framps avatar franjo-g avatar docyester avatar googlebeevil avatar hofei90 avatar mgrafr avatar kmbach avatar desertrider avatar vsc55 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.