数据库备份脚本
1.通过地址及用户名密码与远程 RDS 数据库获取链接并备份
2.指定备份地址并限定备份数目,现设定为 120 个(每小时备份一次,当前每次备份大小 1M[gz 压缩后,解压后大约 8M 左右]),可备份五天的每小时的数据库
#!/bin/bash
KEEPFILE_Num=5
DATABASEBACKUPPATH="备份存放地址"
RDSADDRESS="数据库链接地址"
RDSPORT="数据库端口"
RDSPASS="数据库用户密码"
RDS_BACKUPDATABASE_NAME="数据库需要备份的表名"
echo "------------- Start SQLDatabase backup"
echo "------------- delete overdue backup file"
cd $DATABASEBACKUPPATH
#show fileNo
FileNum=$(ls -l *.* | grep ^- | wc -l)
while(( $FileNum > $KEEPFILE_Num ))
do
#getOldestFile
OldFile=$(ls -rt *.* | head -1)
echo "Delete File:"$DATABASEBACKUPPATH'/'$OldFile
rm -f $DATABASEBACKUPPATH'/'$OldFile
let "FileNum--"
done
BACKUPTIME=$(date +%Y%m%d%H%M%S)
echo "------------- Doing backup"
mysqldump -h $RDSADDRESS -P $RDSPORT -u rdsuser -p$RDSPASS $RDS_BACKUPDATABASE_NAME| gzip > $DATABASEBACKUPPATH'/'$RDS_BACKUPDATABASE_NAME'_'$BACKUPTIME.sql.gz
echo "------------- SQLDatabase backup finished"
加入定时计划
-
Step1.编写完成上述脚本后,创建了一个 cron.hourly 文件夹(方便管理)
-
Step2.编写 cron 执行计划:hourly.cron 文件
01 * * * * root run-parts 文件夹地址/cron.hourly
# 注意run-parts用于执行文件夹中所有的脚本,去掉的话,得指明执行哪个脚本
- Step3.添加计划
crontab Step2中计划位置 >~/log
- Step4.验证结果
crontab -l 如果执行计划在打印中输出,说明正确执行
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于