• 备份服务器数据库并保存到Git仓库


    备份项目及数据库脚本

    #!/bin/bash  
      
    # MySQL数据库信息  
    DB_HOST="localhost"  
    DB_USER="root"  
    DB_PASS="************"  
    DB_NAME="my-space"  
      
    # 导出文件目录  
    EXPORT_PATH="/home/MySpace/mysql"  
      
    # 获取当前时间并格式化为文件名  
    CURRENT_TIME=$(date +"%Y-%m-%d %H:%M:%S")  
    EXPORT_FILE="$CURRENT_TIME.sql"  
      
    # 创建导出目录(如果不存在)  
    mkdir -p "$EXPORT_PATH"  
      
    # 使用mysqldump命令导出数据库数据  
    mysqldump -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" > "$EXPORT_PATH/$EXPORT_FILE"  
      
    # 检查导出结果  
    if [ $? -eq 0 ]; then  
      echo "数据库数据已成功导出到 $EXPORT_PATH/$EXPORT_FILE"  
      git add .
      git commit -m "$CURRENT_TIME"
      git push origin master
    else  
      echo "导出数据库数据失败"  
    fi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • DB_HOST:MySQL数据库的主机地址。如果数据库在本地服务器上,可以设置为localhost
    • DB_USER:用于连接MySQL数据库的用户名。
    • DB_PASS:用于连接MySQL数据库的密码。
    • DB_NAME:要导出数据的数据库名称。
    • EXPORT_PATH:导出数据文件的目标目录。请确保该目录存在,并且具有适当的写入权限。
    • EXPORT_FILE:导出数据文件的名称。可以根据需要更改文件名。

    保存脚本文件,并确保脚本具有执行权限(可以使用chmod +x script.sh命令赋予执行权限)。然后运行脚本,它将使用mysqldump命令导出数据库数据,并将导出的数据保存到指定的文件中
    .

    如果每次Git push 都需要输入账号密码,可以进行如下操作:

    设置 Git 的凭证存储助手:
    git config --global credential.helper store
    
    • 1
    • 2

    这将在您的全局 Git 配置中启用凭证存储功能。

    设置脚本执行定时计划

    # 开启crond服务
    [root@Baba MySpace]# systemctl start crond
    [root@Baba MySpace]# systemctl enable crond
    [root@Baba MySpace]# crontab -u root -l
    no crontab for root
    [root@Baba MySpace]# ll /var/spool/cron/
    总用量 0
    # 创建 定时计划。
    [root@Baba MySpace]# crontab -e
    no crontab for root - using an empty one
    crontab: installing new crontab
    [root@Baba MySpace]# pwd
    /home/MySpace
    [root@Baba MySpace]# ls
    file-db  front  java  mysql  plans.sh  tmp
    # 查看我们的定时计划
    [root@Baba MySpace]# crontab -l
    1 2 * * * /home/MySpace/.plans.sh
    [root@Baba MySpace]# ll /var/spool/cron/
    总用量 4
    -rw------- 1 root root 34 919 14:03 root
    [root@Baba MySpace]#
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    crontab -e 命令会进入一个vim界面

    比如我们要凌晨两点零一分执行/home/MySpace/.plans.sh命令

    我们直接在vim界面输入1 2 * * * /home/MySpace/.plans.sh

    然后:wq退出就可以了

    所有的计划任务,都会在/var/spool/cron/下产生对应的文件,用下面的命令就可以查看

  • 相关阅读:
    为什么要进行数据治理
    【Leetcode】面试题 02.02. 返回倒数第 k 个节点
    react 中ref 属性的三种写法
    c++二叉树遍历
    Vue中模板语法与el 和 data 的两种写法
    光环:软件研发效能特征与度量——王一男
    S32DS 调用脚本实现Post-build处理
    【PCIE702-1】基于Kintex UltraScale系列FPGA的高性能PCIe总线数据预处理载板
    grid项目属性之grid-area&justify-self/align-self
    Spring5框架学习笔记(四)
  • 原文地址:https://blog.csdn.net/m0_46636892/article/details/133027397