shell script to backup files and directories in Linux using tar & cron jobs
http://t4test.com/blog/unix-linux-shell-script-introduction-to-shell-scripting/
http://t4test.com/blog/read-making-shell-script-interactive/
http://t4test.com/blog/cpio-a-backup-program/
Backup Using TAR
Backing up your files using tar is very simple you just type a little command.
tar -cvpzf /BackupDirectory/backupfilename.tar.gz /ImportantData/directory/path
Let’s suppose i have directory called /imp-data on root and i want to make backup of this directory including sub directories on different location like in /mybackupfolder.
In above example my command will be.
tar -cvpzf /mybackupfolder/backup.tar.gz /imp-data
Now Create file using vi editor and paste below script.
vi /autobackup.sh
#!/bin/bash #AutoBackup of Important Data TIME=`date +"%b-%d-%y"` # This Command will add date in Backup File Name. FILENAME="backup-$TIME.tar.gz" # Here i define Backup file name format. SRCDIR="/imp-data" # Location of Important Data Directory (Source of backup). DESDIR="/mybackupfolder" # Destination of backup file. tar -cpzf $DESDIR/$FILENAME $SRCDIR
This Script will make backup of /imp-data directory and save it into a single compressed file on /mybackupfolder Directory.
Now i will show you how to schedule our backup process. In Linux we use cron jobs in order to schedule task.
For setting up cron jobs we use crontab -e command in shell, this command basically says we are going to edit our cron jobs file. If you run first time crontab -e command then it will ask you to default text editor, you just select your favorite editor after that it will never ask you again.
crontab -e
Format of Crontab. It has 6 Parts:
Minutes Hours Day of Month Month Day of Week Command
0 to 59 0 to 23 1 to 31 1 to 12 0 to 6 Shell Command
Let’s Suppose i want to run this backup process on every Mon and Sat at 1:pm.
In Above Condition my Crontab file should be like this.
crontab -e
# Minutes Hours Day of Month Month Day of Week Command 01 13 * * 1,6 /bin/bash /backup.sh
Now Done…..
To know more about the scheduled job in linux:
Linux Cron Job – Schedule Job in linux: crontab
PHP Cron Job: How to Execute PHP file Using Crontab in Linux
You can see your active cron with the terminal command:
crontab -l
Here are the parameters in order:
1) min (0 – 59)
2) hour (0 – 23)
3) day of month (1 – 31)
4) month (1 – 12)
5) day of week (0 – 6) (Sunday=0)
6) command