转载:https://www.cnblogs.com/zoulixiang/p/9395382.html
vim .mysqldump.sh #脚本都放置到/d20141212/scripts下,创建.mysqldump.sh的文件目的是,这个文件里有数据库的连接信息,要隐藏掉。所以加了.。
shopt -s -o nounset
export PATH=/usr/bin/:/bin
bakdir=/d20141212/dbback/msyql
date=$(date +%Y_%m_%d_%H)
dbname=‘XXX’ #数据库名称
dbuser=‘XXX’ #数据库用户
dbpwd=‘XXX’ #数据库密码
dbip=‘XX.XX.XX.XX’ #阿里云内网连接地址
if [ ! -d
b
a
k
d
i
r
<
/
s
p
a
n
>
<
s
p
a
n
c
l
a
s
s
=
"
t
o
k
e
n
p
u
n
c
t
u
a
t
i
o
n
"
>
]
<
/
s
p
a
n
>
<
s
p
a
n
c
l
a
s
s
=
"
t
o
k
e
n
k
e
y
w
o
r
d
"
>
t
h
e
n
<
/
s
p
a
n
>
<
s
p
a
n
c
l
a
s
s
=
"
t
o
k
e
n
f
u
n
c
t
i
o
n
"
>
m
k
d
i
r
<
/
s
p
a
n
>
−
p
<
s
p
a
n
c
l
a
s
s
=
"
t
o
k
e
n
v
a
r
i
a
b
l
e
"
>
bakdir</span> <span class="token punctuation">]</span> <span class="token keyword">then</span> <span class="token function">mkdir</span> -p <span class="token variable">
bakdir</span><spanclass="tokenpunctuation">]</span><spanclass="tokenkeyword">then</span><spanclass="tokenfunction">mkdir</span>−p<spanclass="tokenvariable">bakdir
fi
mysqldump --set-gtid-purged=OFF -h
d
b
i
p
<
/
s
p
a
n
>
−
u
<
s
p
a
n
c
l
a
s
s
=
"
t
o
k
e
n
v
a
r
i
a
b
l
e
"
>
dbip</span> -u<span class="token variable">
dbip</span>−u<spanclass="tokenvariable">dbuser -p
d
b
p
w
d
<
/
s
p
a
n
>
−
−
l
o
c
k
−
t
a
b
l
e
s
<
s
p
a
n
c
l
a
s
s
=
"
t
o
k
e
n
v
a
r
i
a
b
l
e
"
>
dbpwd</span> --lock-tables <span class="token variable">
dbpwd</span>−−lock−tables<spanclass="tokenvariable">dbname | gzip>
b
a
k
d
i
r
<
/
s
p
a
n
>
/
<
s
p
a
n
c
l
a
s
s
=
"
t
o
k
e
n
v
a
r
i
a
b
l
e
"
>
bakdir</span>/<span class="token variable">
bakdir</span>/<spanclass="tokenvariable">{dbname}_$date.sql.gz
#调用上边定义的变量
find $bakdir -mtime +30 -type f | xargs rm -rf #找到/d20141212/dbback/msyql下
的文件,删除30天之前的文件
3. chmod 700 .mysqldump #给予权限
4. vim /etc/cron.d/mysql #添加定时任务,添加如下内容
0 */6 * * * root /bin/bash /d20141212/scripts/.mysqldump.sh
#每6小时备份一次。
5. service crond restart #重启cron服务,使之生效。
这样就是脚本自动备份阿里云rds数据库