Linux Scheduled Task - MySQL Database Backup

Linux Scheduled Task - MySQL Database Backup

 

 

1. Check system disk space

 

For scheduled tasks, you need to select a sufficient disk space to avoid backup failures caused by insufficient space.

 

[root@localhost lyky]# df -h

Filesystem               Size  Used Avail Use% Mounted on

/dev/mapper/centos-root   50G  3.9G   47G   8% /

devtmpfs                 7.8G     0  7.8G   0% /dev

tmpfs                    7.8G     0  7.8G   0% /dev/shm

tmpfs                    7.8G  8.5M  7.8G   1% /run

tmpfs                    7.8G     0  7.8G   0% /sys/fs/cgroup

/dev/sda1                497M  169M  329M  34% /boot

/dev/mapper/centos-home  442G  314M  442G   1% /home

tmpfs 1.6G 0 1.6G 0% / run / user / 1000

 

2. Create a backup file directory

 

We used the command above to see that there is sufficient space under /home, so we can consider saving backup files in /home

Create directories data and shell to store scripts and backup data respectively

 

[root@localhost lyky]# cd /home

[root@localhost home]# mkdir backupData

[root@localhost home]# cd backupData/

[root@localhost backupData]# mkdir data

[root@localhost backupData]# mkdir shell

 

3.创建备份shell脚本

 

[root@localhost lyky]# cd /home/shell

[root@localhost shell]# vi backupShell.sh

 

备份文件:

mysqldump -uusername -ppassword dbname > /home/backupData/dbname_$(date +%Y%m%d_%H%M%S).sql

 

备份压缩文件:

mysqldump -uusername -ppassword dbname | gzip >  /home/backupData/dbname_$(date +%Y%m%d_%H%M%S).sql.gz

 

修改usernamepassworddbname:wq保存退出

 

4.添加可执行权限

 

[root@localhost lyky]# cd /home

[root@localhost lyky]# chmod -R 777 backupData

 

添加执行权限后,脚本试运行,看能否正常使用

 

[root@localhost shell]# ./backuplms.sh

 

6.添加定时任务

 

[root@localhost shell]# vi /etc/crontab

 

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

 

# For details see man 4 crontabs

 

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name  command to be executed

0 */1 * * * root /home/backupData/shell/backuplms.sh

 

最后一行含义是:每小时执行一次shell脚本命令

 

至于命令格式,可以参照:Linux定时任务 - crontab命令格式详解

 

5.查看任务是否执行

 

[root@localhost shell]# tail -f /var/log/cron

Jan 12 08:01:01 localhost run-parts(/etc/cron.hourly)[13357]: finished 0anacron

Jan 12 09:00:01 localhost CROND[13376]: (root) CMD (/backupData/shell/backuplms.sh)

Jan 12 09:01:01 localhost CROND[13389]: (root) CMD (run-parts /etc/cron.hourly)

Jan 12 09:01:01 localhost run-parts(/etc/cron.hourly)[13389]: starting 0anacron

Jan 12 09:01:01 localhost run-parts(/etc/cron.hourly)[13398]: finished 0anacron

Jan 12 09:49:01 localhost crond[732]: (*system*) RELOAD (/etc/crontab)

Jan 12 10:00:01 localhost CROND[13505]: (root) CMD (/home/backupData/shell/backuplms.sh)

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326358831&siteId=291194637
Recommended