Instantly share code, notes, and snippets.

Embed
What would you like to do?
Automatic daily backup from production site to GitHub
# Shell script to automatically backup current branch to GitHub
# Tested on Webfaction server only.
git add .
git commit -m "Automatic daily backup via cronjob"
git push
# Instructions
# 1. SSH into the server
# 2.1 Create this file at root of the repo to backup: $ touch autobackup.sh
# 2.2 Add the commands shown in this file: $ vim autobackup.sh
# 3. Set permission to execute: $ chmod 777 autobackup.sh
# 4. Ensure the current (master) branch is set to track upstream: $ git push -u origin master
# 5.1 Test that the command runs manually: $ sh autobackup.sh
# 5.2 Check Github.com for the commit of the autobackup.sh file
# 6.1 Setup cronjob to run the file:
# $ crontab -e
# 6.2 Create or edit a new line replacing "app-name" accordingly
# 6.3 Example of nightly at 3am:
# 0 3 * * * cd ~/webapps/app-name/ && ./autobackup.sh > /dev/null
# NB: To receive emails from cron, set your email address at the top of the crontab
# MAILTO=name@example.com
# NB: " > /dev/null" Only errors are emailed.
# 6.4 Crontab schedule generator: https://crontab.guru/#0_3_*_*_*
# NB: To ensure pushes aren't rejected and to avoid conflicts,
# ensure you leave the repo on the correct branch and
# manually pull down changes pushed to the same branch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment