当前位置: 首页 > news >正文

shell 循环 mysql_shell脚本备份mysql数据库(for循环)

#!/bin/bash

mysql_host="192.168.1.239"

mysql_user="root"

mysql_passwd="123456"

#sql备份目录

root_dir="/backup"

back_dir="/backup/databases"

data_dir="databases"

store_dir="database"

if [ ! -d $back_dir ]; then

mkdir -p $back_dir

fi

#备份的数据库数组

db_arr=$(echo "show databases;" | mysql -u$mysql_user -p$mysql_passwd -h$mysql_host)

#不需要备份的单例数据库

nodeldb="test1"

#当前日期

date=$(date -d '+0 days' +%Y%m%d)

#zip打包密码

zippasswd="passwd"

zipname="lczh_"$date".zip"

#2.进入到备份目录

cd $back_dir

#3.循环备份

for dbname in ${db_arr}

do

if [ $dbname != $nodeldb ]; then

sqlfile=$dbname-$date".sql"

mysqldump -u$mysql_user -p$mysql_passwd -h$mysql_host $dbname >$sqlfile

fi

done

#4.tar打包所有的sql文件

tar -zcPpf $root_dir/$store_dir/$zipname --directory /  $root_dir/$data_dir

#打包成功后删除sql文件

if [ $? = 0 ]; then

rm -r $data_dir

fi

定期清理14天前的备份文件

#!/bin/bash -

#mysql文件备份目录

backup_dir1="/backup/test1/"

backup_dir2="/backup/test2/"

backdir_arr=($backup_dir1 $backup_dir2)

#过期文件的时间

keep_time=14

#当前所在星期,crontab在奇数的星期7执行

week=$(date +%W)

flag=`expr $week % 2`

#2.清理过期文件,只在奇数星期7执行

if [ $flag -eq 1 ]; then

for dir in ${backdir_arr[*]}

do

if [ -d $dir ]; then

#查找14天之外的文件数据

clean_arr=`find $dir -type f -mtime +$keep_time -exec ls {} \;`

for cleanfile in ${clean_arr}

do

rm $cleanfile

done

fi

done

fi

crontab配置

0 5 * * 7  执行清理脚本

相关文章:

  • swift 路由管理_京东商城订单模块Swift探索
  • 修改图片创建时间_Linux如何查看文件的创建、修改时间?
  • mysql 范式化_Mysql范式与反范式
  • jsp ssh mysql是什么_JSP+SSH+Mysql实现的学生管理系统
  • MySQL备机比主机binlog大_关于PostgreSQL流复制的延迟
  • python tempfile模块用不了_Python tempfile模块和线程表现不佳;我做错了什么?
  • python怎么发图文_python3开发微信企业号发送图文方法
  • java zip文件夹_【转】Java实现将文件或者文件夹压缩成zip
  • java线程接口_Java多线程相关的常用接口
  • java 字符串 宽度,用Java计算字符串的显示宽度
  • java string转gbk_Java String UTF-8 和 GBK 互换
  • java获取jsp session_前台jsp页面获取session对象
  • java执行多条linux命令_Java ProcessBuilder可以在Linux中顺序执行多个命令
  • java怎么做好看的边框_在java中怎么做出这种文本框效果
  • java验证call_Java 判断字符串是否是回文字符串
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • create-react-app做的留言板
  • es6(二):字符串的扩展
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • input的行数自动增减
  • Next.js之基础概念(二)
  • socket.io+express实现聊天室的思考(三)
  • TCP拥塞控制
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 从输入URL到页面加载发生了什么
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 前端知识点整理(待续)
  • 巧用 TypeScript (一)
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • #pragma pack(1)
  • $.ajax()参数及用法
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (十三)Maven插件解析运行机制
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • (状压dp)uva 10817 Headmaster's Headache
  • *1 计算机基础和操作系统基础及几大协议
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .net framework profiles /.net framework 配置
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET/C# 使用反射注册事件
  • .netcore 获取appsettings
  • @Valid和@NotNull字段校验使用
  • [1] 平面(Plane)图形的生成算法
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [Android]使用Git将项目提交到GitHub