gitlab自動(dòng)定時(shí)備份文件備份失敗發(fā)送郵件功能實(shí)現(xiàn)
一、需求
為預(yù)防gitlab出現(xiàn)故障,每天定時(shí)備份,備份完成后把之前的備份文件刪除,備份成功或失敗的時(shí)候自動(dòng)發(fā)送郵件提醒,這里的gitlab為docker部署。
二、備份命令準(zhǔn)備
1)備份命令
創(chuàng)建一個(gè) gitlab_auto_backup.sh文件,文件內(nèi)容
#!/bin/bash # 進(jìn)入GitLab容器并執(zhí)行備份 --gitlab為docker名稱 docker exec -t gitlab gitlab-backup create # 查找并刪除1天前的備份文件 /home/gitlab/opt/backups/ 為docker掛載data的目錄 find /home/gitlab/opt/backups/ -type f -mtime +1 -name "*.tar" -exec rm -rf {} \;
把gitlab_auto_backup.sh文件放到服務(wù)器上,這里放到目錄 /home/gitlab/gitlab_auto_backup.sh
給權(quán)限
chmod +x /home/gitlab/gitlab_auto_backup.sh
2)讓備份命令定時(shí)自動(dòng)執(zhí)行
使用linux的cron來定時(shí)執(zhí)行上面創(chuàng)建的命令腳本文件,vi /etc/crontab 打開 crontab文件
每天零晨2點(diǎn)執(zhí)行
3)linux服務(wù)器郵件發(fā)送配置
配置發(fā)送郵件服務(wù)
安裝mailx sendmail,如果已安裝會(huì)提示已經(jīng)安裝,沒安裝會(huì)自動(dòng)安裝
yum install -y mailx sendmail
查看Active的狀態(tài)
systemctl status sendmail
如果active(running)正常,如果為dead則需要啟動(dòng)服務(wù),啟動(dòng)命令
systemctl start sendmail
配置服務(wù) /etc/mail.rc,以163郵箱為例
#打開配置文件 vi /etc/mail.rc
編輯配置文件增加配置
set from=xxxx@163.com #郵箱 set smtp=smtp.163.com #smtp地址 set smtp-auth-user=xxxx@163.com set smtp-auth-password=授權(quán)碼 #不是郵件的密碼,是申請smpt發(fā)送郵件的授權(quán)碼 set smtp-auth=login
郵件發(fā)送測試
1、直接發(fā)送內(nèi)容
發(fā)送內(nèi)容:test content
標(biāo)題:test title
收件人:123456@qq.com
echo "test content" | mail -s "test title" 123456@qq.com
2、使用文件內(nèi)容作為郵件內(nèi)容發(fā)送
把 /tmp/test.txt的內(nèi)容作為郵件內(nèi)容發(fā)送
mail -s "test title" 123456@qq.com < /tmp/test.txt
4)備份成功失敗發(fā)送郵件
修改備份命令,增加發(fā)送郵件。gitlab_auto_backup.sh完整內(nèi)容替換為:
#!/bin/bash # 進(jìn)入GitLab容器并執(zhí)行備份 docker exec -t gitlab gitlab-backup create # $?符號顯示上一條命令的返回值,如果為0則代表執(zhí)行成功,其他表示失敗,注間中括號前后有一個(gè)空格 if [ $? -eq 0 ];then echo "gitlab備份成功" | mail -s "gitlab備份成功" 123456@qq.com else echo "gitlab備份失敗" | mail -s "gitlab備份失敗" 123456@qq.com fi # 查找并刪除1天前的備份文件 find /home/gitlab/opt/backups/ -type f -mtime +1 -name "*.tar" -exec rm -rf {} \;
手動(dòng)執(zhí)行g(shù)itlab_auto_backup.sh文件測試效果
#執(zhí)行備份命令 /home/gitlab/gitlab_auto_backup.sh
完成!
到此這篇關(guān)于gitlab自動(dòng)定時(shí)備份文件備份失敗發(fā)送郵件功能實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)gitlab自動(dòng)定時(shí)備份內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
git rebase -i合并多次提交的實(shí)現(xiàn)
這篇文章主要介紹了git rebase -i合并多次提交的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07解決啟動(dòng)Azkaban報(bào)錯(cuò)問題:java.lang.NoSuchMethodError: com.google.comm
這篇文章主要介紹了啟動(dòng)Azkaban報(bào)錯(cuò):java.lang.NoSuchMethodError: com.google.common.collect.ImmutableMap.toImmutableMap,需要的朋友可以參考下2020-05-05如何給 GitHub commit 加個(gè)綠色圖標(biāo)(教程詳解)
這篇文章主要介紹了如何給 GitHub commit 加個(gè)綠色圖標(biāo),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08提高github下載速度的方法可達(dá)到2MB/s(100%有效)
這篇文章主要介紹了提高github下載速度的方法可達(dá)到2MB/s(100%有效),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08