When you have multiple servers it pain to remember every configuration and it may take hours to configure servers again incase you need.
It is also impractical to copy each files.
There are few tools available but they come with overhead attached moreover its fun to write custom solutions 🙂
1. Create directory
2. cd into it.
3. Initialize git
4. Add a remote
5. Create branch specifically for that server
6. Check out branch
7. Add shell script
8. Make a commit and push to server.
mkdir backup cd backup/ git init git remote add [email protected]:tikaj/ConfigurationBackups.git git branch $(hostname) git checkout $(hostname) #This file contains space delimited configuration file name and path relative to git. touch ConfigurationFiles.list vi backup.sh
Content of backup.sh
#!/bin/bash BASEDIR=$(dirname $0) cd $BASEDIR while read line; do IFS=' ' read -a A <<< "$line" cp ${A[0]} $BASEDIR/${A[1]} done < ConfigurationFiles.list #Add new files and commit changes git add --all :/ git commit -m "Update configuration files." git push origin $(hostname)
Then, Don't forget to generate SSH key adding key to your git server.
git push -u origin $(hostname)
Now i can either setup a cron job or add command to daily backup script to update configuration files.
using
ssh [email protected] "bash /root/backup/backup.sh"
from remote.
Recent Comments