Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。shell可以做一些繁杂且重复的事,用来做数据库备份很合适。分享一个shell脚本做的mysql备份。可以把这个脚本加入linux cron定时任务中,能实现定时备份数据,而且删除十天前的数据。 注:这个适合数据量少且写入量不高的mysql数据库。 代码如下 #!/bin/bash #主机 HOST=localhost #数据库用户名 DB_USER=root #数据库密码 DB_PWD=adminadmin #需要备份的数据库 DBTABASE=gitea #备份目录 BACKUP=/root/shell/db #当前时间作为文件名 DATETIME=$(date +%Y_%m_%d_%H%M%S) #创建备份的路径 [ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME" echo “备份路径$BACKUP/$DATETIME 创建成功” #执行mysql的备份数据库指令 mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz echo "备份数据库文件$BACKUP/$DATETIME/$DATETIME.sql.gz 成功" #打包备份文件 cd $BACKUP tar -zcvf $DATETIME.tar.gz $DATETIME echo "打包成$DATETIME.tar.gz 成功" #删除临时目录 rm -rf $BACKUP/$DATETIME echo "删除临时目录$BACKUP/$DATETIME 成功" #删除10天前的备份数据 find $BACKUP -mtime +10 -iname "*.tar.gz" -exec rm -rf {} \; echo "删除$BACKUP目录10天前的备份*.tar.gz数据成功" echo "================备份文件成功==============="