Kylin-Linux-Advanced-Server备份与恢复

在Kylin Linux Advanced Server V10上,可以通过以下步骤实现按月自动备份关键文件到本机指定位置,并测试数据恢复。我们将使用cron来调度备份任务,并使用tar命令进行文件打包和压缩。

1. 备份原理

  • 备份:使用tar命令将关键文件打包并压缩,保存到指定目录。
  • 自动化:使用cron设置每月定时任务,自动执行备份脚本。
  • 恢复测试:从备份文件中解压数据,验证文件完整性和可恢复性。

2. 具体步骤

2.1 创建备份脚本

创建一个备份脚本,例如backup.sh,并将其放在/usr/local/bin/目录下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash

# 定义备份目录和文件名
BACKUP_DIR="/backup"
BACKUP_NAME="backup_$(date +%Y%m).tar.gz"
SOURCE_DIRS=("/etc" "/home" "/var/www") # 需要备份的目录

# 创建备份目录
mkdir -p $BACKUP_DIR

# 打包并压缩文件
tar -czf $BACKUP_DIR/$BACKUP_NAME ${SOURCE_DIRS[@]}

# 检查备份是否成功
if [ $? -eq 0 ]; then
echo "备份成功: $BACKUP_DIR/$BACKUP_NAME"
else
echo "备份失败"
exit 1
fi

2.2 设置脚本权限

确保脚本具有可执行权限:

1
chmod +x /usr/local/bin/backup.sh

2.3 配置Cron任务

使用crontab -e编辑当前用户的cron任务,添加每月执行备份脚本的任务。

1
0 0 1 * * /usr/local/bin/backup.sh

解释:

  • 0 0 1 * *:表示每月1日的午夜0点执行。
  • /usr/local/bin/backup.sh:要执行的备份脚本。

2.4 测试数据恢复

为了测试数据恢复,可以从备份文件中解压数据到临时目录,并验证文件完整性。

1
2
3
4
5
6
7
8
# 创建临时目录
mkdir -p /tmp/restore_test

# 解压备份文件
tar -xzf /backup/backup_202310.tar.gz -C /tmp/restore_test

# 验证文件
ls -l /tmp/restore_test

3. 完整脚本示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash

# 定义备份目录和文件名
BACKUP_DIR="/backup"
BACKUP_NAME="backup_$(date +%Y%m).tar.gz"
SOURCE_DIRS=("/etc" "/home" "/var/www") # 需要备份的目录

# 创建备份目录
mkdir -p $BACKUP_DIR

# 打包并压缩文件
tar -czf $BACKUP_DIR/$BACKUP_NAME ${SOURCE_DIRS[@]}

# 检查备份是否成功
if [ $? -eq 0 ]; then
echo "备份成功: $BACKUP_DIR/$BACKUP_NAME"
else
echo "备份失败"
exit 1
fi

4. 总结

  • 备份:通过tar命令打包和压缩关键文件,并保存到指定目录。
  • 自动化:使用cron设置每月定时任务,自动执行备份脚本。
  • 恢复测试:从备份文件中解压数据,验证文件完整性和可恢复性。

通过以上步骤,你可以实现按月自动备份关键文件,并确保数据可恢复。