Confluence 是 Atlassian 公司推出的一款专业的团队协作与知识管理平台,广泛应用于企业、团队的文档协作、项目管理、知识沉淀等场景。它的核心功能是帮助团队集中管理信息,实现高效的协同工作,避免信息分散和沟通壁垒。

整理了一下confluence在生产环境备份方法,当然如果文档比较少可以使用confluence自带的自动定时备份,简单方便。生产环境备份具体操作步骤如下:

1、备份web程序目录/opt/atlassian

web程序目录在安装的时候可以指定,我放在了/opt目录下,可以使用tar命令将目标目录压缩成tar包。

首先定义压缩包名称,压缩前首先执行删除操作防止文件已经存在,最后使用tar命令压缩目录。

# 当天日期
today=$(date +%Y-%m-%d)
echo $today  # 输出:2025-07-29

#压缩文件命名
tar_file_name="backup_opt_atlassian_${today}.tar.gz"
echo "文件名称:${tar_file_name}"

cd /opt/
#删除压缩文件(防止重复执行时文件已经存在)
sudo rm -rf ${tar_file_name}
# 压缩文件
sudo tar -czvf ${tar_file_name} ./atlassian

2、备份数据目录/var/atlassian

数据目录包含图片、附件等数据,目录默认放在/var/atlassian目录下,可以使用tar命令将目标目录压缩成tar包。

具体操作与上一步的步骤类似,具体看一下脚本:

# 当天日期
today=$(date +%Y-%m-%d)
echo $today  # 输出:2025-07-29

#压缩文件命名
tar_file_name="backup_var_atlassian_${today}.tar.gz"
echo "文件名称:${tar_file_name}"
cd /var/

# 压缩文件
sudo rm -rf ${tar_file_name}
sudo tar -czvf ${tar_file_name} ./atlassian

3、备份mysql数据库

我使用的数据库是mysql,下面看一下如何备份mysql中的confluence数据库。

直接使用mysql提供的命令:mysqldump备份数据,最后将备份的数据进行压缩。具体看一下脚本:

echo "我是:$(whoami) $(pwd)"
source /home/ubuntu/mysql_config.cnf

echo "备份myql..."

today=$(date +%Y-%m-%d)
echo $today 
sql_file_name="${mysql_db}_${today}"

#备份数据库
rm -rf /home/ubuntu/data/confluence_bakup/db/${sql_file_name}.sql
mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_pwd $mysql_db > /home/ubuntu/data/confluence_bakup/db/${sql_file_name}.sql

#压缩
cd /home/ubuntu/data/confluence_bakup/db/
tar -zcvf ${sql_file_name}.tar.gz ${sql_file_name}.sql

至此备份操作已经完成了,如果使用云服务器到此就可以了,云服务器有磁盘备份功能,不用担心压缩包丢失,如果是自己的机器,最好将这些文件上传到云盘,下面以百度云盘为例看一下如何同步这些压缩包,为什么选择上传到百度云呢因为不花钱。

在linux server中将数据上传到百度云可以使用Bypy,Bypy 是百度网盘的 Python 客户端,可通过命令行管理百度网盘内的文件,支持文件列出、上传下载、同步等功能。

4、明确工具后下面看一下上传步骤

1)明确要同步的文件,一共有三个文件分别是:

/opt/backup_opt_atlassian_2025-07-29.tar.gz

/var/backup_var_atlassian_2025-07-29.tar.gz

/home/ubuntu/data/confluence_bakup/db/confluence_2025-07-29.tar.gz

2) 使用bypy上传文件

#切换环境
source /opt/apps/anaconda3/etc/profile.d/conda.sh
conda activate python3.12

#
today=$(date +%Y-%m-%d)
echo $today 

echo "上传文件/opt/backup_opt_atlassian_$today.tar.gz..."
bypy upload /opt/backup_opt_atlassian_$today.tar.gz /confluence/backup/$today/

echo "上传文件/var/backup_var_atlassian_$today.tar.gz..."
bypy upload /var/backup_var_atlassian_$today.tar.gz /confluence/backup/$today/

echo "上传文件/home/ubuntu/data/confluence_bakup/db/confluence_$today.tar.gz..."
bypy upload /home/ubuntu/data/confluence_bakup/db/confluence_$today.tar.gz /confluence/backup/$today/

3)上传完成后,查看文件

bypy上传的文件的根目录是/我的应用数据/bypy,所有上传的文件可以在这里查找

5、清理压缩包

如果没有上传云盘,只是本地备份可以忽略这一步,下面看一下具体实现

today=$(date +%Y-%m-%d)
echo $today 

echo "删除文件/opt/backup_opt_atlassian_$today.tar.gz..."
sudo rm -rf /opt/backup_opt_atlassian_$today.tar.gz

echo "删除文件/var/backup_var_atlassian_$today.tar.gz..."
sudo rm -rf /var/backup_var_atlassian_$today.tar.gz

echo "删除文件/home/ubuntu/data/confluence_bakup/db/confluence_$today.tar.gz..."
sudo rm -rf /home/ubuntu/data/confluence_bakup/db/confluence_$today.tar.gz