projects

Python automated backup solution

Automated Backup Solution: File and Folder Backup with Email and FTP Upload

This Python project provides an automated backup solution for files and folders, performing several operations to ensure secure data backups and easy accessibility.

Project Motivation: Our daily operations rely heavily on databases that are critical to our work, such as Excel files that contain important and sensitive information. However, Excel files are known to have certain vulnerabilities, posing a risk of data loss or corruption. Therefore, I needed a straightforward and reliable method to back up essential files and directories containing databases without relying on third-party software. This Python project creates backups, archives them, and sends the compressed backup files to an email address and uploads them to an FTP server. This ensures a secure backup of our files, providing us with a complete archive in case the original files become damaged or lost.

Features

  • Backup specified files and folders from a defined directory
  • Move backup files to an archive directory
  • Compress all backup files into a single RAR file
  • Send the RAR file to a designated email address
  • Upload the RAR file to a specified FTP server
  • Use the Jalali (Solar Hijri) calendar to name backup folders and RAR files
  • Optional configuration to use the Gregorian calendar for date naming

Download and Instructions
To download the project and view instructions on configuration and execution, please visit the GitHub repository linked below.

Planned Features for Future Updates

The following features are scheduled for upcoming updates:

  • Send backup notifications via a Telegram bot
  • Password-protect RAR files
  • Upload backups to cloud storage services (Google Drive, Mega, Dropbox, etc.)
  • Rewrite code for improved performance and maintainability

Additional Notes:

  • If you wish to run the code periodically, such as on Windows login or every hour, you can configure this using Windows Task Scheduler or Cron jobs in Linux.
  • To use Gmail as the sending email address, you must enable the Gmail app password feature (search for “using Gmail app password”).
Show More

Ehsan Heydari

I began my career in web and software development in 2011. Previously, I worked as an Android application developer using Java, and I am now proficient in PHP, JavaScript, and Python, with my main focus currently on developing web applications. Additionally, I have a strong interest in capital markets, blockchain, and the decentralized world of Web3, which has shaped my future roadmap.
دکمه بازگشت به بالا