天天看點

shell腳本定時删除大小超200M的日志檔案

作者:94版三國演義

需求

某個伺服器的日志檔案随着時間的增長越來越多,我不想自己一個個的删除,但是不删除的話,會很麻煩,萬一因為日志檔案導緻記憶體滿了就麻煩了!

實作步驟

1、寫好實作的腳本

我要查找>200M的日志檔案

find / -type f -size +200M -name "*.log"           
shell腳本定時删除大小超200M的日志檔案

2、删除腳本的指令

進入目錄 cd /dev

建立檔案夾 mkdir sh

進入檔案夾 cd sh

建立腳本檔案 touch delete_log.sh

編輯腳本檔案 vi delete_log.sh

shell腳本定時删除大小超200M的日志檔案

内容如下

#!/bin/bash
for name in $(find / -type f -size +100M -name "*.log");do
        rm -rf ${name}
done           
shell腳本定時删除大小超200M的日志檔案

在執行腳本之前,我們要看看是否有大小大于100M的日志檔案

sudo find / -type f -size +100M -name "*.log"           
shell腳本定時删除大小超200M的日志檔案

有三個符合的日志檔案;

現在我建立一個定時任務

這個是編輯定時任務

crontab -e           
shell腳本定時删除大小超200M的日志檔案
59 13 * * * /dev/sh/delete_log.sh           

目前是13:58 我希望13:59執行一次

等一下把

判斷腳本是否有效,就是檢視日志檔案,剛才符合條件的有三個,如果13:59之後,三個變成0個,那麼說明腳本生效

這裡有一個插曲,怎麼也不起作用,後來發現執行./delete_log.sh

-bash: ./log.sh: Permission denied

我以為是名稱的問題,把delete_log.sh改成log.sh也不行,後來發現執行方式不對

sh ./log.sh

shell腳本定時删除大小超200M的日志檔案

現在sh腳本起到效果了,哈哈哈哈哈