CentOS 上 cmatrix 的备份与恢复策略
适用范围与总体思路
备份范围与优先级
备份策略与示例命令
#!/usr/bin/env bash
set -Eeuo pipefail
CFG_USER="$HOME/.cmatrixrc"
CFG_SYS="/etc/cmatrix"
BIN_PATH="$(which cmatrix || true)"
TS=$(date +%F_%H%M%S)
BACKUP_DIR="$HOME/cmatrix_backups"
mkdir -p "$BACKUP_DIR"
# 1) 备份用户级配置
if [[ -f "$CFG_USER" ]]; then
cp -a "$CFG_USER" "$BACKUP_DIR/.cmatrixrc.$TS"
tar czf "$BACKUP_DIR/cmatrix_user_$TS.tar.gz" -C "$HOME" .cmatrixrc 2>/dev/null || true
fi
# 2) 备份系统级配置(若存在)
if [[ -d "$CFG_SYS" ]]; then
sudo cp -a "$CFG_SYS" "$BACKUP_DIR/cmatrix_sys_$TS"
sudo tar czf "$BACKUP_DIR/cmatrix_sys_$TS.tar.gz" -C /etc cmatrix 2>/dev/null || true
fi
# 3) 备份二进制(若可执行文件存在)
if [[ -n "$BIN_PATH" && -f "$BIN_PATH" ]]; then
sudo cp -a "$BIN_PATH" "$BACKUP_DIR/cmatrix_bin_$TS"
fi
# 4) 可选:同步到远端(示例:rsync over SSH)
# rsync -avz --delete "$BACKUP_DIR/" user@backup-host:/path/to/backup/cmatrix/
# 5) 清理:保留最近7天
find "$BACKUP_DIR" -type f -mtime +7 -delete
恢复流程与验证
扩展与兜底方案