0

Findet Semikolons in php Dateien

Posted by Ingmar Stempell on Nov 30, 2012 in Work Related


grep -cre ';' *|grep ".php"|awk 'BEGIN {FS = ":"; max=0; counter=0; total=0}{counter++;total=total+$2; if ($2 > max) {max=$2; print $1,$2;}} END {print total, max, counter}'

Schlagwörter: ,

 
0

String aus Logdateien extrahieren

Posted by Ingmar Stempell on Aug 28, 2012 in Allgemein, Work Related

Dieses Skript sucht in einem gegebenen Logfile nach dem Wort Verzeichnis (kann man ändern ;) und erstellt dann eine Ausgabe, die einem hilft, die Verzeichnisse zu erstellen. Kann so gut wie nichts, aber ist in der Form einzigartig.

Die folgende Zeile erleichtert es Dir das ganze Verzeichnis mit den Logfiles abzuarbeiten.

for i in /var/log*.log.*.gz; do bash show_missing_directories.sh $i; done

————— show_missing_directories.sh ———————
function checkDir(){
if [ ! -d $1 ]
then
echo “mkdir -p $1 ”
fi
}

NEEDLE=”Verzeichnis ”
if [ $# -eq 1 ]
then
HAYSTACK=$1
else
HAYSTACK=” /var/log/info.log” #your logfile
fi

if [ `file $HAYSTACK |grep gzip -c` -gt 0 ]
then
for i in `zgrep $NEEDLE $HAYSTACK |awk ‘BEGIN { FS = ” ” } { print $NF | “sort” }’ |uniq `; do checkDir $i; done
else
for i in `grep $NEEDLE $HAYSTACK |awk ‘BEGIN { FS = ” ” } { print $NF | “sort” }’ |uniq `; do checkDir $i; done
fi

Schlagwörter: , , , ,

 
2

ls soll auch die Sekunden anzeigen

Posted by Ingmar Stempell on Sep 28, 2011 in Allgemein, Work Related

ls -l --time-style=+'%c ' wird zu '-rw-r--r--  1 user           group  1000  Mi 28 Sep 2011 08:43:31 UTC file'

Leider gibt es keine Erklärung zur --time-style Option in der ls Manpage. Die Erklärung was mit dem % Parameter dargestellt wird, stammt aus der Man-Page von date:

%c     Datum und Uhrzeit gemäß Ländereinstellung (z. B. Die 23 Jan 2001 19:10:08 CET).

 

 

Schlagwörter: , ,

 
0

Alle .svn Ordner löschen

Posted by Ingmar Stempell on Aug 26, 2010 in Work Related


#!/bin/sh
echo "recursively removing .svn folders from"
pwd
rm -rf `find . -type d -name .svn`

Schlagwörter: , ,

 
0

Extract filename from path with bash

Posted by admin on Nov 18, 2009 in Allgemein

x=/etc/postfix/master.cf
echo ${x##*/} # = master.cf
echo ${x#*.} # = cf
echo ${x%.*} # = /etc/postfix/master
echo ${x%/*} # = /etc/postfix

echo ${x/.*}|awk -F/ '{print $NF}' # = master

Schlagwörter: ,

 
0

MySQL DATETIME from Bash date

Posted by admin on Okt 29, 2009 in Work Related

Just execute this:
$> date +"%Y-%m-%d %H:%M:%S"
this will produce the same output as:
SELECT now( )

Output: 2009-10-29 09:53:19

Schlagwörter: , ,

 
1

Rechnen in BASH

Posted by admin on Aug 31, 2009 in Allgemein, Work Related

Wehe man hat bc nicht installiert! Dann nicht weiterlesen. Du kannst sehen, ob Du bc installiert hast:

ls -alh /usr/bin/bc

Wenn es vorhanden ist, dann kann man so wunderbare Funktionen wie sqrt benutzen. Allerdings ist wieder etwas rumprobieren erforderlich, da man bc über echo füttert.

echo $(echo "$temp" | bc )

Das Echo in der Mitte übergibt $temp an bc. Das erste echo gibt den Inhalt der Klammer aus. Statt $temp kann da auch eine wilde Rechenoperation wie sqrt($temp) o.ä. drin stehen. Besonders wichtig:
Das(bc) ist die einzige Möglichkeit Fließkommazahlen / Floatingpointnumbers in der bash zu benutzen! Und weil Floatingpointnumbers im normalen Leben einer Bash keine Rolle spielen, muss man die Nachkommastelle wieder entfernen. Wie runden in der bash funktioniert, hab ich noch nicht rausgefunden, aber truncate geht mit:

TEMP=$(echo "sqrt($TARGETSIZE/($ROWS/$COLUMNS))" | bc -l)
NEWCOLUMNS=$(printf %.0f $TEMP)

Die zweite Zeile ist das Entfernend er Nachkommastelle.

UPDATE:
Wer Mathe kann, ist klar im Vorteil. An dieser Stelle ein “Danke” an Johannes für diese verblüffend einfach Lösung.

x=ganzzahlanteil(a+0,5)

Bissel drüber nachdenken und es ergibt sich von selbst. Das klappt natürlich nach diesem System([a*10^nachkommastelle+0,5]/10^nachkommastelle) auch für beliebige Nachkommastellen, nicht nur für die Erste.

Die Umsetzung in ein bash script ist dann einfach gewesen:

bash Script:

function round () {
echo $(printf %.$2f $(echo "scale=$2;(((10^$2)*$1)+0.5)/(10^$2)" | bc))
}

echo $(round 3.1234 2)
echo $(round 3.1271 2)

Ausgabe

3.12
3.13

Schlagwörter: ,

 
1

Linux Festplattenfüllstand überwachen

Posted by admin on Aug 13, 2009 in Allgemein

Läuft die Festplatte ständig voll, ohne dass Du es merkst? Dann versuch doch mal dieses Bash Skript:

#!/bin/bash
## Author Ingmar Stempell
TRESHOLD=80 #Diskusage
ALARM="echo \"Platte(\$1) fast voll(\$pvoll)\" | mail -sPlattevoll root"; #what shall we do
if [ -z $1 ]
then echo "We need one disk to monitor. eg. /dev/hda1"
exit 255
fi
if [ -n $2 ]
then
TRESHOLD=$2
fi
pvoll=$(df $1 | grep $1 | awk '{print $5}')
voll=${pvoll/\%/}
if [ $voll -gt $TRESHOLD ] ; then eval $ALARM ; fi

Es funktioniert gut genug um nach einem Test in Einsatz zu gehen. Aber der Test ist unumgänglich. Kein Skript für Leute, die nicht bereit sind etwas zu testen.

Schlagwörter: , , ,

Copyright © 2017 Stempell All rights reserved. Theme by Laptop Geek.