Linux(openEuler22.03) 定時備份任務 解決方案

目錄

  • 定時備份與清理服務
    • 環境
    • 需求概述
    • 步驟詳解
      • 1. 配置 rsyncd 服務
        • 在 `backup 服務器`上配置 rsyncd
      • 2. 在 nfs01 和 web01 上配置備份腳本
        • 腳本:backup_configs.sh
        • 配置定時任務
      • 3. 在 backup 服務器上配置同步和清理腳本
        • 腳本:cleanup_backups.sh
        • 配置定時任務
      • 4. 在backup服務器查看備份文件信息并發送備份狀態郵件

定時備份與清理服務

環境

  • 操作系統:openEuler 22.03
  • 備份服務器:backup
  • 需要備份的服務器:nfs01, web01
  • 備份目錄:/backup/

需求概述

  1. 定時備份 nfs01web01 的配置文件(/etc)到 backup 服務器,備份文件格式為 /backup/<ip地址>/conf-<時間>.tar.gz
  2. 定時同步 nfs01web01 的備份到 backup 服務器的 /backup/ 目錄。
  3. 定時刪除 nfs01web01 7天之前的備份。
  4. backup 服務器上發送備份狀態郵件。

步驟詳解

1. 配置 rsyncd 服務

backup 服務器上配置 rsyncd
  1. 創建或編輯 /etc/rsyncd.conf 配置文件,內容如下:
# 全局配置
fake super = yes
uid = rsync
gid = rsync
use chroot = no
max connections = 4
ignore errors
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock# 模塊配置
[backup]path = /backupcomment = Backup Directoryread only = nolist = yesauth users = backupusersecrets file = /etc/rsyncd.secrets
  1. 創建用戶認證文件 /etc/rsyncd.secrets,內容如下:
cat /etc/rsyncd.secretsbackupuser:password
  1. 設置文件權限:
useradd -s /sbin/nologin -M rsync
mkdir -p /backup
chown -R rsync.rsync /backupchmod 600 /etc/rsyncd.secrets
  1. 啟動 rsyncd 服務:
systemctl enable rsyncd --now
systemctl restart rsyncd

2. 在 nfs01 和 web01 上配置備份腳本

腳本:backup_configs.sh
  1. 在每臺需要備份的服務器(rsync客戶端)上創建腳本 /usr/local/bin/backup_configs.sh,內容如下:
#!/bin/bash
#desc backup /etc to backupserver#變量
# 獲取當前時間
TIMESTAMP=`date +%F_%H`# 本地配置文件目錄
IP=`hostname -I | awk '{print $1}'`
CONFIG_DIR="/etc"
BACKUP_DIR="/backup/${IP}"
BACKUP_FILE="conf-${TIMESTAMP}.tar.gz"#命令
# 打包配置文件
tar -czf /tmp/${IP}/$BACKUP_FILE $CONFIG_DIR &> /dev/null
#從根目錄開始,將$CONFIG_DIR目錄中的文件打包并壓縮到一個名為$BACKUP_FILE的歸檔文件中,該文件將被保存在/tmp目錄下。#保存md5
md5sum /tmp/${IP}/${BACKUP_FILE} > /tmp/${IP}/fingerprint.md5# 使用rsync傳輸備份文件到備份服務器
rsync -avz --password-file=/etc/rsync.pass /tmp/${IP} backupuser@backup::backup/$BACKUP_DIR/# 刪除臨時備份文件
rm /tmp/$BACKUP_FILE# 記錄日志
echo "Backup completed for $(hostname) at $TIMESTAMP" >> /var/log/backup_configs.log
  1. 創建 rsync 密碼文件 /etc/rsync.pass,內容如下:
cat /etc/rsync.passpasswordchmod 600 /etc/rsync.pass
  1. 設置腳本權限:
chmod +x /usr/local/bin/backup_configs.sh
配置定時任務

使用 crontab 添加定時任務,每天凌晨2點執行備份腳本:

crontab -e

添加以下內容:

0 2 * * * /usr/local/bin/backup_configs.sh

3. 在 backup 服務器上配置同步和清理腳本

腳本:cleanup_backups.sh
  1. 創建腳本 /usr/local/bin/cleanup_backups.sh,內容如下:
#!/bin/bash# 備份目錄
BACKUP_DIR="/backup/"# 刪除7天之前的備份文件
find $BACKUP_DIR -type f -name "conf-*.tar.gz" -mtime +7 -exec rm -f {} \;# 記錄日志
echo "Cleanup completed at $(date +%Y%m%d%H%M%S)" >> /var/log/cleanup_backups.log
  1. 設置腳本權限:
chmod +x /usr/local/bin/cleanup_backups.sh
配置定時任務

使用 crontab 添加定時任務,每天凌晨3點執行清理腳本:

crontab -e

添加以下內容:

0 3 * * * /usr/local/bin/cleanup_backups.sh

4. 在backup服務器查看備份文件信息并發送備份狀態郵件

  1. 關于查看信息:
find /tmp -name "conf-*.tar.gz" | xargs ls -lhd | awk -F'[ /]+' 'BEGIN{print "IP FILE Size"}{print $(NF-1),$NF,$5}' | column -t
IP          FILE                               Size
10.0.0.124  conf-2024-05-17_5_22:11:38.tar.gz  12M
10.0.0.124  conf-2024-05-17_5_22:12:40.tar.gz  12M
tmp         conf-2024-05-17_5.tar.gz           12M2. md5驗證
```shell
find /backup/ -name "fingerprint.md5" | xargs md5sum -c >> result.txt
3. 關于郵件發送:
```shell
#!bin/bash
#desc show and mail#show
find /tmp -name "conf-*.tar.gz" | xargs ls -lhd | awk -F'[ /]+' 'BEGIN{print "IP FILE Size"}{print $(NF-1),$NF,$5}' | column -t > result.txt#mail
mail -s "Backup Result Today" xxxx@qq.com  < result.txt

具體如何配置郵件發送請見我之前的筆記:
如何在openEuler22.03配置mail.rc給郵箱發郵件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14229.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14229.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14229.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

游戲陪玩/在線租號/任務系統網站源碼

源碼介紹 游戲陪玩系統/在線租號系統/小姐姐陪玩任務系統/網游主播任務威客平臺源碼/絕地吃雞LOL在線下單/帶手機端/聲優線上游戲任務系統網站源碼 界面美觀,功能齊全,已對接支付,安裝教程放源碼壓縮包里了! 界面截圖 源碼下載 https://download.csdn.net/download/huayula…

【計算機網絡原理】淺談應用層協議的自定義和傳輸層UDP協議的總結

?????? write in front ??????? ?????????大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之處請多多諒解&#xff0c;讓我們一起共同進步????? . ?? ?xiaoxie?????????—CSDN博客 本文由xiaoxie????????? 原創 CSDN 如…

如何在cPanel面板中開啟雙因素身份驗證

本周有一個客戶&#xff0c;購買Hostease的主機&#xff0c; 客戶購買的是Linux虛擬主機&#xff0c;帶cPanel面板的。詢問我們的在線客服&#xff0c;如何加強他的cPanel的安全性。cPanel的雙因素身份驗證功能可以幫助幫客戶加固安全性。 雙因素身份驗證(2FA)是一種增強安全性…

【虛擬機軟件】 VMware Workstation Pro 17 新建 Linux 虛擬機教程(CentOS 7 版本)

文章目錄 下載安裝 VMware Workstation Pro 17 軟件下載 Linux 的 ISO 映像文件Linux版本選擇 新建虛擬機準備配置新建安裝 后續設置文章導航 我是一名立志把細節說清楚的博主&#xff0c;歡迎【關注】&#x1f389; ~ 原創不易&#xff0c; 如果有幫助 &#xff0c;記得【點贊…

slam14講(第8講、前端里程計)LK光流、直接法

直接法的引出 因為第7講大部分都是講特征點法&#xff0c;通過提取orb特征點和點的描述子&#xff0c;來構建兩幀圖像之間的特征點對應關系。這種方法會有缺點&#xff1a; 關鍵點和描述子提取計算耗時&#xff0c;如果相機的頻率高&#xff0c;則slam算法大部分耗時被占。特…

com.alibaba.fastjson.JSONObject循環給同一對象賦值會出現“$ref“:“$[0]“現象問題

1、問題描述 有些場景下&#xff0c;我們會選擇用JSONObject代替Map來處理業務邏輯&#xff0c;但是使用JSONObject時有一個需要注意的地方&#xff1a;在處理JSONObject對象時&#xff0c;引用的com.alibaba.fastjson.JSONObject&#xff0c;在一個集合中&#xff0c;循環給這…

【MySQL精通之路】InnoDB(10)-行格式

目錄 1.表數據結構 1.1 聚集索引數據結構 1.2 輔助索引數據結構 2.行格式 2.1 REDUNDANT行格式 2.2 REDUNDANT存儲特性 2.3 COMPACT行格式 2.4 COMPACT存儲特性 2.5 DYNAMIC行格式 2.6 DYNAMIC存儲特性 2.7 COMPRESSED行格式 2.8 COMPRESSED存儲特性 3.定義表格的…

數組-區間合并

一、題目描述 二、題目思路 這里提供滿足基本要求的解題思路&#xff1a; 1.先對列表內按照start大小升序排序&#xff0c;這里創建Comparator接口的實現類&#xff0c;重寫compare方法。 2.遍歷intervals&#xff0c;設置laststart、lastend兩個變量與當前區間相比較&#…

Ansible實戰YAML語言完成apache的部署,配置,啟動全過程

&#x1f3e1;作者主頁&#xff1a;點擊&#xff01; &#x1f3dd;?Ansible專欄&#xff1a;點擊&#xff01; ??創作時間&#xff1a;2024年5月24日15點59分 目錄 &#x1f4af;趣站推薦&#x1f4af; &#x1f38a;前言 ??YAML語言回顧 &#x1f386;1.編寫YAML文…

centos 安裝nginx 并配置https ssl

進入你要安裝的目錄 一般是/usr/local/ wget https://nginx.org/download/nginx-1.24.0.tar.gz解壓安裝包&#xff1a;使用以下命令解壓下載的Nginx安裝包&#xff1a; tar -zxvf nginx-1.24.0.tar.gz在編譯和安裝Nginx之前&#xff0c;確保您的系統上已安裝了必要的編譯工具和…

flume channel和interceptor簡介及官方用例

一、Flume Channels channel是在代理上暫存事件的存儲庫。Source 添加事件&#xff0c;Sink 將其刪除。 1、Memory Channel 事件存儲在具有可配置最大大小的內存中隊列中。它非常適合需要更高吞吐量的流&#xff0c;但在agent發生故障時會丟失暫存數據 Property Name Defau…

k近鄰和kd樹

K近鄰 選取k值的時候可以采用交叉驗證的方法 一般采用歐氏距離 kd樹 采用樹這個特殊的數據結構來實現k近鄰算法 先假設是二維的情況 下面講解kd樹的完整構造過程 找這個中位數是按照每棵子樹來創建的 前提是已經有了一棵kd樹,然后來一個實例點

java組合設計模式Composite Pattern

組合設計模式&#xff08;Composite Pattern&#xff09;是一種結構型設計模式&#xff0c;它允許你將對象組合成樹形結構來表示“部分-整體”的層次結構。組合模式使得客戶端對單個對象和組合對象的使用具有一致性。 // Component - 圖形接口 interface Graphic {void draw()…

Python UDP編程簡單實例

TCP是建立可靠的連接&#xff0c;并且通信雙方都可以以流的形式發送數據。 相對于TCP&#xff0c;UDP則是面向無連接的協議&#xff0c;不需要建立連接&#xff0c;只需要知道對方IP地址和端口號&#xff0c;就可以直接發送數據包。但是只管發送不保證到達。 雖然UDP傳輸數據…

Docker快速部署Seata的TC服務以及微服務引入Seata教程

目錄 一、使用docker部署Seata的TC服務 1、拉取TC服務鏡像 2、創建并運行容器 ?3、修改配置文件 4、在Nacos中添加TC服務的配置 5、重啟TC服務 二、微服務集成Seata 1、引入依賴 2、修改配置文件 Seata是阿里的一個開源的分布式事務解決方案&#xff0c;能夠為分布…

STM32學習和實踐筆記(31):輸入捕獲實驗

1.輸入捕獲介紹 在定時器中斷實驗章節中我們介紹了通用定時器具有多種功能&#xff0c;輸入捕獲就是其中一種。STM32F1除了基本定時器TIM6和TIM7&#xff0c;其他定時器都具有輸入捕獲功能。輸入捕獲可以對輸入的信號的上升沿&#xff0c;下降沿或者雙邊沿進行捕獲&#xff0c;…

【博客主頁】博客主旨 精華

前言 與博客園不同, 最近CSDN在進行資本化的轉型.其一部分的VIP代碼和小冊我也有相關消費, 個人認為是一部分做的比較成過, 另一部分又不是特別成功. 其CSDN博客已經失去其原本技術交流的意義, 變成一種免費的知識引流和收費交流. 這其實與我們的開源社區背道而馳, 但是又吸引…

世界電信日 | 紫光展銳以科技創新支撐數字經濟可持續發展

專注科技創新&#xff0c;打造全球數字經濟技術基石 紫光展銳堅持科技創新,為數字經濟蓬勃發展提供基石力量。 面對5G-A技術的巨大潛力&#xff0c;紫光展銳與眾多生態伙伴緊密合作&#xff0c;積極推動5G-A的商用進程。紫光展銳提出的兩項R18 eRedCap演進方案已被3GPP標準采…

為什么要實現設備之間的互通?

設備之間的互通是電信設備的普遍性要求&#xff0c;特別是在接入網領域中&#xff0c;不同廠商的局端設備與用戶端&#xff08;終端&#xff09;設備之間的互通顯得尤其重要。 一、互通能為產業鏈的各個環節帶寬積極影響。 &#xff08;1&#xff09;對用戶而言&#xff0c;互…

安裝新版的Ubuntu WSL以使能BBR擁塞控制算法

【多次嘗試成功的方案】通過> wsl - -list -online列出可以安裝的版本&#xff0c;用命令> wsl --install -d Ubuntu-24.04 安裝。 【未成功的方案】通過掛在ubuntu24.04.iso到E盤后&#xff0c;用命令> wsl --import Ubuntu24.04 C:\WSL\Ubuntu24.04\ E:\ --versio…