/Aptigrate

"Aptigrate" is a bash script that backs up all apt packages on your system. Saves list of installed packages in a backup file for easy restore during reinstallation or upgrade. Efficient solution to keep your system updated while preserving installed packages.

Primary LanguageShellGNU General Public License v3.0GPL-3.0

Aptigrate

"Aptigrate" is a bash script designed to help you take a backup of all the apt packages installed on your system. With this script, you can ensure that all your essential packages are saved and can be easily restored in case of a system reinstallation or upgrade. The script uses the apt command line tool to gather the list of installed packages and save it in a text file, which can then be used to restore the packages at a later time. Aptigrate is a simple and efficient solution to keep your system up to date while also preserving your installed packages.

GitHub issues GitHub forks GitHub stars GitHub license Open Source Love svg1 PRs Welcome contributions welcome GitHub contributors

Features

  • Backup your apt packages
  • Periodic backup of all your packages
  • Easy Restore ( Under developmenent )

Installation

Clone the git repository

  git clone https://github.com/RyanWalker277/Aptigrate.git
  cd Aptigrate

make the Installation script executable

  chmod +x install.sh

Now run script with

  ./install.sh

Usage

Use Aptigrate in the following way

  aptigrate -o /path/to/output/directory

If the script isnt provided with an output directory, it will create a backup.ap file in the default directory i.e /var/log/aptigrate

Scheduling backups

You can schedule a regular backup by passing the cron expression to aptigrate ( Under Developement )

  aptigrate -o /path/to/output/directory -c "cron_expression"

Aptigrate will create a cronjob for the backup according to the cron expression provided by you.

Make sure to add the cron expression in a correct manner, otherwise the backup won't be scheduled correctly

Example: ***** would result in an incorrect statement in crontab. It should be passed as * * * * *. The spaces ensure right format of the generated cron expression

Setting up the dev environment

Clone the git repository

  git clone https://github.com/RyanWalker277/Aptigrate.git
  cd Aptigrate

Make the dev script executable by

  chmod +x install.dev.sh

Now the changes you make to the aptigrate script will be directly accessible on running the aptigrate command.

Contributing

Contributions are always welcome!

See contributing.md for ways to get started.

Contributors

RyanWalker277
Anvansh
hindu-muppala
Hindu Muppala

Support++

This project needs your shiny star ⭐.
Don't forget to leave a star ⭐️

forthebadge made-with-python forthebadge

Made with ❤ by Anvansh (@RyanWalker277)