备份服务器数据库并保存到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
  • 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

这将在您的全局 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]#

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

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

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

然后:wq退出就可以了

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