ADD: backup.sh
This commit is contained in:
parent
d64ad9867c
commit
3caa738727
41
os/linux/config/backup.sh
Executable file
41
os/linux/config/backup.sh
Executable file
@ -0,0 +1,41 @@
|
||||
# Copyright(c) 2024 ely. All rights reserved.
|
||||
#
|
||||
# Name: format.sh v1.0
|
||||
#
|
||||
# Program:
|
||||
# Shell Script format
|
||||
#
|
||||
# History:
|
||||
# 2024/07/24 e0x1a new commit
|
||||
#
|
||||
# AUTHOR:
|
||||
# e0x1a "e0x1a@aliyun.com"
|
||||
#!/bin/bash
|
||||
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
|
||||
export PATH
|
||||
|
||||
SOURCE_DIR="$(dirname "$(realpath "$0")")"
|
||||
BACKUP_DIR="/mnt/backup/app"
|
||||
RETENTION=30 # 保留的备份数量
|
||||
|
||||
# 创建备份目录(如果不存在)
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
# 遍历源目录下的所有子目录
|
||||
for dir in "$SOURCE_DIR"/*/; do
|
||||
dir_name=$(basename "${dir%/}")
|
||||
# 跳过非目录文件(如 backup.sh)
|
||||
if [ -d "$dir" ]; then
|
||||
# 生成带日期的备份文件名
|
||||
backup_file="$BACKUP_DIR/${dir_name}_$(date +%Y%m%d).tar.gz"
|
||||
# 压缩并备份目录
|
||||
tar -czf "$backup_file" -C "$SOURCE_DIR" "$dir_name"
|
||||
|
||||
# 清理旧备份
|
||||
find "$BACKUP_DIR" -name "${dir_name}_*.tar.gz" -type f \
|
||||
| sort -r \
|
||||
| tail -n +$(($RETENTION + 1)) \
|
||||
| xargs rm -f 2>/dev/null
|
||||
fi
|
||||
done
|
||||
|
Loading…
x
Reference in New Issue
Block a user