# II) other environment variables export TMOUT=7200 export HISTSIZE=10000 export HISTFILESIZE=10000 export HISTCONTROL=ignoredups # optional: alter C/C++ compiler flags #export HOSTCFLAGS="-O2 -march=i686" #export HOSTCXXFLAGS=$HOSTCFLAGS #export TAPE='/dev/nst0' #export SYBASE='/usr/local/freetds' export LOGPATHS="/var/log" # could also #export LOGPATHS="$LOGPATHS /service/*/log" # for daemontools #export LOGPATHS="$LOGPATHS /var/lib/mysql/*.log /var/lib/mysql/*.err" # for MySQL #export LOGPATHS="$LOGPATHS /usr/local/squid/var/logs" # for squid cache export FWLOGFILE=/var/log/kernel # III) functions # sprompt: Standard coloured PROMPT function sprompt() { local NO_COL="\[\033[0m\]" local BLUE="\[\033[1;34m\]" PS1="<\u@\h> $BLUE\W$NO_COL $ " } # cprompt: Coloured PROMPT function cprompt { local RED="\[\033[1;31m\]" local GREEN="\[\033[1;32m\]" local NO_COL="\[\033[0m\]" local WHITE="\[\033[1;37m\]" local LIGHT_BLUE="\[\033[1;34m\]" if [ `/usr/bin/id -u` = 0 ] ; then PS1="$NO_COL[$RED\t$NO_COL][$RED\u@\h:$LIGHT_BLUE\w$NO_COL]$RED\$ $NO_COL" else PS1="$NO_COL[$GREEN\t$NO_COL][$GREEN\u@\h:$LIGHT_BLUE\w$NO_COL]$GREEN\$ $NO_COL" fi PS2='> ' } # tonka: TONKA prompt function tonka { # Named "Tonka" because of the colour scheme local WHITE="\[\033[1;37m\]" local LIGHT_BLUE="\[\033[1;34m\]" local YELLOW="\[\033[1;33m\]" local NO_COLOUR="\[\033[0m\]" case $TERM in xterm*|rxvt*) TITLEBAR='\[\033]0;\u@\h:\w\007\]' ;; *) TITLEBAR="" ;; esac PS1="$TITLEBAR\ $YELLOW-$LIGHT_BLUE-(\ $YELLOW\u$LIGHT_BLUE@$YELLOW\h\ $LIGHT_BLUE)-(\ $YELLOW\$PWD\ $LIGHT_BLUE)-$YELLOW-\ \n\ $YELLOW-$LIGHT_BLUE-(\ $YELLOW\$(date +%H%M)$LIGHT_BLUE:$YELLOW\$(date \"+%a,%d %b %y\")\ $LIGHT_BLUE:$WHITE\\$ $LIGHT_BLUE)-$YELLOW-$NO_COLOUR " PS2="$LIGHT_BLUE-$YELLOW-$YELLOW-$NO_COLOUR " } # rl: Recent Logtails function rl() { local m=$1 local n=$2 [ "$m" != "" ] || m=10 [ "$n" != "" ] || n=20 find $LOGPATHS -type f -mmin -$m -ok tail -$n \{\} \; } # lx: ls eXtended, with directories first function lx() { ls -FGhl --color "$@" | grep '^d' | cat; ls -FGhl --color "$@" | grep -v '^d\|^t' | cat; } # openport: list OPENed PORTs function openport() { echo ">>>>> opened ip ports ( listening/connected/udp) <<<<<" lsof -i -n | grep "LISTEN\|UDP\|ESTABLISHED" | perl -lane 'print "@F[0,6,7,8]\n"' | sort | uniq } # fwloglast: FWLOGwatch LAST lines from kernel log function fwloglast () { [ -r $FWLOGFILE ] || return local nlines=$1 local npackets=$2 [ "$nlines" != "" ] || nlines=500 [ "$npackets" != "" ] || npackets=3 local tmp=`tempfile` tail -n $nlines $FWLOGFILE > $tmp fwlogwatch -d -s -m $npackets -f $tmp rm -rf $tmp } # estimate_dnscache_motion: ESTIMATE daily DNSCACHE MOTION function estimate_dnscache_motion() { local last_stat=` grep "stats " /service/dnscache/log/main/current | tail -n 1 | awk '{print $4}'` local run_time=`svstat /service/dnscache | awk '{print $5}' ` local dcm=$[ $last_stat * 3600 * 24 / $run_time ] local cs=`cat /service/dnscache/env/CACHESIZE` local dl=`cat /service/dnscache/env/DATALIMIT` echo "Daily cache motion is $dcm" echo "CACHESIZE is $cs" echo "DATALIMIT is $dl" } # imgfind: find IMaGe-like files using FIND function imgfind() { find "$@" -type f -iregex ".*\.\(jpg\|jpeg\|gif\|bmp\|ppm\|tga\|xbm\|xpm\|tif\|tiff\|png\|pcx\|tga\|wmf\|xcf\)" } # avifind: find AVI-like files using FIND function avifind() { find "$@" -type f 2>/dev/null | egrep -i "\.(avi|mpg|mpeg|ogm|rm|wmv)$" } # imgrep: grep IMaGe-like filenames using GREP function imgrep() { egrep -i "\.(jpg|jpeg|gif|bmp|ppm|tga|xbm|xpm|tif|tiff|png|pcx|tga|wmf|xcf)" } # fixperm: FIX file and directory PERMissions to reasonable values function fixperm () { local ARG=$1; if [ ! "$ARG" == "" ]; then echo Resetting permisions for $ARG ...; find "$ARG"/* -type d -not -perm 755 -exec chmod 755 {} ';'; find "$ARG"/* -type f -not -perm 644 -exec chmod 644 {} ';'; else echo "Usage: fixperm