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 退出並保存

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章