档案数字化外包,安全规范你得这么盘
哎,哥们儿姐们儿,聊个事儿。你瞅瞅你办公室那堆成山的档案,是不是跟“祖传的毛线团”似的,看着就头大,想理清吧,又怕一扯全乱套?现在流行把这“毛线团”数字化,找个外包团队来干,省心。但问题来了,这“毛线...
2026年08月31日 09:20:22
本文针对主流部署在CentOS 7/8服务器上的数字档案馆系统,覆盖核心数据库+电子档案文件全量备份,所有命令可直接复制执行,不需要额外技术基础。
/mnt/backup目录)``` yum install -y tar rsync mariadb ```
数字档案馆全量备份必须覆盖两类核心数据,缺一不可:核心业务数据库 + 电子档案原始文件库,梳理步骤如下:
打开数字档案馆的项目配置文件,一般路径为项目目录下的config/application.properties,从中提取三个信息:数据库用户名、数据库密码、数据库名,记录下来后续替换到脚本中。示例配置参考:
spring.datasource.username=dag_user spring.datasource.password=Dag@Backup2024 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/digital_archive对应信息为:用户名dag_user,密码Dag@Backup2024,库名digital_archive。
从系统配置中找到电子档案文件存储的根目录,默认一般为/data/digital_archive/files,把实际路径记录下来即可。
直接执行以下命令创建备份脚本,把梳理好的配置替换到脚本对应位置即可:
``` vi /opt/dag_full_backup.sh ```
把以下完整内容复制到脚本中,替换开头配置区的内容为你自己的实际信息:
```
!/bin/bash
数字档案馆全量备份脚本
-请修改此处配置-
DB_USER="dag_user"
DB_PASS="Dag@Backup2024"
DB_NAME="digital_archive"
ARCHIVE_FILE_DIR="/data/digital_archive/files"
BACKUP_DIR="/mnt/backup/dag_full_backup"
保留最近3份全量备份,多余自动删除
BACKUP_RETAIN_NUM=3
-配置结束,请勿修改下方-
mkdir -p ${BACKUP_DIR}
BACKUP_TIME=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME="dag_full_${BACKUP_TIME}"
备份数据库
echo "[$BACKUP_TIME] 开始备份数据库..."
mysqldump -u${DB_USER} -p${DB_PASS} ${DB_NAME} --default-character-set=utf8mb4 --single-transaction > ${BACKUP_DIR}/${BACKUP_NAME}_db.sql
打包全量数据
echo "[$BACKUP_TIME] 开始打包全量数据..."
tar -zcf ${BACKUP_DIR}/${BACKUP_NAME}.tar.gz --exclude=.tar.gz ${ARCHIVE_FILE_DIR} ${BACKUP_DIR}/${BACKUP_NAME}_db.sql
清理临时文件
rm -f ${BACKUP_DIR}/${BACKUP_NAME}_db.sql
清理过期备份
echo "[$BACKUP_TIME] 清理过期备份..."
cd ${BACKUP_DIR} && ls -t .tar.gz | tail -n +$[${BACKUP_RETAIN_NUM}+1] | xargs rm -rf
echo "[$BACKUP_TIME] 全量备份完成,备份路径:${BACKUP_DIR}/${BACKUP_NAME}.tar.gz"
```
添加脚本执行权限,执行命令:

``` chmod +x /opt/dag_full_backup.sh ```
手动执行脚本触发第一次全量备份,验证备份是否正常:
``` sh /opt/dag_full_backup.sh ```
执行完成后按以下步骤验证:
``` 替换成你自己实际的备份文件名 tar -tvf /mnt/backup/dag_full_backup/dag_full_xxxxxx.tar.gz | head -10 ```如果能正常列出文件,说明备份未损坏,验证通过。
数字档案馆一般要求至少每周一次全量备份,使用系统自带crontab实现自动触发,操作步骤:
``` crontab -e ```
``` 0 2 0 /bin/sh /opt/dag_full_backup.sh >> /var/log/dag_backup.log 2>&1 ```
``` crontab -l ```输出能看到刚才添加的任务,说明配置完成。
根据档案管理安全要求,全量备份必须离线存储,操作步骤:
``` rsync -avz /mnt/backup/dag_full_backup/ /你的离线存储挂载目录/ ```
登录MySQL执行以下命令给备份用户添加权限,替换成你自己的用户名和库名:
``` GRANT SELECT, LOCK TABLES ON digital_archive. TO 'dag_user'@'localhost'; FLUSH PRIVILEGES; ```
检查crontab服务状态,启动并设置开机自启:
``` systemctl start crond && systemctl enable crond ```
如果总数据超过100G,可拆分全量备份为多次,或者调整脚本保留备份数量,降低磁盘占用即可解决。