Linux系统关键配置信息定时备份
问题描述:银河麒麟操作系统需要备份一下路径的配置文件
/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
```
保存并退出编辑器。