最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux實現(xiàn)文件定期本地備份/異地備份/刪除備份的腳本

 更新時間:2022年10月13日 09:17:37   作者:Mrwhite86  
數(shù)據(jù)備份的意義就在于,當受到網(wǎng)絡攻擊、入侵、電源故障或者操作失誤等事故的發(fā)生后,可以完整、快速、簡捷、可靠地恢復原有系統(tǒng)。本文為大家準備了文件定期本地備份/異地備份/刪除備份的腳本,希望對你們有所幫助

一.背景

1.總會出出現(xiàn)環(huán)境上的數(shù)據(jù)丟失,在沒有備份的情況下會非常的被動,不管是由于病毒還是人為的原因造成的程序、數(shù)據(jù)被刪除,有時候后悔已經(jīng)來不及,不如提前做到數(shù)據(jù)的備份,而異地備份也更加的保險一點。

2.數(shù)據(jù)備份的意義就在于,當受到網(wǎng)絡攻擊、入侵、電源故障或者操作失誤等事故的發(fā)生后,可以完整、快速、簡捷、可靠地恢復原有系統(tǒng),在一定的范圍內(nèi)保障系統(tǒng)的正常運行。

二.依賴功能介紹

1.expect

作用:expect工具是一個根據(jù)腳本與其他交互式程序進行交互

安裝語句:yum install expect

參考文檔:Linux之expect操作詳解

2.cron

作用:可以根據(jù)配置文件約定的時間來執(zhí)行特定的任務

參考文檔:

Linux Crontab 定時任務

cron表達式

3.liunx的三個時間atime,mtime,ctime

作用:定期刪除備份時一般備份文件的mtime來進行刪除

參考文檔:詳解Linux中atime,mtime,ctime的使用場景

三.本地備份腳本

1.本地備份命令測試

mkdir -p /root/backup/`date "+%Y-%m-%d"`
tar -zcvPf /root/backup/`date "+%Y-%m-%d"`/test20221009.tar.gz /root/test20221009

2.封裝shell腳本:compress_backup.sh

#!/bin/bash
source_folder=/root/test20221009
backup_folder=/root/backup/`date "+%Y-%m-%d"`
source_folder_name=`echo $source_folder |awk -F "/" '{print $3}'`.tar.gz
echo "source_folder:$source_folder"
echo "backup_folder: $backup_folder"
echo "source_folder_name: $source_folder_name"

#新建立文件夾
mkdir -p /root/backup/`date "+%Y-%m-%d"`
#壓縮命令
tar -zcvPf $backup_folder/$source_folder_name  $source_folder
echo "$source_folder_name文件備份成功"

3.加入crond定時任務并將輸出與錯誤重定向至文件

編輯添加crond定時任務列表

crontab -e

設置每天00:00執(zhí)行一次備份任務,并將標準輸出與標準錯誤重定向至日志文件

0 0 * * * sh /root/backup/compress_backup.sh 2>&1 > /root/backup/log_$(date +\%Y-\%m-\%d)

測試查看任務執(zhí)行情況:

tail -5 /var/log/cron

查看備份文件與本地日志正確生成

四.異地備份腳本

1.異地備份命令測試:

scp -C -r /root/backup/2022-10-10/ mrswhite@192.168.37.9:/root/back_up_offsite

提示輸入密碼后進行備份

查看對端文件備份成功

2.封裝expect腳本offsite_backup.expect,當提示輸入密碼時可自動對應輸入密碼

#!/usr/bin/expect -f
# 獲取當前日期 例如:2022-10-12

set date [ clock format [ clock seconds ] -format "%Y-%m-%d" ]

# 傳輸用戶名
set username mrswhite
# 對端hostIP地址
set host 192.168.37.9
# 密碼
set password test20221012
#設置本地傳輸路徑-前綴
set source_folder /root/backup
#設置兌換傳輸路徑
set backup_folder /root/back_up_offsite


#  expect默認timeout為30S  超過30s未傳輸完會停止,設置為 -1 則不限制超時時間
set timeout -1

#                    壓縮  遞歸   本地絕對路徑           用戶名   目標IP   目標路徑
 spawn  /usr/bin/scp  -C   -r    $source_folder/$date/   $username@$host:$backup_folder

expect  {
"*yes/no" {send "yes\r";exp_continue}
"*password:" {send "$password\r"}
}

expect eof

運行后查詢結果,已實現(xiàn)了無人值守備份的功能

查看異地文件已生成:

3.加入crond定時任務并將輸出與錯誤重定向至文件

crontab -e

設置每天02:00執(zhí)行一次異地備份任務,(給本地備份充足的時間預留)并將標準輸出與標準錯誤重定向至日志文件

0 1 * * * expect /root/backup/offsite_backup.expect 2>&1 >  /root/backup/offsite_log_$(date +\%Y-\%m-\%d)

修改系統(tǒng)時間,重啟crond服務等待定時任務的執(zhí)行,并查詢?nèi)罩荆?/p>

date -s "2022-10-10 00:59:50"
service crond restart
tail -5 /var/log/cron

檢查異地文件備份成功:

五.定期刪除備份

1.定期刪除命令測試:

find /root/backup/ -mtime +180 | xargs rm -rf {}  #刪除180天前的文件與文件夾的信息

2.封裝shell腳本delete_expire_backupfile.sh,清理的目錄與過期時間可配置

#!/bin/bash

#待清除目錄
dir=/root/backup/
#文件的過期周期
day_expireDay=10

#刪除最終為day_expireDay前的備份文件與文件夾信息
find $dir -mtime +$day_expireDay | xargs rm -rf {}
echo "$dir下的$day_expireDay天前的文件清理成功"

查看文件清理效果如下:

3.加入crond定時任務并將輸出與錯誤重定向至文件

crontab -e

設置每天00:00執(zhí)行一次異地備份任務,并將標準輸出與標準錯誤重定向至日志文件

0 0 * * * sh /root/backup/delete_expire_backupfile.sh 2>&1 >  /root/backup/delete_log__$(date +\%Y-\%m-\%d)

修改系統(tǒng)時間,重啟crond服務等待定時任務的執(zhí)行,并查詢?nèi)罩?,文件已清理成?/p>

date -s "2022-10-12 23:59:50"
service crond restart
tail -5 /var/log/cron

六.github腳本地址

github地址

到此這篇關于Linux實現(xiàn)文件定期本地備份/異地備份/刪除備份的腳本的文章就介紹到這了,更多相關Linux文件定期備份內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • shell學習之printf命令格式化輸出語句

    shell學習之printf命令格式化輸出語句

    printf命令模仿C程序庫(library)里的printf()庫程序(library routine)。它幾乎復制了該函數(shù)的所有功能。不過在Shell層級的版本上,會有些差異。下面這篇文章就給大家主要介紹了shell中printf命令格式化輸出語句的相關資料,需要的朋友可以參考下。
    2017-01-01
  • Linux rpm 命令參數(shù)使用詳解

    Linux rpm 命令參數(shù)使用詳解

    RPM是RedHat Package Manager(RedHat軟件包管理工具)類似Windows里面的“添加/刪除程序”。本文給大家介紹Linux rpm命令參數(shù)使用詳解,需要的童鞋一起看看吧
    2015-10-10
  • Bash Shell 注釋多行的幾種方法

    Bash Shell 注釋多行的幾種方法

    這篇文章主要介紹了Bash Shell注釋多行的幾種方法,需要的朋友可以參考下
    2014-12-12
  • Linux下.tar.xz文件的解壓教程詳解

    Linux下.tar.xz文件的解壓教程詳解

    xz這個壓縮可能很多都很陌生,不過您可知道xz是絕大數(shù)linux默認就帶的一個壓縮工具。接下來通過本文給大家分享Linux下.tar.xz文件的解壓教程詳解,需要的朋友參考下吧
    2017-10-10
  • Shell獲取文件的文件名和擴展名的例子

    Shell獲取文件的文件名和擴展名的例子

    這篇文章主要介紹了Shell獲取文件的文件名和擴展名的例子,簡明版的代碼實例,看了就懂,需要的朋友可以參考下
    2014-06-06
  • 五個常用的Linux監(jiān)控腳本代碼

    五個常用的Linux監(jiān)控腳本代碼

    為大家提供五個常用linux監(jiān)控腳本(查看主機網(wǎng)卡流量、系統(tǒng)狀況監(jiān)控、監(jiān)控主機的磁盤空間,當使用空間超過90%就通過發(fā)mail來發(fā)警告、監(jiān)控CPU和內(nèi)存的使用情況、全方位監(jiān)控主機),有需要的朋友不妨看看哦
    2013-02-02
  • linux 命令每天必學之tar命令

    linux 命令每天必學之tar命令

    這篇文章主要介紹了linux 命令每天必學之tar命令,需要的朋友可以參考下
    2015-11-11
  • Linux 中makefile的命令包定義及使用

    Linux 中makefile的命令包定義及使用

    這篇文章主要介紹了Linux 中makefile的命令包定義及使用的相關資料,需要的朋友可以參考下
    2017-03-03
  • 對Shell 腳本加密的方法

    對Shell 腳本加密的方法

    shc是一個加密shell腳本的工具.它的作用是把shell腳本轉換為一個可執(zhí)行的二進制文件
    2013-01-01
  • shell 編程中空格的使用方法

    shell 編程中空格的使用方法

    這篇文章主要介紹了shell 編程中空格的使用方法,需要的朋友可以參考下
    2015-01-01

最新評論

涿鹿县| 蚌埠市| 黑龙江省| 郁南县| 许昌县| 岚皋县| 通渭县| 黄冈市| 修文县| 拉萨市| 威海市| 岳西县| 高密市| 闻喜县| 贡嘎县| 新郑市| 镇坪县| 和林格尔县| 宜州市| 榆树市| 伊宁县| 横峰县| 定安县| 牡丹江市| 西乡县| 竹山县| 威远县| 东莞市| 会东县| 崇左市| 永济市| 镇坪县| 乐业县| 修文县| 沂南县| 房山区| 锡林浩特市| 乡城县| 黄大仙区| 襄樊市| 双辽市|