18專案實戰 保留最近N天的備份檔案

2022-05-01 17:27:09 字數 1554 閱讀 1896

[需求1]:定期刪除/data目錄下修改時間的大於7天的檔案

[需求2]:定期清理/data/yy-mm-dd.tar.gz

該目錄僅工作日周一至周五自動生成檔案yy-mm-dd.tar.gz

希望只保留最近2天的備份檔案

無論過幾個節假日/data仍會有前兩個工作日的備份檔案

1.定期刪除/data目錄下修改時間的大於7天的檔案  

==> `使用find找到修改時間大於7天的,通過xargs/exec執行刪除`

2.定期清理/data/yy-mm-dd.tar.gz

該目錄僅工作日周一至周五自動生成檔案yy-mm-dd.tar.gz

希望只保留最近2天的備份檔案

無論過幾個節假日/data仍會有前兩個工作日的備份檔案

==> `核心就是保留最新的兩個備份檔案,ls -t可以通過修改時間進行排序,最新的放在最前面,通過awk進行分割,使用xargs/exec執行刪除第3個開始的檔案`

指令碼內容

[root@hadoop04 ~]# vim /tmp/delete_backup.sh

#!/usr/bin/env bash

# 定義備份目錄

backup_dir=/data

# 刪除超過7天的檔案

find "$" -mtime +7 | xargs rm -f

指令碼執行

# 新增執行許可權

[root@hadoop04 ~]# chmod +x /tmp/delete_backup.sh

# 設定不允許對指令碼檔案進行任何的修改,檔案不能刪除,不能更改,不能移動

[root@hadoop04 ~]# chattr +i /tmp/delete_backup.sh

# 根據實際情況建立定時任務

[root@hadoop04 ~]# crontab -e

* * * * * /tmp/delete_backup.sh

指令碼內容

[root@hadoop04 ~]# vim /tmp/delete_backup_file.sh

#!/usr/bin/env bash

# 定義備份目錄

backup_dir=/data

# 保留最新的兩個備份檔案

ls -t $/*.tar.gz | awk 'nr>2' | xargs rm -rvf

# ls -t $/*.tar.gz | awk 'nr>2' | bash

指令碼執行

[root@hadoop04 ~]# chmod +x /tmp/delete_backup_file.sh

[root@hadoop04 ~]# chattr +i /tmp/delete_backup_file.sh

# 根據實際情況建立定時任務

[root@hadoop04 ~]# crontab -e

* * * * * /tmp/delete_backup.sh

shell指令碼(保留最近N天的備份)

bin bash 保留最近n天的備份 2019年6月16日11 32 59 需求 檔案備份格式為date f h m 節假日不備份 無論過幾個節假日,始終保留最新n天的備份 模擬備份 mkdir pwd test touch pwd test date d 1 day ago f h m tar.g...

07 專案實戰

top 案例1 編寫一鍵部署軟體指令碼 案例2 啟動指令碼 案例3 編寫監控指令碼 案例4 編寫安全檢測指令碼 案例5 編寫進度顯示指令碼 本案例要求編寫指令碼實現一鍵部署nginx軟體 web伺服器 實現此案例需要按照如下步驟進行。步驟一 準備工作 1 判斷yum源是否可用 通過yum repol...

軟體RAID5專案實戰!!!

專案背景 在我們的實際生產環境中,我們常常對磁碟的容量有較大的要求,但是一塊特別大的磁碟,很貴,我們伺服器上一般的磁碟都不會特別大,這個時候我們就可以把多個磁碟以某種方式組合到一起使用,同時我們要求可以進行資料備份和冗餘。試驗環境 虛擬機器vmware workstation 12 player 伺...