Backup is the basis for disaster recovery, it refers to operational errors or system failures occur in order to prevent loss of data systems, and all or part of the data set is copied from the application host's hard disk or other storage arrays to process media. For some sites, systems, databases is everything, so make a backup of the database is essential!
Disaster recovery program construction
DAS: Direct Attached Storage
NAS: Network-attached storage
SAN: Storage Area Network
Here mainly to local disk as a storage medium to use to talk about to add scheduled tasks, basic backup script, and other storage media access method is the media may not be the same.
1. Check disk space:
Since it is a regular backup, we must choose a space sufficient disk space to avoid backup failure due to lack of space, the consequences of data loss!
Stored to the current disk This is the simplest, but most are not recommended; how the server hard drive, it is best to store the backup to another hard disk; conditional on the choice of better and safer storage medium;
# Df -h
Filesystem Size Used Avail Use% Mounted on
/ Dev / mapper / VolGroup-lv_root 50G 46G 1.6G 97% /
tmpfs 1.9G 92K 1.9G 1% / dev / shm
/ Dev / sda1 485M 39M 421M 9% / boot
/ Dev / mapper / VolGroup-lv_home 534G 3.6G 503G 1% / home
2. Create a backup directory:
Above we see that using the command / home under more adequate space, so you can consider the / home save the backup file;
cd / home
3, create a backup Shell script:
Note that the following command in the DatabaseName replaced by the actual name of the database;
Of course, you can also use the fact of naming!
Input / paste the following:
#! / Bin / bash
mysqldump -uusername -ppassword DatabaseName> / home / backup / DatabaseName _ $ (date +% Y% m% d_% H% M% S) .sql
Compression of backups:
#! / Bin / bash
mysqldump -uusername -ppassword DatabaseName | gzip> / home / backup / DatabaseName _ $ (date +% Y% m% d_% H% M% S) .sql.gz
Replace username with the actual user name;
The password with the actual password;
The DatabaseName replaced by the actual name of the database;
4, add executable permissions:
chmod u + x bkDatabaseName.sh
After you add executable permissions to perform to see if there was anything wrong script can not work properly;
5. Add Scheduled Task
Detect or install crontab
Confirm crontab is installed:
Execute crontab command if the message command not found, it indicates not installed
-bash: crontab: command not found1
As there is no installation crontab, you need to install it, please refer to the specific steps:
Under CentOS using yum command to install the Task Scheduler crontab
Use the rpm command crontab from CentOS system disk to install the Task Scheduler
Add Scheduled Task
Excuting an order:
Then just use the vi editor, you can edit the planned tasks.
Enter the following and save:
* / 1 * * * * /home/backup/bkDatabaseName.sh
What exactly does it mean?
Meaning that every minute execute a shell script "/home/backup/bkDatabaseName.sh".
6, whether to perform the test task
Quite simply, we executed several "ls" command to see one minute after the file has not been created on it!
If the task fails, you can view the task log with the following command:
# Tail -f / var / log / cron
Output similar to the following:
Sep 30 14:01:01 bogon run-parts (/etc/cron.hourly) : starting 0anacron
Sep 30 14:01:01 bogon run-parts (/etc/cron.hourly) : finished 0anacron
Sep 30 15:01:01 bogon CROND : (root) CMD (run-parts /etc/cron.hourly)
Sep 30 15:01:01 bogon run-parts (/etc/cron.hourly) : starting 0anacron
Sep 30 15:01:02 bogon run-parts (/etc/cron.hourly) : finished 0anacron
Sep 30 15:50:44 bogon crontab : (root) BEGIN EDIT (root)
Sep 30 16:01:01 bogon CROND : (root) CMD (run-parts /etc/cron.hourly)
Sep 30 16:01:01 bogon run-parts (/etc/cron.hourly) : starting 0anacron
Sep 30 16:01:01 bogon run-parts (/etc/cron.hourly) : finished 0anacron
Sep 30 16:15:29 bogon crontab : (root) END EDIT (root)