shell脚本自动备份数据库表

今日目标:shell脚本自动备份数据库中的表并记录执行日志和mysql输出日志

编写思路:
(1)shell脚本运行mysql命令
(2)脚本输出记录到日志中
(3)定时任务自动执行shell脚本

1、shell脚本操作数据库

1、复制表的结构和数据
CREATE TABLE 新表 SELECT * FROM 旧表
2、只复制表结构到新表
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2

#运行mysql命令
mysql -uroot -proot -D 库名 -e "sql语句"

2、增加执行日志

根据时间自动创建日志文件,写入执行时间

# 创建日志
hislog_dir="目录"
[ -d ${
   hislog_dir} ] || mkdir -p -m 300 ${
   hislog_dir}

export HISTFILE="${hislog_dir}/$(date '+%F').log"

echo "[$(date +%Y-%m-%d\ %H:%M:%S)]---自动备份" >> $HISTFILE

3、日志中增加shell脚本执行后的提示

运行脚本文件后,可能提示警告或者错误提示,将错误日志同步保存在执行日志文件中
在这里插入图片描述
shell脚本中
0正常标准输入(STDIN)
1标准正常输出(STDOUT)
2标准错误输出(STDERR)

总结:
一个 > 的是每次覆盖导出结果,两个 > 的是在文件尾部追加导出结果。
1>:导出成功结果,不支持导出失败结果。
2>:导出失败结果,不支持导出成功结果。
$>:支持导出上面两种结果,混合导出。

#运行mysql命令
mysql -uroot -proot -D 库名 -e "sql语句" 2>> $HISTFILE

4、增加定时任务

shell文件指定每周五早上6点10分执行

10  6  *  *  5     shell文件地址


 *    *    *    *    *      command
 分   时   日   月   周        命令
第1列表示分钟1~59 每分钟用*/1表示.2列表示小时1~23 (0表示0)3列表示日期1~314列表示月份1~125列标识号星期0~ 6 (0表示星期天)6列要运行的命令

代码完整版本

#!/bin/bash

# 创建日志
hislog_dir="目录"
[ -d ${
   hislog_dir} ] || mkdir -p -m 300 ${
   hislog_dir}

export HISTFILE="${hislog_dir}/$(date '+%F').log"

[ -e ${
   hislog_dir}/$(date '+%F').log ] || touch ${
   hislog_dir}/$(date '+%F').log
[ -x ${
   hislog_dir}/$(date '+%F').log ] || chmod 200 -R ${
   hislog_dir}/$(date '+%F').log

echo "[$(date +%Y-%m-%d\ %H:%M:%S)]---自动备份" >>$HISTFILE

#运行mysql
mysql -uroot -proot -D 库名 -e "sql语句" 2>>$HISTFILE

exit

日志截图
在这里插入图片描述

相关推荐

  1. MongoDB数据库自动备份脚本

    2024-02-02 05:04:03       40 阅读
  2. Shell 脚本自动化备份与恢复实践

    2024-02-02 05:04:03       53 阅读
  3. 云原生高级--shell自动化脚本备份

    2024-02-02 05:04:03       65 阅读
  4. shell脚本实现mysql 数据库备份

    2024-02-02 05:04:03       27 阅读
  5. MySQL、Oracle、PostgreSQL 数据库备份用的 Shell 脚本

    2024-02-02 05:04:03       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-02 05:04:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-02 05:04:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-02 05:04:03       82 阅读
  4. Python语言-面向对象

    2024-02-02 05:04:03       91 阅读

热门阅读

  1. 352. 闇の連鎖(树上差分,LCA)

    2024-02-02 05:04:03       60 阅读
  2. 【Django-ninja】django-ninja的hello world

    2024-02-02 05:04:03       46 阅读
  3. QT仪表盘小工具

    2024-02-02 05:04:03       56 阅读
  4. RSTP保护机制

    2024-02-02 05:04:03       58 阅读
  5. Oracle RMAN全备脚本(正式测试可行)

    2024-02-02 05:04:03       50 阅读
  6. web worker

    2024-02-02 05:04:03       44 阅读
  7. star原则

    2024-02-02 05:04:03       54 阅读
  8. XSS绕过方法总结

    2024-02-02 05:04:03       58 阅读