linux定時刪除檔案或資料夾

2021-07-14 12:56:24 字數 1968 閱讀 9061

今天讓我寫乙個刪除伺服器專案日誌的指令碼並且每天定時跑。於是從網上借鑑了些經驗,具體操作如下。

一、常用的命令

1、查詢命令  find  

在刪除日誌前,首先要做的是查詢日誌所在的目錄。  命令常用格式:find   目錄path   -name "需要匹配的檔案"

示例:find  /gvat/log/  -name  "*.log"                         //表示查詢/gvat/log/目錄下的所有帶log字尾的檔案

2、刪除命令  rm

當找到需要的刪除的檔案時,可執行刪除命令     命令常用格式  rm  -rf   檔名/目錄名

示例:rm  -rf   user.admin.log                                 //表示刪除user.admin.log檔案 其中

注:rf這兩個引數分別表示的意思是   r 表示遞迴刪除當前目錄和所有下級目錄的檔案   f表示同意刪除操作,不加這個引數 每次刪除時都會提示並讓你確認是否刪除檔案

3、檔案編輯命令  vi

當需要對檔案進行編輯時,可使用vi 命令進入,輸入i  可進入編輯狀態。

格式: vi    檔名                    //注:如果檔案不存在 會自動建立乙個

4、檔案許可權修改命令 chmod

當需要對檔案的操作許可權進行修改時,可以使用chmod命令進行修改。

示例:chmod  +w  檔名                 //給檔案增加寫入許可權

注:w  表示寫入               r   表示讀取                     x   表示執行

二、編寫刪除日誌的指令碼

1、新建並開啟乙個指令碼檔案

vi  /gvat/auto-delete-log.sh                          //指令碼的路徑與名字可以隨意,根據自己的實際情況而定

2、將命令寫入指令碼可以更方便的進行操作,特別是在命令比較多的情況下。具體的刪除日誌指令碼內容如下:

find  /gvat/log  -mtime  +7   -name "*.log"  -exec  rm -rf {} \;

上面的命令用於刪除檔案,由於我們的每天的日誌有乙個時間資料夾,因此需要刪除資料夾及裡面的日誌檔案,內容如下:

find /gvat/log -mtime +7 -exec rm -rf {} \;

注:-mtime +7 表示查詢7天之前的檔案

-exec 是shell指令碼中的呼叫並執行exec後面的指令的命令

{}  表示檔名,即前面find命令查詢出來的所有檔案

\; 這個是對分號的轉義,因為不同系統直接使用分號意義不一樣,所以在這裡用轉義符號表示這裡的分號只是普通分號

3、給指令碼增加可執行的許可權

chmod  +x  /gvat/auto-delete-log.sh

三、加入定時任務

為了不每天手動執行指令碼,我們可以將指令碼加入到定時任務中,這樣系統每天就會自動執行我們的指令碼

定時任務配置命令如下:

crontab -e

使用這個命令可以開啟定時任務的編輯,和編輯檔案一樣在定時任務配置中輸入以下內容

00  22 * * * /gvat/auto-delete-log.sh

注:00 22 表示晚上22點整

另外定時執行指令碼時會有執行內容的輸出,如果不需要儲存我們的定時任務輸出執行的內容可以在命令後增加以下內容:

00  22 * * * /gvat/auto-delete-log.sh  >/dev/null 2>&1

說明:   >  表示重定向

/dev/null    這是系統的乙個空裝置,任何東西進入這個裝置後將在系統中不存在

2 表示標準錯誤輸出

&表示等同於

整個意思可以理解為,將刪除日誌指令碼的輸出內容重定向輸出到空裝置中,產生的錯誤日誌一樣輸出到空裝置中

以上就是整個過程,不足之處請多指正

刪除亂碼檔案或資料夾

linux上出現亂碼檔案可能是由於錯誤刪除 複製 修改檔名導致的,這時候再使用rm命令會提示沒有這個檔案或資料夾,使用ftp工具進行刪除也是不行的,刪不掉 1 進入亂碼檔案或資料夾所在目錄,使用ll i找出檔案或資料夾id,如果有亂碼會出現以下顯示 root dev 20161229 ll i to...

php 刪除檔案或資料夾

符 抑制錯誤但不能處理錯誤 只是不丟擲 warning 刪除檔案和資料夾 function deldir path 遍歷檔案 foreach result as rkey rval 拼接乙個完整路徑 npath path rval 判斷是否是資料夾 if is dir npath 判斷是否是檔案 i...

python 刪除檔案或資料夾

os.remove path 刪除檔案 path.如果path是乙個目錄,丟擲 oserror錯誤。如果要刪除目錄,請使用rmdir remove 同 unlink 的功能是一樣的 在windows系統中,刪除乙個正在使用的檔案,將丟擲異常。在unix中,目錄表中的記錄被刪除,但檔案的儲存還在。im...