Linux monitoring: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 71: | Line 71: | ||
EOT | EOT | ||
kill -9 $$ | #kill -9 $$ | ||
</pre> | </pre> | ||
~/mylogs -ie "critical\|error\|warn\|fail" | ~/mylogs -ie "critical\|error\|warn\|fail" |
Revision as of 20:15, 21 March 2022
Writting activity
mylogs <filter>
MyBin="mylogs" >~/$MyBin chmod 755 ~/$MyBin cat <<EOT >>~/$MyBin #!/bin/bash if [ -z "\$@" ] ;then MyKey="-ie critical\\|error\\|warn\\|fail" else MyKey="\$@" fi MyBin="\$(basename \$0)" MyTimeOutMin=900 MyTimeOutMax=3600 # bash colors RED='\033[0;31m' GREEN='\033[0;32m' NC='\033[0m' # No Color lsof -X 2>/dev/null |grep " REG " |grep -E " [0-9]+w " |grep -o -P "(\/.+)" |sort -g |uniq |grep -v "/\${MyBin}.cfg\$" >~/\${MyBin}.cfg MyCacheFile="/tmp/\${MyBin}.\$\$" function MyStep1 { >\${MyCacheFile} # 3 derniers jours du mois ou 9h à 17h en jour ouvré if [ \$(date +%d -d "3 day") -lt \$(date +%d) ] || { [ \$(date +%H) -ge 9 ] && [ \$(date +%H) -lt 17 ] && [ \$(date +%u) -lt 6 ] ;} ;then MyTimeOut=\$MyTimeOutMin else MyTimeOut=\$MyTimeOutMax fi cat ~/\${MyBin}.cfg |while read MyLogPath ;do if [ -f "\$MyLogPath" ] ;then MyLogElapsed=\$((\$(date +%s) - \$(date +%s -r "\$MyLogPath"))) if [ "\$MyLogElapsed" -lt "\$MyTimeOut" ] ;then MyResult="\$(tail -666 "\$MyLogPath" 2>/dev/null |strings |grep \$MyKey |tail -2 |cut -c1-111)" if [ -z "\$MyResult" ] ;then MyResult="\$(tail -2 "\$MyLogPath" 2>/dev/null |strings |tail -2 |cut -c1-111)" if [ ! -z "\$MyResult" ] ;then echo -e "\${NC}== \$MyLogPath ==" >>\${MyCacheFile} echo -e "\${GREEN}\${MyResult}\${NC}" >>\${MyCacheFile} fi else echo -e "\${NC}== \$MyLogPath ==" >>\${MyCacheFile} echo -e "\${RED}\${MyResult}\${NC}" >>\${MyCacheFile} fi fi fi done } MyStep1 cat \${MyCacheFile} |grep -v -w -f ~/\${MyBin}.cfg >~/\${MyBin}.ref while true ; do MyStep1 diff --changed-group-format='%>' --unchanged-group-format='' ~/\${MyBin}.ref \${MyCacheFile} >\${MyCacheFile}.diff clear cat \${MyCacheFile}.diff sleep 2 done EOT #kill -9 $$
~/mylogs -ie "critical\|error\|warn\|fail"