首页 > 数据库 >【mysql】Linux下定时备份数据shell脚本

【mysql】Linux下定时备份数据shell脚本

时间:2023-03-03 17:47:02浏览次数:56  
标签:ARR shell LOG 备份 mysql item Linux BACKUP DIR

mysql_full_bak.sh
#!/bin/bash
# 全量备份(建议一周一次)
# 时间参数
DATE=$(date +%Y-%m-%d)
DATETIME=$(date +%Y%m%d%H%M%S)
# 数据库的地址
HOST=localhost
# 数据库的用户名
DB_USER=root
# 数据库的密码
DB_PASSWD=passwd
# 备份目录
DIR=/home/mysqlbak
BACKUP_DIR=${DIR}/${DATE}
# 备份的数据库名称(数据库名之间用空格分开)
DATABASE_ARR=(database1 database2 database3)
# 日志前缀打印
LOG_PREFIX="$(date +"%Y-%m-%d %H:%M:%S")-$(whoami) :"

echo -e ${LOG_PREFIX} =============== backup start ==========================================
echo -e ${LOG_PREFIX} backup dir - ${BACKUP_DIR}
echo -e ${LOG_PREFIX} backup databases - ${DATABASE_ARR[@]}

#创建备份目录 如果不存在就创建
[ ! -d "${BACKUP_DIR}" ] && mkdir -p "${BACKUP_DIR}"

# 定义sql文件名数组
FILE_ARR=()

# 备份每个库的数据
for item in ${DATABASE_ARR[@]}; do
	file_name=${DATETIME}-full-${item}.sql
	FILE_ARR+=(${file_name})
	mysqldump -u${DB_USER} -p${DB_PASSWD} --host=${HOST} -q -R --databases ${item} > ${BACKUP_DIR}/${file_name}
done

# 将文件处理成 tar.gz
# 同时删除源文件
cd ${BACKUP_DIR}
for item in ${FILE_ARR[@]}; do
	tar -zcvf ${item}.tar.gz ${item}
	# 删除对应的备份文件,保留压缩文件
	rm -rf ${BACKUP_DIR}/${item}
done

# 删除10天前的备份文件(find命令的-mtime +10有玄妙哦,准确来说是11天前的)
# find ${DIR} -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
find ${DIR} -type d -mtime +10 |xargs rm -r

echo -e ${LOG_PREFIX} =============== backup done ==========================================

标签:ARR,shell,LOG,备份,mysql,item,Linux,BACKUP,DIR
From: https://www.cnblogs.com/suhai/p/17176438.html

相关文章

  • mysql inndb
    执行一个表的脚本时提示:导入mysql数据表时出现错误:error"Rowsizetoolarge(>8126).ChangingsomecolumnstoTEXTorBLOBorusingROW_FORMAT=DYNAMICorROW_......
  • Docker配置mysql
    1.宿主机创建对应目录mkdir-p/data/dockers/mysqlcd/data/dockers/mysql#创建数据目录mkdirdata#创建配置目录mkdirconfig#创建日志目录mkdirlog2.创建......
  • linux上文件复制的python代码实现3.py
    每次都需要打开代码修改要复制的文件路径台麻烦,所以改用位置参数#文件的复制3.pyimportsysdefcopy(source,destination): file_read1=open(source,mode="rb") file_......
  • # PYTHON执行SQL语句操作MySQL数据库软件
    PYTHON执行SQL语句操作MySQL数据库软件准备安装第三方包PyMySQL创建到MySQL的数据库链接#例frompymysqlimportConnection#获取到MySQL数据库的链接对象conn=......
  • Linux时钟子系统分析
    梦开始的地方X86硬件时钟首先我们需要了解一下,目前有哪些时钟PITpit是最古老的pc时钟设备。Intel8253/8254PIT是具有3个16位计数器通道的可编程计数/定时器芯片,晶振......
  • mysql select into outfile默认文件保存路径是C:\ProgramData\MySQL\MySQL Server
    找到my.ini,修改usecure_file_priv=''然后保存并且退出。重启mysql正确的解决方法是:搜索“服务”并进入:下拉找到Mysql左上角处可以进行重启动。如果以后想要通......
  • Linux系列---【设置ssh连接超时时间】
    设置ssh连接超时时间shell工具总是不断的超时,上个厕所就断开了,很不方便,这里根据自己习惯设置一下。echo"exportTMOUT=600">>/etc/profile&&source/etc/profile......
  • 【MySQL速通篇001】5000字吃透MySQL部分重要知识点
    ......
  • Linux文件删除,但是磁盘空间没有释放
    Linux文件删除,但是df之后磁盘空间没有释放问题:Linux磁盘空间总是报警,查到大文件,删除之后,df看到磁盘空间并没有释放。查找了下发现系统对rm进行了alias,因为Linux对删除操......
  • mysql数据库改变编码
    SELECTTABLE_SCHEMA   '数据库',    TABLE_NAME    '表',    COLUMN_NAME    '字段',    CHARACTER_SET_NAME'原字符......