# 备份数据库脚本
mysqldump最好配置为全局命令
mysqldump -help 看一下是否可以执行
#!/bin/bash
#备份路径
BACKUP=/www/backup/mysql
#当前时间
DATETIME=$(date +%Y-%m-%d)
echo "===备份开始==="
echo "备份文件存放于${BACKUP}/$DATABASE-$DATETIME.sql"
#数据库地址
HOST=localhost
#数据库用户名
DB_USER=root
#数据库密码
DB_PW=123456
#创建备份目录
#[ ! -d "${BACKUP}/$DATETIME" ] && mkdir -p "${BACKUP}/$DATETIME"
#后台系统数据库
DATABASE=test
echo $DATABASE-$DATETIME
#mysqldump -u${DB_USER} -p${DB_PW} --single-transaction --host=$HOST -q -R --databases $DATABASE | gzip > ${BACKUP}/$DATETIME/$DATABASE.sql
mysqldump -h localhost -u${DB_USER} -p${DB_PW} ${DATABASE} >${BACKUP}/$DATABASE-$DATETIME.sql
echo "===导出成功,开始传输==="
#压缩成tar.gz包
#cd $BACKUP
#tar -zcvf $DATETIME.tar.gz $DATETIME
#备份到服务器B
#scp $DATABASE-$DATETIME.sql root@1.1.1.2:/www/backup/mysql
#删除备份目录
#rm -rf ${BACKUP}/$DATETIME
#删除10天前备份的数据,这边可以自行更改
#find $BACKUP -mtime +10 -name "*.sql" -exec rm -rf {} \;
echo "===数据库备份到服务器成功==="
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 发布脚本到服务器
#将备份脚本上传至数据库服务器
scp /本地目录/mysqldump.sh root@10.0.0.1:/www/back/mysql
1
2
2
在服务器如果出现权限问题,执行命令赋予权限
chomd 755 ./mysqldump.sh
# 配置定时服务
定时任务使用,这里使用crontabs
#如未安装执行
yum install vixie-cron
yum install crontabs
#启动
systemctl start crond.service
vim /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
* * */1 * * root /databaseback/mysqldump.sh
# :wq
# 查询定时任务
crontab -l
#如果执行是提示root下未有cron,执行一下命令
crontab -e
#直接进行保存,初始化root下cron文件
#:wq
# 如果调整定时策略记得重启服务
systemctl restart crond.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41