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

linux實(shí)現(xiàn)對上傳文件的定時備份、增量備份的方法

 更新時間:2020年04月24日 10:51:37   作者:魏元子  
這篇文章主要介紹了linux實(shí)現(xiàn)對上傳文件的定時備份、增量備份的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

介紹

如果你們使用的是類似阿里云的OSS存儲服務(wù),那么可以使用服務(wù)提供的定時備份,這樣可以不用考慮在服務(wù)器上做文件備份。

實(shí)際上想實(shí)現(xiàn)基礎(chǔ)的備份還是非常簡單的,我們平常使用tar、unzip等命令打包文件,在這個基礎(chǔ)上編寫一個shell腳本,利用linux的crontab功能添加一個定時執(zhí)行程序,這樣就可以簡單實(shí)現(xiàn)文件備份。但是這種方式在文件量不斷增大后還行嗎?答案肯定是不行,當(dāng)文件量不斷增加,所占存儲空間增大。這種簡單的備份方式會讓壓縮時間過長,占用過多的存儲空間。那么怎么解決這一問題呢?我們可以使用增量備份來避免每一次都對所有文件進(jìn)行備份壓縮而帶來的時間和空間的問題。

下面介紹一下實(shí)現(xiàn)方式(linux系統(tǒng)環(huán)境)

在編寫腳本之前需要先查看一下服務(wù)器上是否有crontab功能

注:在這里要贊一下這個crontab功能,確實(shí)十分實(shí)用

使用 rpm -qa|grep crontab命令查看是否已安裝crontab

在這里插入圖片描述

上圖所示,表明已安裝。

如果未安裝,則使用yum命令進(jìn)行安裝

yum -y install vixie-cron
yum -y install crontabs

vixie-cron 是 cron 的主程序;
crontabs 是用來安裝、卸裝、或列舉用來驅(qū)動 cron 守護(hù)進(jìn)程的表格的程序。

如果是內(nèi)網(wǎng)環(huán)境,需要離線安裝的可找要離線安裝包

1.啟動:systemctl start crond.service

在這里插入圖片描述

2.查看狀態(tài):systemctl status crond.service

在這里插入圖片描述

上圖所示,表明crontab已經(jīng)在運(yùn)行

下面貼上常用命令

systemctl start crond.service	//啟動命令
systemctl status crond.service	//查看狀態(tài)
systemctl stop crond.service	//關(guān)閉命令
systemctl restart crond.service	//重啟
systemctl enable crond.service	//開機(jī)運(yùn)行

有人用的不是systemctl命令,特此貼出service常用命令

service crond start  //啟動服務(wù)
service crond stop  //關(guān)閉服務(wù)
service crond restart //重啟服務(wù)
service crond reload //重新載入配置
service crond status //查看crontab服務(wù)狀態(tài)

創(chuàng)建腳本文件

 vim backup.sh

寫入腳本命令(注:這個腳本是從網(wǎng)上找的,未找到原出處)

#!/bin/bash
#好的做法
#根據(jù)項目不同來重命名該腳本
#例如 amountebak.sh or pandawillsbak.sh
#該腳本最好放在 $bakpp定義的絕對路徑部分
#你可以 在$bakpp下找到相應(yīng)的備份文件
#例如 /usr/backup/amountebak.sh or /usr/backup/pandawillsbak.sh


########## Init Path ########
# 在下面的參數(shù)中必須定義的參數(shù)有 $bakpp、$project、$projectpp
TAR=/bin/tar
# 存放備份文件的地方,以項目名稱區(qū)分
bakpp=/data/file_backup/"$project"
# 需要備份的文件夾,文件夾的路徑
project=file
projectpp=/data/
# parament for varible
ym=`date +%Y%m`
ymd=`date +%Y%m%d`
# 存儲備份文件的子目錄,以月份區(qū)分,他的上級目錄是$bakpp定義的
monthbakpp=$bakpp/$ym
gidpp=$monthbakpp
gidshot=gid$project$ym
# 完全備份的文件名
fullname=$ym
# 增量備份的文件名
incrementalname=$ymd
# Record the location of the log
log=$bakpp/$project.log

############ chk_full #######################
# 檢查完全備份是否存在,如果不存在就創(chuàng)建它

#this function check fullbackup file exist or not , if not then create fullbackup now

chk_full()
{
if [ -e "$monthbakpp"/"$project"_"$ym"_full.tar.gz ];then
echo ""$project"_"$ym"_full.tar.gz file exist!! ====`date +%Y-%m-%d-%T` " >>$log
else
tar_full
fi
}
######### chk_incremental ########
# 檢查增量備份是否存在
chk_incremental()
{
while [ -e "$monthbakpp"/"$project"_"$incrementalname"_incremental.tar.gz ]
do
incrementalname=`echo "$incrementalname + 0.1" | bc `
done
}
######## tar_incremental #######
# 執(zhí)行增量備份
tar_incremental()
{
cd $projectpp
echo "BEIGIN_TIME=====`date +%Y-%m-%d-%T` ==== CREATE "$project"_"$incrementalname"_incremental.tar.gz" >> $log
sleep 3
$TAR -g $gidpp/$gidshot -zcf $monthbakpp/"$project"_"$incrementalname"_incremental.tar.gz $project
echo "END_TIME========`date +%Y-%m-%d-%T` ==== CREATE "$project"_"$incrementalname"_incremental.tar.gz" >> $log
}

######## tar_full ###########
tar_full()
{
touch $gidpp/$gidshot
cd $projectpp
echo "BEIGIN_TIME=====`date +%Y-%m-%d-%T` ==== CREATE "$project"_"$fullname"_full.tar.gz" >> $log
$TAR -g $gidpp/$gidshot -zcf $monthbakpp/"$project"_"$fullname"_full.tar.gz $project
echo "END_TIME========`date +%Y-%m-%d-%T` ==== CREATE "$project"_"$fullname"_full.tar.gz" >> $log
}

########### backup ##############################
# 總體調(diào)用備份,此時會做相應(yīng)的檢查以確保備份前提準(zhǔn)備充分
backup()
{
if [ -d $monthbakpp ]; then
 chk_full
 chk_incremental
 tar_incremental
else
mkdir -p $bakpp/$ym
tar_full
fi
}

########### let's begin #############
# 先檢查$bakpp是否存在,如果不存在先創(chuàng)建后備份
if [ -d $bakpp ];then
backup
else
mkdir -p $bakpp
backup
fi
#advice you can create a file for put backup file, eg /usr/cctcc
#crontab
#mini hours day month week command
# */5 * * * * /home/mmroot/zbb/aaa.sh
# 0 1 */1 * * /home/mmroot/zbb/aaa.sh
# tar -ztf test.tar.gz 查看備份文件里面的文件

使用wq!命令保存文件

這個腳本文件有三處地方需要注意一下:

#存放備份文件的地方,以項目名稱區(qū)分
bakpp=/data/file_backup/"$project"

#需要備份的文件夾,文件夾的路徑
project=file
projectpp=/data/

上面的三個路徑要根據(jù)自己具體情況進(jìn)行更改

添加定時任務(wù):輸入命令

crontab -e

任務(wù)示例

05 03 * * * cd /data/file_backup/;sh file_backup.sh

然后使用 crontab -l 查看即可。
在備份完成后,可使用命令查看備份文件里面的文件

tar -ztf file.tar.gz //查看備份文件面文件

好了,到此定時備份、增量備份就結(jié)束了。

特此說明:更安全的方式是另找一個服務(wù)器做文件備份存儲服務(wù)器。在本機(jī)完成定時備份、增量備份后,將文件推送到文件備份存儲服務(wù)器。這樣可以保證在磁盤損壞的情況下達(dá)到備份功能

到此這篇關(guān)于linux實(shí)現(xiàn)對上傳文件的定時備份、增量備份的文章就介紹到這了,更多相關(guān)linux 上傳文件備份內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Ubuntu 18.04 安裝MySQL時未提示輸入密碼的問題及解決方法

    Ubuntu 18.04 安裝MySQL時未提示輸入密碼的問題及解決方法

    這篇文章主要介紹了Ubuntu 18.04 安裝MySQL時未提示輸入密碼的問題及解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • Linux系統(tǒng)設(shè)置tomcat開機(jī)自啟介紹

    Linux系統(tǒng)設(shè)置tomcat開機(jī)自啟介紹

    大家好,本篇文章主要講的是Linux系統(tǒng)設(shè)置tomcat開機(jī)自啟介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Linux系統(tǒng)中檢查系統(tǒng)重啟記錄方案

    Linux系統(tǒng)中檢查系統(tǒng)重啟記錄方案

    通過Linux系統(tǒng)的日志文件和特定命令,系統(tǒng)管理員可以有效監(jiān)控和分析系統(tǒng)的重啟歷史,以便及時發(fā)現(xiàn)并解決潛在的系統(tǒng)問題和安全漏洞,保證系統(tǒng)穩(wěn)定高效運(yùn)行,利用/var/log目錄和命令如last、uptime和journalctl
    2024-10-10
  • Centos下安裝Ansible的示例代碼

    Centos下安裝Ansible的示例代碼

    本篇文章主要介紹了Centos下安裝Ansible的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Linux中的幾種最佳文件系統(tǒng)

    Linux中的幾種最佳文件系統(tǒng)

    這篇文章主要介紹了Linux中的幾種最佳文件系統(tǒng),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Linux使用systemd服務(wù)和crontab實(shí)現(xiàn)Shell腳本開機(jī)自動運(yùn)行過程

    Linux使用systemd服務(wù)和crontab實(shí)現(xiàn)Shell腳本開機(jī)自動運(yùn)行過程

    在Linux系統(tǒng)中,使用systemd和crontab是實(shí)現(xiàn)Shell腳本開機(jī)自啟動的兩種常用方法,首先,需創(chuàng)建一個Shell腳本,將其放置在適當(dāng)目錄,通過編寫.service文件并將其移動到/etc/systemd/system/目錄下,可以設(shè)置為systemd服務(wù)
    2024-09-09
  • Jdk1.8的安裝簡易教程(Linux和windows)

    Jdk1.8的安裝簡易教程(Linux和windows)

    本文通過一段簡易的代碼給大家介紹Jdk1.8的安裝(Linux和windows),非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-08-08
  • linux系統(tǒng)安裝iso文件方法

    linux系統(tǒng)安裝iso文件方法

    在本篇文章中小編給大家整理了關(guān)于linux系統(tǒng)下怎么安裝iso文件的解決方法和步驟,有需要的朋友們學(xué)習(xí)下。
    2019-05-05
  • 在CentOS 7.2上安裝SuPHP的詳細(xì)方法

    在CentOS 7.2上安裝SuPHP的詳細(xì)方法

    這篇文章主要介紹了在CentOS 7.2上安裝SuPHP的詳細(xì)方法,本教程介紹從源代碼安裝CentOS 7.2上的SuPHP,因?yàn)闆]有可用于CentOS 7.2的SuPHP軟件包,需要的朋友可以參考下
    2020-02-02
  • linux查找日志cat和grep方式

    linux查找日志cat和grep方式

    在Linux系統(tǒng)中,我們常常需要查詢?nèi)罩疚募械奶囟ㄐ畔?這時候掌握一些關(guān)鍵字查詢技巧就顯得非常重要,例如,要查詢關(guān)鍵字前后30行,可以使用grep命令的'-C'選項,若要查詢兩個關(guān)鍵字同時出現(xiàn)的情況,可以將grep命令連續(xù)使用,對于壓縮后的文件
    2024-10-10

最新評論

常宁市| 绿春县| 兴文县| 沽源县| 天峨县| 若羌县| 长丰县| 十堰市| 甘洛县| 长沙市| 靖西县| 达孜县| 彝良县| 府谷县| 简阳市| 绥宁县| 北京市| 平昌县| 交口县| 乐都县| 罗江县| 诸暨市| 陕西省| 汪清县| 资源县| 桃园市| 万宁市| 沁水县| 平塘县| 河间市| 赣州市| 湟中县| 招远市| 阿图什市| 麻栗坡县| 乌兰察布市| 谢通门县| 修文县| 民和| 郧西县| 华蓥市|