亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

shell清理指定目錄中指定天數之前的舊文件

 更新時間:2023年05月06日 10:39:32   作者:CRPER  
本文主要介紹了shell清理指定目錄中指定天數之前的舊文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

我們在服務器運行一些服務經常會產生很多臨時文件,
而有些臨時文件不定期處理很容易就打滿了整個磁盤;
所以有必要去定期清理,基于這個需求我們就可以搞一個腳本結合crontab或者服務調度這些來使用;

腳本實現

#!/bin/bash
# cleanup_old_files - 清理指定目錄中指定天數之前的舊文件
# $1: 目錄名稱
# $2: 天數
# $3: (可選)關鍵字,用于匹配文件名
function cleanup_old_files() {
    local dir="$1"     # 目錄名稱
    local days="$2"    # 天數
    local keyword="$3" # 匹配文件名的關鍵字
    # 參數有效性檢查
    if [ -z "$dir" ]; then
        echo "錯誤:目錄參數為空."
        return 1
    fi
    if [ ! -d "$dir" ]; then
        echo "錯誤:目錄 $dir 不存在."
        return 1
    fi
    if ! [[ "$days" =~ ^[0-9]+$ ]]; then
        echo "錯誤:天數參數無效."
        return 1
    fi
    # 如果未指定天數,則默認為當天
    if [ -z "$days" ]; then
        days=0
    fi
    # 構建查找命令,根據 $days 的值進行區(qū)分
    if [ "$days" -eq 0 ]; then
        find_cmd="find -L \"$dir\" -type d -o -type f -mtime 0"
    else
        find_cmd="find -L \"$dir\" -type d -o -type f -mtime +$days"
    fi
    # 如果指定了關鍵字,則加入查找命令中
    if [ -n "$keyword" ]; then
        find_cmd+=" -name \"*$keyword*\""
    fi
    # 打印完整命令
    echo "執(zhí)行命令: $find_cmd"
    # 執(zhí)行查找并刪除文件
    if [ "$days" -eq 0 ]; then
        echo "正在清理目錄 $dir 中當天創(chuàng)建的$(if [ -n "$keyword" ]; then echo "包含關鍵字 $keyword 的 "; else echo "所有 "; fi)文件..."
    else
        echo "正在清理目錄 $dir 中 $days 天之前創(chuàng)建的$(if [ -n "$keyword" ]; then echo "包含關鍵字 $keyword 的 "; else echo "所有 "; fi)文件..."
    fi
    # 通過-exec rm -rf {} + 刪除查找到的文件
    if eval "$find_cmd -exec rm -v -rf {} +" >/dev/null; then
        if [ "$days" -eq 0 ]; then
            echo "已刪除當天的舊文件."
        else
            echo "已刪除 $days 天之前的舊文件."
        fi
    else
        echo "刪除失敗."
        return 1
    fi
}
# 示例用法
# cleanup_old_files "/path/to/directory" 30 "log"
# cleanup_old_files "/path/to/directory" 0 "log"

總結

注意事項1:mtime 為0的情況

值得注意的是,mtime為0的時候,也就是我們想模擬當天,不能帶修飾符(+/-);
Debian和MacOS執(zhí)行的表現是沒有報錯,但是沒有任何操作,所以代碼里面做了一個區(qū)分;

注意事項2:/tmp為軟鏈的時候

若是find命令想要檢索到里面的內容,記得帶-L,否則沒法檢索出任何東西;

# 在mac下tmp是一個軟鏈鏈接到/private/tmp
ls -l /tmp
lrwxr-xr-x@ 1 root  wheel  11 Dec  2 19:37 /tmp -> private/tmp

帶上-L之后就能兼容Linux和MacOS兩個平臺,方便本地調試也能測試;

這個參數大體的作用就是遞歸去找,所以符號鏈接也能被檢索;
不帶的情況下默認都是只找硬鏈接,符號鏈接就會直接忽略。

到此這篇關于shell清理指定目錄中指定天數之前的舊文件的文章就介紹到這了,更多相關shell清理指定文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • shell通過正則匹配ip地址實例代碼

    shell通過正則匹配ip地址實例代碼

    這篇文章主要給大家介紹了關于shell如何通過正則匹配ip地址的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用shell具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • linux shell實現守護進程腳本

    linux shell實現守護進程腳本

    這篇文章主要介紹了linux shell實現守護進程腳本,非常簡單實用的代碼,這里推薦給小伙伴。希望大家能夠喜歡。
    2015-03-03
  • linux shell發(fā)送Email郵件的方法詳解

    linux shell發(fā)送Email郵件的方法詳解

    這篇文章主要介紹了linux shell發(fā)送Email郵件的方法,文中介紹的內容包括發(fā)送一封簡單的郵件、郵件的格式、郵件標題使用中文以及郵件內容使用html等相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • Shell $?獲取函數返回值或者上一個命令的退出狀態(tài)

    Shell $?獲取函數返回值或者上一個命令的退出狀態(tài)

    這篇文章主要介紹了Shell $?獲取函數返回值或者上一個命令的退出狀態(tài),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • linux shell 管道命令(pipe)使用及與shell重定向區(qū)別

    linux shell 管道命令(pipe)使用及與shell重定向區(qū)別

    這篇文章主要介紹了linux shell 管道命令(pipe)使用及與shell重定向區(qū)別,需要的朋友可以參考下
    2015-10-10
  • Shell+Curl網站狀態(tài)檢查腳本 抓出無法訪問的站點

    Shell+Curl網站狀態(tài)檢查腳本 抓出無法訪問的站點

    這篇文章主要介紹了Shell+Curl網站狀態(tài)檢查腳本 抓出無法訪問的站點,需要的朋友可以參考下
    2015-10-10
  • shell通過遍歷輸出兩個日期范圍內所有日期的方法

    shell通過遍歷輸出兩個日期范圍內所有日期的方法

    這篇文章主要介紹了在shell通過遍歷輸出兩個日期范圍內所有日期的方法,文中給出了詳細的示例代碼以及實現思路流程,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • Linux設置每晚定時備份Oracle數據表的操作命令

    Linux設置每晚定時備份Oracle數據表的操作命令

    這篇文章主要介紹了Linux設置每晚定時備份Oracle數據表,本文通過腳本命令給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • 基于shell的if和else詳解

    基于shell的if和else詳解

    下面小編就為大家?guī)硪黄趕hell的if和else詳解。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Obsidian斜杠命令用法詳解

    Obsidian斜杠命令用法詳解

    這篇文章主要介紹了終于定制出順手的Obsidian斜杠命令,利用斜杠命令?+?命令面板置頂?+?Quick?Add插入內容?+?Quick?Add別名命令,就可以根據自己習慣,實現定制化的斜杠命令,需要的朋友可以參考下
    2022-12-12

最新評論