ETJava Beta | Java    注册   登录
  • linux 定时备份shell脚本

    发表于 2024-12-07 01:08:03     阅读(173)     博客类别:Linux

    linux 定时备份shell脚本

    单目录备份

    #!/bin/bash
     
    # 设置源文件夹和备份文件夹
    SOURCE_DIR="/path/to/source"
    BACKUP_DIR="/path/to/backup"
     
    # 创建备份目录,如果不存在的话
    mkdir -p "$BACKUP_DIR"
     
    # 备份文件
    echo "开始备份..."
    tar -czf "$BACKUP_DIR/backup_$(date +%Y%m%d%H%M%S).tar.gz" "$SOURCE_DIR"
    echo "备份完成."

     

    多目录备份

    #!/bin/bash
    
    # 备份目录列表
    BACKUP_DIRS=("/home/imgs" "/home/wars" "/home/projects")
    
    # 备份存储的目标目录
    BACKUP_DESTINATION="/home/backup"
    
    # 备份文件前缀
    BACKUP_PREFIX="backup-$(date +%Y%m%d%H%M%S)"
    
    # 创建备份
    function create_backup() {
        local src_dir=$1
        local dest_dir=$2
        local backup_name=$3
    
        # 创建目标目录
        mkdir -p "$dest_dir"
    
        # 执行tar命令进行备份
        tar -zcpf "$dest_dir/$backup_name.tar.gz" "$src_dir"
    }
    
    # 对每个目录进行备份
    for dir in "${BACKUP_DIRS[@]}"; do
        create_backup "$dir" "$BACKUP_DESTINATION" "${BACKUP_PREFIX}_${dir//\//_}"
    done
    
    # 打印备份完成信息
    echo "备份完成。"
    

     

    给脚本添加可执行权限

    chmod +x backup.sh

    设置定时执行

    使用crontab -e命令打开当前用户的crontab文件,并添加一行以设置定时任务。例如,每天凌晨1点执行备份:添加如下内容
    # 每日凌晨1点执行
    0 1 * * * /path/to/backup.sh
    
    # 每周一23点执行
    0 23 * * 1 /home/backup_shell/backup.sh