天天看點

linux清空日志shell腳本,linux清空日志shell腳本

1、find與xargs結合清空日志腳本案例

使用find的搜尋某個目錄下、log字尾的檔案、某時間段檔案更改時間的檔案、檔案類型為一般檔案,然後通過xargs執行删除指令

find FIND_PATH  -name *.log -mmin +n -type f | xargs rm -rf

FIND_PATH:日志存儲目錄

-name *.log:log字尾的日志檔案

-mmin +n:n分鐘之前修改的檔案

-type f :檔案為一般類型檔案

xargs :将find指令查找到的檔案清單作為參數,執行删除操作

腳本執行個體如下:

每1000秒執行一次清空logs目錄下300分鐘之前修改過的一般類型的.log檔案

#!/bin/bash

# $1:dirname

INTER=1

echo inter is:$INTER

FIND_PATH=../logs

echo findpath is:$FIND_PATH

while [ 1 ]

do

find $FIND_PATH                                \

-mmin +300                    \

-type f                                    \

-name '*.log'                            \

| xargs rm -f

sleep 1000

done

2、cat與>來清空日志檔案腳本案例

/dev/null 可以看成linux中一個垃圾箱,這裡的值永遠是空的

cat /dev/null > /etc/test.txt可以了解為:把test.txt檔案扔進垃圾箱,賦空值test.txt

缺點就是:需要定位到某個檔案

腳本如下:

#!/bin/bash

INTER=1

echo inter is:$INTER

while [ 1 ]

do

cat /dev/null > /var/log/syslog

cat /dev/null > /logs/log.log

cat /dev/null > /var/log/test.log

sleep 1000

done

3、echo清空日志檔案腳本案例

echo > /etc/test.txt:了解為輸入空值到test.txt檔案中

#!/bin/bash

INTER=1

echo inter is:$INTER

while [ 1 ]

do

echo > /var/log/syslog

echo "" > /logs/log.log

echo > /var/log/test.log

sleep 1000

done

其他:

1)j腳本:cl.sh

#!/bin/bash

echo "" > $1 #或者: > $1

echo "$1 cleaned up."

執行指令:./cl.sh 檔案名稱