各位小伙伴大家好,今天我就来讲述一下作为一个运维,如何解放自己的双手去让服务器定时备份数据库数据,防止程序操作数据库出现数据丢失。
mysql_dump_script.sh
脚本文件
#!/bin/bash
#保存备份个数,备份7天数据
number=7
#备份保存路径 路径名可自定义
backup_dir=/data/backup
#日期
dd=`date +%Y-%m-%d-%H-%M-%S`
#备份工具
tool=mysqldump
#用户名
username=your_username
#密码 自己的数据库密码
password=your_password
#将要备份的数据库
database_name=your_database_name
#如果文件夹不存在则创建
if [ ! -d $backup_dir ];
then
mkdir -p $backup_dir;
fi
#简单写法 mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql
#变量写法 本实例采用变量写法,这样增强脚本可移植性、可读性,后期维护时只需修改变量名即可
$tool -u $username -p$password $database_name > $backup_dir/$database_name-$dd.sql
#写创建备份日志
echo "创建数据部备份文件 $backup_dir/$database_name-$dd.sql" >> $backup_dir/log.txt
#找出需要删除的备份
delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1`
#判断现在的备份数量是否大于$number
count=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l`
if [ $count -gt $number ]
then
#删除最早生成的备份,只保留number数量的备份
rm $delfile
#写删除文件日志
echo "删除过期本份文件 $delfile" >> $backup_dir/log.txt
fi
写好数据库备份脚本了,该如何将服务器每天定时去执行了,这里就不得不说到服务器自带的cron表达式了,我们可以执行crontab -e
来编辑我们数据库脚本执行频率。
0 0 * * * /develop/work/mysql/mysql_dump_script.sh
上述cron表达式为每天0点定时备份MySQL数据库,这样就不用怕数据库被攻击啦。
优号推荐
公众号
:智享学习
专注分享软件开发全生态相关技术文章
、视频教程
资源、热点资讯等,如果喜欢我的分享,给 🐟🐟 点一个赞
👍 或者 ➕关注
都是对我最大的支持。
长按二维码关注公众号,在后台私信:
-
回复【学习路线】,获取Java最新学习资料
-
回复【面 试】,获取最新最全的互联网大厂面试资料
-
回复【简 历】,获取各种样式精美、内容丰富的简历模板
-
回复 【人工智能】,获取人工智能的全网最全思维导图
-
更多教程资源数不胜数,欢迎
关注,慢慢获取