crontab定时备份docker部署的gitea上传到华为OBS

#!/bin/bash

#获取当天的年月日
nowDate=`date "+%Y%m%d"`

#res=`/usr/bin/docker exec -it gitea /bin/sh -c "su git -c 'cd /data/ && /usr/local/bin/gitea dump --file '$nowDate'.zip'"`

#备份
res=`/usr/bin/docker exec -u git $(docker ps -qf "name=publish_gitea_1") bash -c 'cd /data/ && /usr/local/bin/gitea dump --file '$nowDate'.zip'`

echo '备份完成!'

#上传备份文件到OBS前的登录
/root/publish/cicd/data/gitea/obsutil config -i=<AK> -k=<SK> -e=<Endpoint>

#上传备份文件到OBS
/root/publish/cicd/data/gitea/obsutil cp /root/publish/cicd/data/gitea/$nowDate.zip obs://dsideal/HuangHai/giteaBackup/$nowDate.zip

echo '上传备份文件到OBS完成!'

#获取10天前的年月日
delData=`date -d"-10 day" +%Y%m%d`

#删除OBS上10天前的旧备份文件
/root/publish/cicd/data/gitea/obsutil rm obs://dsideal/HuangHai/giteaBackup/$delData.zip -f

echo '删除OBS上10天前的旧备份文件完成!'

#删除本地已上传到OBS的备份文件
rm -rf /root/publish/cicd/data/gitea/$nowDate.zip

echo '删除本地已上传到OBS的备份文件完成!'

需要备注的是 在crontab中执行docker不能带-it选项,因为it需要开终端。crontab中肯定没有终端,这会导致失败。

obsutil下载和安装说明

https://support.huaweicloud.com/utiltg-obs/obs_11_0003.html

 

设置crontab

crontab -u root -e

30 1 * * * /root/publish/cicd/data/gitea/backup.sh >/dev/null 2>&1

Crtl+x 退出并保存

 

posted @ 2022-05-25 16:58  缤纷世界  阅读(27)  评论(0编辑  收藏  举报