七牛云自动备份脚本
七牛云的对象存储有免费的10G存储空间,很适合用来当服务器的关键配置文件备份,所以自己写了一个sh脚本用来定时将本地文件备份后上传到七牛云存储空间。
该脚本依赖于官方命令行工具,下载地址
七牛云qshell自动备份文件脚本如下
#!/bin/bash
# 设置七牛云存储空间的相关信息
# 将获取到的密钥放在这儿
ACCESS_KEY="AZmEJedxxxxxxxxxxxxxxxxxxxxxxxx"
SECRET_KEY="ZBgriX3Yxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
qshell="/usr/bin/qshell" # 请将路径替换为实际的 qshell 路径
# 这个name随意取
$qshell account "$ACCESS_KEY" "$SECRET_KEY" "name"
# 备份的源目录和目标目录
# 这个放你需要备份的目录列表,我需要备份三个目录,所以写了三个
SRC_DIRS=("/root" "/etc/nginx/conf.d" "/usr/local/ServerStatus")
# 备份文件的名称,和SRC_DIRS相对应
BASE_NAME=("root" "conf" "server")
# 这儿写备份后的文件存放在什么地方
BACKUP_DIR="/backup"
# 检查备份目录是否存在,如果不存在则创建
if [ ! -d "$BACKUP_DIR" ]; then
mkdir "$BACKUP_DIR"
fi
# 当前日期
CURRENT_DATE=$(date +"%Y%m%d")
# 计算备份文件的索引,每5天切换一个备份
# 每五天备份一次,一共保持两个备份,一个五天前,一个十天前
INDEX=$((($CURRENT_DATE / 5) % 2))
# 循环备份每个目录
# 这儿的{0..2}和上面的SRC_DIRS数量相对应,0..2为三个文件夹
for i in {0..2}
do
# 构建备份文件名,包括日期和索引
BACKUP_FILE="${BACKUP_DIR}/${BASE_NAME[$i]}$((INDEX + 1)).tar.gz"
# 使用 tar 命令备份目录
tar czf "$BACKUP_FILE" "${SRC_DIRS[$i]}"
# 输出备份信息
echo "备份 ${SRC_DIRS[$i]} 到 ${BACKUP_FILE}"
done
# 确保配置文件存在,然后上传
# 将/root/sh/up.conf替换为你的上传配置文件
if [ -f "/root/sh/up.conf" ]; then
$qshell qupload /root/sh/up.conf
else
echo "配置文件不存在"
fi
{
"src_dir" : "/backup",
"ignore_dir" : true,
"bucket" : "xiny-like",
"rescan_local" : true,
"overwrite" : true,
"key_prefix": "backup/2/"
}
上传配置文件
{
"src_dir" : "/backup",
"ignore_dir" : true,
"bucket" : "xiny-like",
"rescan_local" : true,
"overwrite" : true,
"key_prefix": "backup/2/"
}
src_dir是本地备份文件的存放位置,bucket替换为七牛云空间创建时的名字,去查看空间名字
key_prefix替换为空间存储中文件夹的名字,我的文件将会存放在xiny-like存储空间中的backup/2/文件夹下,文件夹需要提前先创建。
定时备份
将脚本保存,然后添加到定时任务中
执行
crontab -e
输入
0 0 /5 * /bin/bash /root/sh/backup.sh
/root/sh/backup.sh为脚本位置,记得添加可执行权限
chmod 755 /root/sh/backup.sh
本文链接:
/archives/7tEuFqFi
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
薪萤-博客!
喜欢就支持一下吧
打赏
微信
支付宝