Backing up files to an external drive using Python
Several months ago, I wanted to start regularly backing up the important files on my laptop. I set up cloud-based syncing of my files, including version history, but I felt like I needed to have a redundant physical backup that I occasionally would update. I had an external drive, so I looked into some programs that would automatically copy or update my files. None of them seemed to work well, they took a long time to run, I couldn’t easily view the backup files, or they kept pushing me to upgrade to a premium service for more features. So, instead I wrote my own (link to the code).
# File: autobackup.py
import dirsync
import os
src = "Path_To_Folder_Being_Backedup"
dest = "Path_To_External_Drive"
if os.path.exists(dest):
dirsync.sync(src, dest, 'sync', purge=True)
else:
print("Backup storage not found. Exiting...")
The code is simple. It uses the sync
function from the dirsync package to sync files from the src
folder on your computer to the dest
folder on your external drive.
The third argument 'sync'
in the function ensures that all the files in src
are updated or copied over if they are not already in dest
.
The purge
option deletes files in dest
that have been deleted in src
.
So, after the script is run, dest
should be an exact copy of src
.
To easily run the script, I created a batch script since I am on Windows, and saved it to my desktop for easy access anytime I plug in my external drive (for how to run Python scripts, check out Automate the Boring Stuff with Python Appendix B).
@py "C:\Users\path_to_file\autobackup.py" %*
@pause
The initial copy of the files took a long time, but after that it only updates the ones that have been added, deleted, or modified, so it usually runs pretty quickly!