已掉线,重新登录

首页 > 绿虎论坛 > 杂类 > 超级灌水 (发帖)

标题: 用ChatGPT写的自动备份脚本

作者: @Ta

时间: 2023-03-17

点击: 131
被下沉

用chatgpt写了个自动备份到cos的脚本,一步一步提需求,然后让GPT改,虽然最后还是需要小修小改才能用,但是已经很厉害了!


#!/bin/sh

base_dir=$(dirname "$0")

cd $base_dir

# 备份数据的目录
backup_dir="blog"

# 备份文件名,使用当前日期和时间作为文件名
backup_file="backup_$(date +%Y%m%d%H%M%S).tar.gz"

# 备份文件保存的目录
backup_save_dir="backup"

# 备份文件保留的份数
backup_save_count=2

# 腾讯云coscmd工具路径
coscmd_path="/usr/bin/coscmd"

# 腾讯云COS桶名称
cos_bucket="docker-backup-1251516794"

# 腾讯云COS地区
cos_region="ap-beijing"

# 腾讯云COS桶中备份文件保存的路径
cos_backup_path="backup"

# 备份文件上传函数,$1为上传文件路径,$2为失败重试次数
function upload {
  local try_count=0
  local result=1
  while [[ $try_count -lt $2 && $result -ne 0 ]]; do
    echo "Uploading $1, try $((try_count+1))..."
    # 使用coscmd上传备份文件
    $coscmd_path -b "$cos_bucket" -r "$cos_region" upload "$1" "$cos_backup_path/"
    result=$?
    try_count=$((try_count+1))
    sleep 10 # 等待10秒后重试
  done
  if [[ $result -eq 0 ]]; then
    echo "Upload successful"
  else
    echo "Upload failed after $try_count tries"
  fi
}

# 删除本地和云端备份文件,$1为备份文件名
function delete_backup {
  echo "Deleting backup $1"
  # 删除本地备份文件
  rm -rf "$backup_save_dir/$1"
  # 删除云端备份文件
  $coscmd_path -b "$cos_bucket" -r "$cos_region" delete -f "$cos_backup_path/$1"
}

if [ ! -d $backup_save_dir  ];then
  mkdir $backup_save_dir
fi

# 创建备份文件
tar -czPf "$backup_save_dir/$backup_file" --exclude="auto-backup.sh" "$backup_dir"

# 上传备份文件,最多重试3次
upload "$backup_save_dir/$backup_file" 3

# 删除旧的备份文件而不是最新的备份文件
cd "$backup_save_dir"
ls -t | tail -n +$(($backup_save_count+1)) | while read backup_file; do
                                                     echo "Deleting backup file: $backup_file"
                                                     delete_backup "$backup_file"
                                                 done

小米8 Explore Edition (透明色)


[隐藏样式|查看源码]


『回复列表(0|显示机器人聊天)』

帖子没有回复
回复需要登录

8月5日 04:04 星期二

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1