gitlab自動定時備份文件,備份失敗發送郵件

来源:https://www.cnblogs.com/wei325/p/18250192
-Advertisement-
Play Games

一、需求 為預防gitlab出現故障,每天定時備份,備份完成後把之前的備份文件刪除,備份成功或失敗的時候自動發送郵件提醒,這裡的gitlab為docker部署。 二、備份命令準備 1)備份命令 創建一個 gitlab_auto_backup.sh文件,文件內容 #!/bin/bash # 進入Git ...


一、需求

為預防gitlab出現故障,每天定時備份,備份完成後把之前的備份文件刪除,備份成功或失敗的時候自動發送郵件提醒,這裡的gitlab為docker部署。

二、備份命令準備

1)備份命令

 創建一個 gitlab_auto_backup.sh文件,文件內容

#!/bin/bash

# 進入GitLab容器並執行備份 --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文件放到伺服器上,這裡放到目錄  /home/gitlab/gitlab_auto_backup.sh

給許可權

chmod +x /home/gitlab/gitlab_auto_backup.sh

2)讓備份命令定時自動執行

使用linux的cron來定時執行上面創建的命令腳本文件,vi /etc/crontab 打開 crontab文件

每天零晨2點執行

 

3)linux伺服器郵件發送配置

配置發送郵件服務

安裝mailx sendmail,如果已安裝會提示已經安裝,沒安裝會自動安裝

yum install -y mailx sendmail

查看Active的狀態

systemctl status sendmail

如果active(running)正常,如果為dead則需要啟動服務,啟動命令

systemctl start sendmail

配置服務 /etc/mail.rc,以163郵箱為例

#打開配置文件
vi /etc/mail.rc

編輯配置文件增加配置

set [email protected] #郵箱
set smtp=smtp.163.com #smtp地址
set smtp-auth-user=xxxx@163.com
set smtp-auth-password=授權碼 #不是郵件的密碼,是申請smpt發送郵件的授權碼
set smtp-auth=login

郵件發送測試

1、直接發送內容

發送內容:test content

標題:test title

收件人:[email protected]

echo "test content" | mail -s "test title" [email protected]

 

 2、使用文件內容作為郵件內容發送

把 /tmp/test.txt的內容作為郵件內容發送

mail -s "test title" [email protected] < /tmp/test.txt

 4)備份成功失敗發送郵件

修改備份命令,增加發送郵件。gitlab_auto_backup.sh完整內容替換為:

#!/bin/bash

# 進入GitLab容器並執行備份
docker exec -t gitlab gitlab-backup create

# $?符號顯示上一條命令的返回值,如果為0則代表執行成功,其他表示失敗,註間中括弧前後有一個空格
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 {} \;

手動執行gitlab_auto_backup.sh文件測試效果

#執行備份命令
/home/gitlab/gitlab_auto_backup.sh

 完成!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Python中有三種比較常見的方法類型,如類方法和靜態方法,實例方法,他們是面向對象編程中重要的概念。 1.類方法 類方法是通過使用裝飾器@classmethod來定義的,他的第一個參數是cls,指向類本身,允許我們在方法中操作類的屬性或調用其他類方法。 類方法的使用:類方法可以通過類名和實例對象來 ...
  • 大家好,我是碼農先森。 之前有朋友讓我分享從 PHP 轉 Go 的經歷,這次它來了。我主要從模仿、進階、應用這三個方面來描述轉 Go 的經歷及心得。模仿是良好的開端,進階是艱難的成長,應用是認知的提升。希望我的經歷對大家能有所啟發。 模仿 著名藝術家畢加索說過「模仿是人類一切學習的開端,然後才是創新 ...
  • 寫在前面 在之前的文章中我們有介紹過SpringAI這個項目。SpringAI 是Spring 官方社區項目,旨在簡化 Java AI 應用程式開發, 讓 Java 開發者想使用 Spring 開發普通應用一樣開發 AI 應用。 而SpringAI 主要面向的是國外的各種大模型接入,對於國內開發者可 ...
  • 目錄一、背景介紹1.1 爬取目標1.2 演示視頻1.3 軟體說明二、代碼講解2.1 調用API-搜索介面2.2 調用API-詳情介面2.3 API_KEY說明2.4 軟體界面模塊2.5 日誌模塊三、轉載聲明 一、背景介紹 1.1 爬取目標 用Python獨立開發了一款爬蟲軟體,作用是:通過搜索關鍵詞 ...
  • 大屏設置網卡開啟熱點後,經常收到反饋,手機端無法搜索到大屏熱點、或者手機連接大屏熱點失敗 這類問題一般有以下幾類情況: 1. 物理網卡IP與熱點網卡IP相同 2. 熱點網卡IP,非正常熱點IP(192.168.137.X) 熱點IP我們一般定為192.168.137.X,192.168.137.X是 ...
  • 在日常工作中,有時可能會需要獲取或修改客戶端電腦的系統時間,比如軟體設置了Licence有效期,預計2024-06-01 00:00:00到期,如果客戶手動修改了客戶端電腦時間,往前調整了一年,則軟體就可以繼續使用一年,如此迴圈往複,則Licence將形同虛設。所以有時候需要校驗客戶端電腦時間和服務... ...
  • PDF表單是PDF中的可編輯區域,允許用戶填寫指定信息。當表單填寫完成後,有時候我們可能需要將其設置為不可編輯,以保護表單內容的完整性和可靠性。或者需要從PDF表單中提取數據以便後續處理或分析。 之前文章詳細介紹過如何使用免費Spire.PDF庫通過C# 創建、填寫表單,本文將繼續介紹該免費.NET ...
  • 除了"在操作系統中修改時區信息,然後重啟.NET應用程式,使其生效"之外。如何在不修改操作系統時區的前提下,修改.NET中的預設時區呢? 這是一位 同學兼同事 於5月21日在技術群里問的問題,我當時簡單地研究了一下,就寫出來了。 現在寫文章分享給大家,雖然我覺得這種需求非常小眾,幾乎不會有人用到。 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...