Linux 文件备份

Administrator
发布于 2025-01-08 / 6 阅读 / 0 评论 / 0 点赞

Linux 文件备份

Linux 文件备份

只是备份文件,作为记录,方便后续使用

#!/bin/bash

# 检查参数
if [[ $# -lt 2 ]]; then
    echo "用法: $0 文件夹列表 目标目录"
    exit 1
fi

# 参数定义
folder_list="$1"
backup_dir="$2"

# 检查文件夹列表是否存在
if [[ ! -f "$folder_list" ]]; then
    echo "错误: 文件夹列表 '$folder_list' 不存在"
    exit 1
fi

# 获取当前日期作为时间戳
timestamp=$(date +"%Y%m%d_%H%M%S")

# 创建目标备份目录(如果不存在)
mkdir -p "$backup_dir"

# 开始逐个备份
while IFS= read -r folder_path; do
    # 忽略空行
    [[ -z "$folder_path" ]] && continue

    # 检查文件夹是否存在
    if [[ -d "$folder_path" ]]; then
        # 获取文件夹名称
        folder_name=$(basename "$folder_path")

        # 生成压缩文件名
        backup_filename="${folder_name}_${timestamp}.tar.gz"

        # 压缩文件夹
        tar -czf "$backup_dir/$backup_filename" -C "$(dirname "$folder_path")" "$folder_name"

        echo "已备份并压缩: $folder_path -> $backup_dir/$backup_filename"
    else
        echo "警告: 文件夹 '$folder_path' 不存在,跳过"
    fi
done < "$folder_list"

echo "所有文件夹备份完成!"

定时备份

每天晚上 11 点定时备份

crontab -e

0 23 * * * /bin/bash /path/to/backup.sh /path/to/folders.txt /backup/destination >> /var/log/backup.log 2>&1