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 退出并保存
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2016-05-25 CentOS利用inotify+rsync实现文件同步
2016-05-25 CentOS两台服务器利用scp拷贝文件