Linux 定时任务 - MySQL数据库备份

Linux 定时任务 - MySQL数据库备份

1.查看系统磁盘空间

定时任务需要选一个充足的磁盘空间,避免出现因空间不足而导致的备份失败。

[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.创建备份文目录

上面我们使用命令看出/home下空间比较充足,所以可以考虑在/home保存备份文件

创建目录data和shell,分别用来存放脚本和备份的数据

[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)

相关推荐