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