[CentOS7] 常用工具 之 差异备份工具 rdiff-backup

本文介绍了rdiff-backup这款工具的基本使用方法,包括安装、配置定时任务进行差异备份及如何从备份中恢复文件等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

差异备份

rdiff-backup  ==> 用于累积差异备份,加上自己写的shell script,每日备份,效果更佳

先用yum search rdiff-backup看看是否yum源含有rdiff-backup这个package,若没有的话请yum install epel-release

接下来yum install rdiff-backup

用法用man来查一下吧,直接上我的备份脚本了

脚本文件下载地址: 百度网盘 密码: 9af9

然后设定每日定时进行差异备份

我设定为每日晚上10点自动进行差异备份

下面,我们来查看一下博主服务器备份的情况

可以通过时间来还原该目录下的某个文件或者该整个目录,还原方法如下:

(以下皆为演示需要才新建backuptest文件夹,若真正需要还原的时候可以直接指定到目标文件夹进行覆盖 比如: rdiff-backup -r now /backup/etc.dir /etc  实验的时候最好不要这样用,否则带来的后果博主不负责哦~)

1.按时间还原整个目录

还原只会按指定时间之前最近的一次备份进行还原,比如上面我写now,那么它会找到在当前时间之前最近的一次备份进行还原,也就是还原到上2图中的Current mirror: Tue Dec 12 22:00:01 2017这个时间

可以看到,还原后,该文件夹的时间确实是那个时间点之前的时间,说明该目录最后一次修改是在20:49:13这个时间,

若要单独还原某文件到某个时间点可以进行如下操作:

首先通过man rdiff-backup来查看下还原部分介绍RESTORING开头的部分

该部分内容介绍了,凡是以.diff,.snapshot,.dir,.gz(被gzip压缩后)皆可进行还原,而.missing表示文件在该时间点后已经不存在

rdiff-backup-data文件夹下放的是差异文件,这些都是整个目录的差异备份文件(可以直接使用该文件还原到某个时间点)

而rdiff-backup-data目录内的increments记录的是etc这个文件夹下文件的差异备份文件(可以使用该文件进行还原etc目录下的某个文件到某个时间点)

下面举例还原/etc/resolve.conf这个文件,首先查看下差异备份文件:

还原时间为2017-12-11 22:45:06,查看下我们本地文件

 

本地文件时间为2017-12-12 20:49:13,因此现在将该文件还原到上述差异备份文件所在的时间点

 

以上便成功将文件还原到了2017-12-11 22:45:06那个时候的状态,你可能会奇怪,为什么文件的日期却是2017-12-10 11:15:28?这是因为我们的rdiff-backup程序只会记录备份时间,而不会修改文件的任何属性,这说明在2017-12-11 22:45:06这个时间的时候,文件的modification time(-mtime)便是2017-12-10 11:15:28,所以明白了吗?

以上就是博主对rdiff-backup工具的介绍~

转载于:https://www.cnblogs.com/brianyi/p/8027827.html

<think>好的,用户现在遇到了nginx配置目录中有nginx.conf和同名的.default文件的问题。首先,我需要理解用户的具体情况。用户之前遇到了80端口被占用的问题,已经检查到是nginx自身进程导致的,现在在解决配置问题。用户发现在conf目录下除了nginx.conf之外还有nginx.conf.default文件,可能对这两个文件的作用和区别感到困惑。 首先,我应该确认用户是否了解这些.default文件的作用。通常,这些.default文件是Nginx安装时提供的默认配置示例,作为备份或参考。用户可能在修改配置时不小心复制或重命名了这些文件,导致目录中存在多个同名但不同扩展名的文件,这可能引起混淆。 接下来,用户可能想知道如何处理这些文件,是否需要删除,或者如何避免配置错误。需要解释.default文件的存在意义,以及正确管理配置文件的方法。例如,建议用户保留.default文件作为备份,不要直接修改它们,而是在需要时复制成不带.default后缀的文件进行编辑。 此外,用户可能担心多个配置文件的影响,尤其是在之前端口占用问题中提到的配置冲突。需要指导用户检查所有相关的配置文件,确保没有重复监听同一端口的情况,并正确引用配置文件。 还需要考虑用户的操作系统环境,比如是否是Linux发行版,使用apt还是yum安装的nginx,因为不同的包管理器处理配置文件的方式可能不同。例如,一些系统在升级时会用.default文件覆盖现有配置,所以用户需要注意备份。 用户可能还不太清楚如何正确使用nginx -t命令来测试配置,或者在重启服务时遇到问题。需要强调配置语法检查的重要性,并提供步骤指导用户如何安全地修改配置,避免服务无法启动。 最后,应该提醒用户在修改配置前进行备份,使用版本控制工具如git来管理配置变更,以及在修改后重新加载配置的正确命令,如nginx -s reload,而不是直接重启服务,以减少停机时间。 总结来说,用户需要明确.default文件的作用,学会如何正确管理和编辑配置文件,避免配置冲突,并掌握配置测试和应用的流程,确保nginx服务稳定运行。</think>### 核心问题定位 您发现的`.default`文件是Nginx的 **配置备份机制**,这是软件包管理器的标准操作。主要存在于以下场景: 1. 通过`apt/yum`等包管理器安装的Nginx 2. 版本升级时保留用户配置的安全措施 3. 官方提供的配置模板 --- ### 文件作用对照表 | 文件类型 | 典型路径 | 作用说明 | |--------------------|--------------------------|----------------------------| | **活动配置文件** | `/etc/nginx/nginx.conf` | 实际生效的运行时配置 | | **默认配置模板** | `*.conf.default` | 安装时生成的原始配置备份 | | **旧版本备份** | `*.conf.rpmnew` | 软件升级时产生的版本差异文件 | --- ### 关键风险预警 ```bash # 危险操作示例(绝对避免) sudo mv nginx.conf.default nginx.conf # 会导致配置丢失 sudo cp *.default /etc/nginx/ # 可能覆盖现有配置 ``` --- ### 标准操作流程 #### 一、配置继承关系验证 ```bash # 查看主配置文件加载路径 grep "include" /etc/nginx/nginx.conf # 典型输出示例 include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; ``` #### 二、安全修改示范 ```bash # 1. 创建配置副本(保留.default原始文件) sudo cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf.custom # 2. 对比差异(重要!) sudo diff -u /etc/nginx/nginx.conf{.default,} # 3. 选择性合并配置 sudo nano -w /etc/nginx/nginx.conf ``` --- ### 配置管理矩阵 | 操作场景 | 推荐命令 | 效果保障 | |------------------------|----------------------------------|----------------------------| | 升级后保留自定义配置 | `sudo dpkg --configure -a` | 自动处理.rpmnew/.dpkg-dist文件 | | 恢复默认配置 | `sudo cp /usr/share/nginx/nginx.conf /etc/nginx/` | 使用原始模板 | | 批量清理备份文件 | `sudo find /etc/nginx -name "*.default" -exec rm -v {} \;` | 删除所有默认模板 | --- ### 多配置文件冲突检测 ```bash # 查找所有监听80端口的配置 sudo grep -r "listen[[:space:]]*80" /etc/nginx/ # 验证配置继承关系 nginx -T 2>&1 | grep -A 10 'http {' # 显示完整配置树 ``` --- ### 配置版本控制方案 ```bash # 使用Git管理配置(推荐) cd /etc/nginx sudo git init sudo git add . sudo git commit -m "Initial nginx config" # 典型.gitignore内容 *.default *.backup *.swp ``` --- ### 文件权限管理规范 ```bash # 查看当前权限 sudo namei -l /etc/nginx/nginx.conf # 设置安全权限(CentOS示例) sudo chown root:root /etc/nginx/* sudo chmod 644 /etc/nginx/*.conf sudo chmod 750 /etc/nginx/sites-available/ ``` --- ### 配置生效流程图解 ```mermaid graph LR A[修改nginx.conf] --> B{语法检查} B -->|成功| C[重载配置] B -->|失败| D[回滚操作] C --> E[验证端口监听] E -->|正常| F[完成] E -->|异常| G[查看错误日志] style B fill:#f9f,stroke:#333 style D fill:#f96,stroke:#333 ``` --- ### 最佳实践建议 1. **保留所有.default文件**:这是软件升级时的重要参照基准 2. **使用`include`指令拆分配置**:例如: ```nginx # 主配置文件仅保留框架 http { include /etc/nginx/conf.d/*.conf; } ``` 3. **启用配置自动备份**: ```bash # 使用etckeeper工具 sudo apt install etckeeper sudo etckeeper init ``` --- 通过规范化的配置管理,可有效避免因多配置文件导致的端口占用异常。建议每次修改前执行`nginx -t`验证语法,配置变更后使用`systemctl reload nginx`平滑重载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值