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 檔案名稱