存储与备份
# 存储与备份
# 1、 文件存储路径说明
# 1.1 非docker部署
打开/docker/server1/application-prod.yml
文件,在该文件中配置了系统文件的存储路径。
找到profile
修改为你的文件存储路径,例如:
# 文件路径
profile: /zxcm/server/uploadPath
1
2
2
# 1.2 docker-compose部署
打开/docker/docker-compose.yml
文件,查看
zxcm-server1:
image: 13671354640/zxcm:0.9.1
container_name: zxcm-server1
environment:
TZ: Asia/Shanghai
volumes:
- /docker/server1/logs/:/zxcm/server/logs/
- /docker/server1/application.yml:/zxcm/server/application.yml
- /docker/server1/application-license.yml:/zxcm/server/application-license.yml
- /docker/server1/application-office.yml:/zxcm/server/application-office.yml
- /docker/server1/application-prod.yml:/zxcm/server/application-prod.yml
- /docker/server1/application-workflow.yml:/zxcm/server/application-workflow.yml
- /docker/server1/application-third.yml:/zxcm/server/application-third.yml
- /docker/server1/license.lic:/zxcm/server/license.lic
# 文件存储路径
- /docker/server1/uploadPath:/zxcm/server/uploadPath
- /docker/server1/zxcm-admin-runner.jar:/zxcm/server/app.jar
- /docker/server1/runner:/zxcm/server/runner
privileged: true
restart: always
networks:
ruoyi_net:
ipv4_address: 172.30.0.60
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 2、 备份说明
# 2.1 需要备份的内容
- mysql数据库备份
- 合同文件备份
- 系统配置文件和部署包的备份
# 2.2 文件备份
参考1. 修改文件存储路径
中设置的文件存储路径,将文件存储路径下的文件进行打包备份,例如:
tar -zcvf /zxcm/server/uploadPath.tar.gz /zxcm/server/uploadPath
1
也可以使用备份脚本备份:
#!/bin/bash
# 定义源目录和目标备份目录
source_dir="/docker/server1/uploadPath"
backup_dir="/docker/backup/file"
# 定义备份的频率(例如:每天、每周等)
frequency="daily"
# 获取当前日期,格式为 YYYYMMDD
current_date=$(date +%Y%m%d%H%M%S)
# 创建备份目录,如果不存在
mkdir -p "${backup_dir}"
# 使用rsync进行增量备份
rsync -avu --delete "${source_dir}/" "${backup_dir}/"
# 根据频率创建日志文件
log_file="${backup_dir}/${frequency}_backup.log"
# 记录备份时间到日志文件
echo "Backup completed on $current_date" >> "${log_file}"
# 输出备份完成信息
echo "Incremental backup of ${source_dir} to ${backup_dir} completed."
# 可选:设置脚本定时运行
# 例如,每天凌晨1点运行此脚本
# crontab -e
# 0 1 * * * /docker/backup/backupFile.sh
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
31
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
31
# 2.3 数据库备份
系统默认会提供一个数据库的备份脚本,文件路径/docker/backup
文件夹下
基于docker部署的mysql,备份脚本如下:
#!/bin/bash
# Docker容器名称或ID
CONTAINER_NAME="your_mysql_container_name"
# MySQL数据库配置
MYSQL_USER="your_username"
MYSQL_PASSWORD="your_password"
MYSQL_DATABASE="your_database"
# 备份目录
BACKUP_DIR="/docker/backup/mysql"
# 创建备份目录,如果不存在的话
mkdir -p "$BACKUP_DIR"
# 定义备份文件的名称,包含日期和时间
BACKUP_NAME="mysql_backup_$(date +%Y%m%d_%H%M%S).sql"
# 使用mysqldump命令备份数据库,通过docker exec连接到容器
docker exec -i $CONTAINER_NAME mysqldump -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE" > "$BACKUP_DIR/$BACKUP_NAME"
# 检查上一个命令是否成功执行
if [ $? -eq 0 ]; then
echo "MySQL backup completed successfully: $BACKUP_DIR/$BACKUP_NAME"
# 找到15天前的备份文件并删除
find "$BACKUP_DIR" -name "*.sql" -mtime +15 -exec rm {} \;
echo "Older than 15 days backups have been deleted."
else
echo "MySQL backup failed."
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
31
32
33
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
31
32
33
# 3、 设置自动备份
# 3.1 使用corn脚本定时执行
在开始之前,请确保你的备份脚本已经测试无误,并且有执行权限。
打开终端,并输入以下命令来编辑当前用户的crontab文件:
crontab -e
1
在打开的crontab文件中,添加一行来定义你的备份任务。
#添加以下行来设置每天的备份任务(例如,每天凌晨1点执行):
0 1 * * * /docker/backup/backupFile.sh
1
2
2
上次更新: 2025/03/18, 14:01:36