备份服务器数据库并保存到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 9月 19 14:03 root
[root@Baba MySpace]#
crontab -e 命令会进入一个vim界面
比如我们要凌晨两点零一分执行/home/MySpace/.plans.sh命令,
我们直接在vim界面输入
1 2 * * * /home/MySpace/.plans.sh
然后:wq退出就可以了
所有的计划任务,都会在/var/spool/cron/下产生对应的文件,用下面的命令就可以查看