简易定时备份同步推送脚本

iXiAo9 / 2023-06-18 / 原文

简介

一个简易脚本它可以完成以下功能

1、删除指定目录文件
2、根据当前时间进行打包
3、使用Bark消息推送(ios)
4、文件同步

配置定时任务

每天定时凌晨2点开始执行

#crontab -e
0 2 * * * /bin/bash /home/backup/SyncTarFiles.sh

一个名为SyncTarFiles.sh脚本

#/bin/bash

F_DATE=$(date +%Y-%m-%d_%H) #打印当前时间
F_FILE_NAME=backup_xxx.com_$F_DATE.tar.gz #使用tar命令+时间进行打包
FILE_SAVE_PATH="/home/web"    #被打包的路径
BARK_TOKEN=NXXXXXXXXXXXe #BARK推送(ios)

# 清除
DeleteFiles() {
    echo "清理文件"
    rm -rf /home/backup/backup_xxx.com_*
    echo "清理成功!"
}

# 压缩
CompressedFile() {
    # 执行tar命令进行压缩
    echo "开始压缩$F_FILE_NAME"
    tar -czf "$F_FILE_NAME" $FILE_SAVE_PATH  2>/dev/null 

    # 判断文件是否压缩成功
    if [ $? -eq 0 ] && [ -f "$F_FILE_NAME" ]; then
        echo "$F_FILE_NAME 压缩成功"
        curl https://api.day.app/$BARK_TOKEN/xxx.com压缩成功/$F_FILE_NAME  2>/dev/null 
        SyncFiles
        
    else
        echo "$F_FILE_NAME 压缩失败"
        curl https://api.day.app/$BARK_TOKEN/xxx.com压缩失败/$F_FILE_NAME  2>/dev/null 
    fi
}

# 同步文件
SyncFiles() {
    echo "开始发送文件$F_FILE_NAME"
    scp -P 22 -r /home/backup/ back@1.1.1.1:/home/back/
    if [ $? -eq 0 ]; then
        echo "$F_FILE_NAME 同步成功"
        curl https://api.day.app/$BARK_TOKEN/xxx.com同步成功/$F_FILE_NAME  2>/dev/null 
    else
        echo "$F_FILE_NAME 同步失败"
        curl https://api.day.app/$BARK_TOKEN/xxx.com同步失败/$F_FILE_NAME  2>/dev/null 
    fi
}
DeleteFiles
CompressedFile