As a server administrator you should take regular backups of your website and databases. I have write a shell script to take backup of our server website, it was reduce the administrator work and keep your website backup.
In this example i have backup all our website content with zip format and stored to backup location and keep 10 days backup.
1) Backup shell script
I have created the file called “shell-script-web-site-backup.sh” on bin directory and put the below code and the file permission should be 755 so that you can execute the file.
The below shell script take all website backup into separate files.
#!/bin/bash DATE=$(date +%d-%m-%Y) BACKUP_DIR="/root/backup/web-backup" # To create a new directory into backup directory location. mkdir -p $BACKUP_DIR/$DATE # take each website backup in separate name, use below format. tar -zcvpf $BACKUP_DIR/2daygeek-$DATE.tar.gz /home/2daygeek tar -zcvpf $BACKUP_DIR/mageshm-$DATE.tar.gz /home/mageshm tar -zcvpf $BACKUP_DIR/dialariyalur-$DATE.tar.gz /home/dialariyalur tar -zcvpf $BACKUP_DIR/ariyalurlive-$DATE.tar.gz /home/ariyalurlive # Delete files older than 10 days find $BACKUP_DIR/* -mtime +10 -exec rm {} \;
2) Cron job for scheduling backup
To schedule the job at your convenient time, use cron.I have set the cron every day 7′o clock to take backups of databases
0 19 * * * /bin/shell-script-web-site-backup.sh
3) Website backup is under processing
Just run the file, it will be backup one by one website contents and stored to specified location, here you can see 2daygeek and mageshm website is currently compressed.
# shell-script-web-site-backup.sh /home/2daygeek/ /home/2daygeek/etc/ /home/2daygeek/.bashrc /home/2daygeekc/public_html/ /home/2daygeekc/public_html/whoweAre.php /home/2daygeekc/public_html/solutions_ibm.php /home/2daygeekc/public_html/.htaccess . . . /home/mageshm/ /home/mageshm/etc/ /home/mageshm/.bashrc /home/mageshm/public_html/ /home/mageshm/public_html/.htaccess /home/mageshm/public_html/pl_waste/ /home/mageshm/public_html/pl_waste/img/
4) Website backup stored successfully to mentioned location
The above shell script created the new directory called “03-12-2013” and stored the website contents backups. Here you can see the four websites was backuped.
# ll -h total 44M drwxr-xr-x 2 root root 4.0K Dec 3 07:23 ./ drwxr-xr-x 3 root root 4.0K Dec 3 07:23 ../ -rw-r--r-- 1 root root 23M Dec 3 07:23 2daygeek.tar.gz -rw-r--r-- 1 root root 617K Dec 3 07:23 ariyalurlive.tar.gz -rw-r--r-- 1 root root 8.2M Dec 3 07:23 dialariyalur.tar.gz -rw-r--r-- 1 root root 12M Dec 3 07:23 mageshm.tar.gz
Excuse me, when I type “mkdir -p $BACKUP_DIR/$DATE” after that display “can’t create directory ‘/root’:permission denied”. How can I do?
It looks like you are running the script with a non-root user. Run the script with the root user.