Linux系统关键配置信息定时备份

作者:动易软件 来源:本站原创 点击数: 发布时间:2024年08月28日


问题描述:银河麒麟操作系统需要备份一下路径的配置文件

 /etc/passwd‌
       /etc/shadow
       /etc/group
       /etc/sudoers‌
       /etc/hosts‌ 
       /etc/login.defs
       /etc/pam.d/
       /etc/rsyslog.conf
       /etc/resolv.conf
       /etc/fstab‌
       /etc/sysctl.conf‌

       /etc/ssh/sshd_config‌
       /etc/logrotate.conf

问题分析:举个例子,备份到/home/etcbak/,每天备份,保留最近一个月的备份。

解决方案:

定时任务和 `rsync` 工具来实现每天备份这些文件,并保留最近一个月的备份。以下是一个简单的步骤示例:

1. 创建备份脚本:

`/home/etcbak/` 目录下创建一个备份脚本 `backup_etcs.sh`

```bash

#!/bin/bash

BACKUP_DIR="/home/etcbak"

DATE=$(date +"%Y%m%d")

BACKUP_FILE="$BACKUP_DIR/etc_backup_$DATE.tar.gz"

# 创建备份

tar -czf $BACKUP_FILE /etc/passwd /etc/shadow /etc/group /etc/sudoers /etc/hosts /etc/login.defs /etc/pam.d/ /etc/rsyslog.conf /etc/resolv.conf /etc/fstab /etc/sysctl.conf /etc/ssh/sshd_config /etc/logrotate.conf

# 删除30天前的备份

find $BACKUP_DIR -type f -name "etc_backup_*.tar.gz" -mtime +30 -exec rm {} \;

```

确保脚本具有执行权限:

```bash

chmod +x /home/etcbak/backup_etcs.sh

```

2. 设置定时任务:

使用`cron` 来每天运行备份脚本。编辑 `cron` 配置:

```bash

crontab -e

```

添加以下行来每天凌晨1点执行备份脚本:

```bash

0 1 * * * /home/etcbak/backup_etcs.sh

```

保存并退出编辑器。