shell日志顏色處理及清理系統(tǒng)日志的方法
記錄一下shell日志顏色處理
_COLORS=${BS_COLORS:-$(tput colors 2>/dev/null || echo 0)} __detect_color_support() { # shellcheck disable=SC2181 if [ $? -eq 0 ] && [ "$_COLORS" -gt 2 ]; then RC='\033[1;31m' GC='\033[1;32m' BC='\033[1;34m' YC='\033[1;33m' EC='\033[0m' else RC="" GC="" BC="" YC="" EC="" fi } __detect_color_support echoerror() { printf "${RC} * ERROR${EC}: %s\\n" "$@" 1>&2; } echoinfo() { printf "${GC} * INFO${EC}: %s\\n" "$@"; } echowarn() { printf "${YC} * WARN${EC}: %s\\n" "$@"; }
下面看下shell清理系統(tǒng)日志
1.設(shè)置日志峰值,到達(dá)則刪除
2.定時(shí)檢測(cè),crontab添加定時(shí)任務(wù)
3.后臺(tái)掛載 : ./xx.sh &
工作腳本:
#! /bin/sh #日志目錄及限定大小 workdir="/var/*.log" maxsize=100 #搜索最老文件,不加目錄默認(rèn)的本目錄里邊的文件 r倒序輸出 t時(shí)間 head -n1取第一行 awk命令括號(hào)$1位文件名 管道連接 oldfile(){ oldfile=`ls $workdir -t 2>/dev/null| head -n1 | awk '{printf $1}'` } clear_old_log(){ if [ ! $oldfile ] then #echo "日志不存在" 1>/dev/null return 0 fi while true; do oldfile if [ ! $oldfile ] then return 0 fi logsize=`du -ms $oldfile 2>/dev/null| awk '{printf $1}'` #m表示兆 k b if [ $logsize -gt $maxsize ] then str1="log" str2="err" if [[ $oldfile == *$str1* ]] then pkill snake rm -rf $oldfile fi if [[ $oldfile == *$str2* ]] then service mysql restart pkill snake rm -rf $oldfile fi else break fi done } testing(){ while true; do workdir="/var/*.log" oldfile clear_old_log workdir="/var/lib/mysql/*.err" oldfile clear_old_log done } testing 定時(shí)任務(wù)腳本: #! /bin/sh #a=`pgrep -f test1.sh|wc -l` #if [ $(ps -ef|grep test.sh|wc -l) -gt 1 ] if test $(pgrep -f test.sh|wc -l) -ge 1 then exit fi cd /home/zxd/ ./test.sh 下邊這個(gè)帶有日志時(shí)間加時(shí)間戳及系統(tǒng)負(fù)載檢測(cè): #! /bin/bash strA="long string" strB="string" result=$(echo $strA | grep "${strB}") if [[ "$result" != "" ]] then echo "包含" else echo "不包含" fi #日志目錄及限定大小 workdir="/var/*.log" maxsize=100 #給文件加時(shí)間戳:函數(shù)里的變量必須在腳本函數(shù)后邊跟著,這里$1不是命令行跟的參數(shù),命令行的參數(shù)為腳本的$1 filetime(){ a=$(date +%Y%m%d%H%M%S) A=$1.$(date +%Y%m%d%H%M%S) echo $A } filetime "/var/log" #搜索最老文件,不加目錄默認(rèn)的本目錄里邊的文件 r倒序輸出 t時(shí)間 head -n1取第一行 awk命令括號(hào)$1位文件名 管道連接 oldfile(){ oldfile=`ls $workdir -rt 2>/dev/null| head -n1 | awk '{printf $1}'` } clear_old_log(){ if [ ! $oldfile ] then echo "日志不存在" 1>/dev/null return 0 fi while true; do oldfile if [ ! $oldfile ] then echo "日志不存在" 1>/dev/null return 0 fi logsize=`du -bs $oldfile 2>/dev/null| awk '{printf $1}'` if [ $logsize -gt $maxsize ] then str1="log" str2="err" if [[ $oldfile == *$str1* ]] then pkill snake rm -rf $oldfile fi if [[ $oldfile == *$str2* ]] then service mysql restart pkill snake rm -rf $oldfile fi else break fi done } testing(){ echo "run" while true; do oldfile clear_old_log echo "222" workdir="/var/lib/mysql/libmaster.err" oldfile clear_old_log done } disk=`df |grep /dev/mapper/fedora-root | awk '{printf $5}' | sed 's/%//g'` echo "磁盤已用:%$disk" memtotal=`cat /proc/meminfo |grep MemTotal |awk '{printf $2}'` memfree=`cat /proc/meminfo |grep MemFree |awk '{printf $2}'` used=$((100- memfree*100/memtotal)) echo "內(nèi)存已用:%$used" echo "exit" testing
總結(jié)
以上所述是小編給大家介紹的shell日志顏色處理方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- 利用shell命令統(tǒng)計(jì)日志的方法詳解
- Linux shell腳本輸出日志筆記整理(必看篇)
- shell腳本實(shí)現(xiàn)分日志級(jí)別輸出的方法
- Shell腳本切割tomcat的日志文件
- Linux下日志按日分割的shell
- Powershell 查詢 Windows 日志的方法
- Shell腳本定期清空大于1G的日志文件
- 深入理解Shell輸出顏色與控制
- 在shell或者perl中改變字體或背景的顏色
- linux BASH shell下設(shè)置字體及背景顏色
- shell腳本中echo顯示內(nèi)容帶顏色的實(shí)現(xiàn)方法
- linux shell的輸出效果修改方法(界面顏色)
相關(guān)文章
解決linux的redhat版上mysql字符亂碼的問(wèn)題
下面小編就為大家?guī)?lái)一篇解決linux的redhat版上mysql字符亂碼的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06shell腳本返回值及其使用場(chǎng)景的實(shí)現(xiàn)
這篇文章主要介紹了shell腳本返回值及其使用場(chǎng)景的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05shell腳本實(shí)現(xiàn)本地文件與服務(wù)器文件同步
這篇文章主要介紹了本地文件與服務(wù)器文件同步shell腳本的方法,然后在文章給大家補(bǔ)充介紹了shell腳本備份本地服務(wù)器的文件到遠(yuǎn)程服務(wù)器的實(shí)例代碼,需要的朋友可以參考下2017-11-11Shell腳本實(shí)現(xiàn)檢測(cè)某ip網(wǎng)絡(luò)暢通情況(含短信報(bào)警功能)
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)檢測(cè)某ip網(wǎng)絡(luò)暢通情況(含短信報(bào)警功能),本文腳本針對(duì)一個(gè)服務(wù)器IP進(jìn)行檢查,也可改造一下,執(zhí)行個(gè)多個(gè)IP的檢查,需要的朋友可以參考下2014-12-12