Skip to content

Instantly share code, notes, and snippets.

@Lmanangka
Created May 7, 2022 19:22
Show Gist options
  • Save Lmanangka/ec13af8ab50128cc0bf169f5470ae9b1 to your computer and use it in GitHub Desktop.
Save Lmanangka/ec13af8ab50128cc0bf169f5470ae9b1 to your computer and use it in GitHub Desktop.
automated backup for important file
#!/bin/sh
STORAGE="YOUR BACKUP STORAGE PARTITION (check with 'lsblk')"
TARGET_DIR="YOUR MOUNT DIRECTORY (usually in /media/YOUR_DIR)"
BACKUP_DIR="$(date)-Backup"
#create directory and mounting device
create_mount(){
[ ! -b $STORAGE ] && echo "$STORAGE does not exist." && exit || \
[ -b $STORAGE ] && [ ! -d $TARGET_DIR ] && \
sudo mkdir -pv $TARGET_DIR || [ -d $TARGET_DIR ] && \
sudo mount -v $STORAGE $TARGET_DIR
}
#Backup function
backup(){
mkdir -pv $TARGET_DIR/"$BACKUP_DIR" && \
mkdir -pv $TARGET_DIR/"$BACKUP_DIR"/pdf && \
mkdir -pv $TARGET_DIR/"$BACKUP_DIR"/odt && \
mkdir -pv $TARGET_DIR/"$BACKUP_DIR"/images && \
find $HOME/Documents/ -type f -name "*.pdf" -exec cp -rfv {} \
$TARGET_DIR/"$BACKUP_DIR"/pdf \; && \
find $HOME/Documents/ -type f -name "*.odt" -exec cp -rfv {} \
$TARGET_DIR/"$BACKUP_DIR"/odt \; && \
find $HOME/Documents/ -type f -name "*.jpg" -exec cp -rfv {} \
$TARGET_DIR/"$BACKUP_DIR"/images \; && \
find $HOME/Documents/ -type f -name "*.png" -exec cp -rfv {} \
$TARGET_DIR/"$BACKUP_DIR"/images \;
cp -rfv $HOME/Documents/KiCad/ $HOME/Documents/Python/ \
$HOME/Documents/C++/ $HOME/Documents/C/ \
$HOME/Documents/Archive/GIMP/ $HOME/Documents/bash\ script/ \
$HOME/Pictures/ $TARGET_DIR/"$BACKUP_DIR" && \
tar -C $TARGET_DIR --force-local -czvf \
$TARGET_DIR/"$BACKUP_DIR".tar.gz "$BACKUP_DIR" || echo "Failed."
}
#Run the script
create_mount && echo "Backup start." && backup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment