備份Linux系統的shell腳本
備份Linux系統的shell腳本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
# 设置备份目录和保留天数
backup_dir="/sysbk"
retain_days=7
# 创建备份目录
#mkdir -p "$backup_dir"
# 生成备份文件名
backup_file="system_backup_$(date +%Y%m%d_%H%M%S).tar.gz"
# 使用tar命令备份整个系统到归档文件
tar -czf "$backup_dir/$backup_file" --exclude="$backup_dir" --exclude="/proc" --exclude="/sys" --exclude="/dev" --exclude="/var/spool" --exclude="/var/lib/lxcfs" --exclude="/var/lib/vz" --exclude="/var/log" --exclude="/var/mail" --exclude="/var/cache" --one-file-system /
# 检查备份是否成功
if [ $? -eq 0 ]; then
echo "系统备份成功: $backup_dir/$backup_file"
else
echo "系统备份失败"
fi
# 删除旧的备份文件
find "$backup_dir" -name "system_backup_*" -mtime +$retain_days -exec rm {} \;
//--one-file-system 参数时,备份或复制过程将仅限于指定的文件系统,而不会进入其他挂载的文件系统,這樣就會避免循環導致備份文件臃腫過大,甚至撐爆硬盤。