This script allows you to create a local or remote backup rotation for your files.

Usage no npm install needed!

<script type="module">
  import backupRotation from '';


Project status

npm version downloads build status dependencies development dependencies peer dependencies documentation website

Use case

This module provides backup rotation logic for arbitrary files.


  • Daily, weekly and monthly backups as cronjob
  • Local and remote backups supported
  • Compressed backups (tar and gz is used).
  • Backup file structure is completely adaptable.
  • Configure an email address to get notified if your backup source isn't available.
  • Works incrementally (can complete interrupted backups after reboot e.g., uses rsync)
  • Completely configurable how long you plan to preserve your backup files
  • Optionally use your own synchronisation, compression and/or cleanup tool


Run this script daily to generate your configured backup file structure.


or after installation:


Installation with yay from the arch user repository

yay --sync backupRotation

Manual installation on any posix compatible operating system

Copy the script file "" to "/usr/bin/backup-rotation" and the provided timer and service files ("backupRotation.service" and "backupRotation.timer") to "/etc/systemd/system/backup-rotation.service" and "/etc/systemd/system/backup-rotation.timer" and enable services:

Enable service under systemd

systemctl enable backup-rotation.timer

to enable the backup logic. After running:

systemctl start backup-rotation.timer

you can see the worker running in your system logs and observe generated backup files.


Simply create a text file under "/etc/backupRotation" and insert bash code which sets all options you want to overwrite.