Tag Archives: linux

Leap second og CentOS 6

Traff på leap second bug på den ene serveren hjemme, utifra hva jeg har klart å lese meg til senere, så treffer denne bugen helst flertrådete applikasjoner. Ellers så kunne dette også vises med at serveren hadde 3.7 millioner kontekstsvitsjinger mot 8-10 tusen normalt. Mozilla har også lagt ut litt informasjon om hvordan de løste problemet uten reboot.

# /etc/init.d/ntp stop; date -s “`date`”

Hvordan fjerne LUN fra Linux

Først identifiser “diskene” du skal fjerne.

# fdisk -l
Disk /dev/sdae: 644.2 GB, 644245094400 bytes
255 heads, 63 sectors/track, 78325 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot      Start         End      Blocks   Id  System
/dev/sdae1               1       78325   629145531   83  Linux

Så finner du selve scsi device id’en

#scsi_id -i -g -s /block/sdae
1:0:3:2: 360060160cb902800e25025c9197adf11

Så fjerner du devicen.

#echo 1 > /sys/class/scsi_device/1:0:3:2/device/delete

sshpass for de gangene man ikke har nøkler.

Er ikke så ofte jeg skal slå av over 1500 maskiner, men av og til skjer det jo. Og for de tilfellene er det jeg hater at jeg ikke har lagt opp nøkler til chassisene rundt omkring. Heldigvis kom jeg over sshpass sist gang jeg slåss med dette her. Kort fortalt lar sshpass deg bruke vanlig passord og dytte rett inn i ssh. Regner vel nesten med at det bare er ett lite perl script, men nytten er så uendelig.

# sshpass -p 'password' ssh admin@oaenc show oa info

Cleanup av shared memory

I forbindelse med dårlig “shared memory” styring på noen av applikasjonene på jobb ser jeg for meg følgene implementering.

1. List ut shared memory segmenter (ipcs -m)
2. List ut påloggede brukere (w)
3. Slett alle shared memory segmenter fra brukere som ikke lenger er pålogget(ipcrm).

#!/bin/bash
self=`basename $0`

if [[ "$1" = "-h" || "$1" = "--help" ]]; then
cat <<EOM

$self:
 $self              list leftover
 $self -r           list and remove leftover
 $self -h or --help this text

EOM
exit 0
fi

if [ "$(id -u)" != "0" ]; then
 echo "$self must be run as root"
 exit 1
fi

if [ -f /etc/redhat-release ] ; then
 if [[ ! `cat /etc/redhat-release | sed s/.*release\ // | sed s/\ .*//` = "3" ]] ; then
 echo "$self only tested on RHEL3"
 exit 1
 fi
fi

ps -ef | egrep -v "clamav|daemon|root|rpc|smmsp|UID|xfs|gdm|ntp" | awk '{print $1}' | sort -u > /tmp/online_ps
w | egrep -v "root|USER|load average" | awk '{print $1}' | sort -u > /tmp/online_w
cat  /tmp/{online_ps,online_w} | sort -u > /tmp/online_
filter=`awk '{printf "%s",$0"|"}; END{print "root|gdm|Shared|shmid|Memory|owner|Message|msqid|Semaphore"}' /tmp/online_`
rm -f /tmp/{online_ps,online_w,online_}
echo "Leftover shared mem"
ipcs -m | egrep -v "$filter"
echo "Leftover message q's"
ipcs -q | egrep -v "$filter"
echo "Leftover semaphores"
ipcs -s | egrep -v "$filter"

if [[ "$1" = "-r" ]]; then
 echo "Removing shared mem"
 for i in `ipcs -m | egrep -v "$filter" | awk '/./{print $2}'`; do ipcrm -m $i;done
 echo "Removing semaphores"
 for i in `ipcs -s | egrep -v "$filter" | awk '/./{print $2}'`; do ipcrm -s $i;done
 echo "Removing message q's"
 for i in `ipcs -q | egrep -v "$filter" | awk '/./{print $2}'`; do ipcrm -q $i;done
fi

SuperPXE

I forbindelse med at jeg tenkte å lære meg python, har jeg begynnt på ett lite prosjekt jeg kaller SuperPXE. Målet med prosjektet er ett webinterface hvor man kan velge å reinnstallere en maskin i nettverket med ett valgfritt OS.

Foreløpig er webserveren satt opp til å kjøre python programmet som leverer en “default” config, videre er planen at jeg skal få kompilert opp gPXE 0.9.6+ som automatisk peker mot serveren som inneholder python modulen. Systemet er i utgangspunktet to delt, hvor SuperPXE tar seg av parsingen av config filer, og webinterfacet står for selve opprettelsen av config filene. Hvis ingen config fil finnes, vil den vise standard menyen som vi alle kjenner.

GAOSP på Samsung Galaxy

Fikk lagt inn siste gaosp versjonen igår, snakk om forbedring. Denne “releasen” gir en god ballanse, mellom hurtighet, batteritid og få bugs.

Største problemet jeg finner til nå er at jeg ikke får koblet den opp mot jobbens Exchange 2010 SP1 server, dette var forsåvidt ett problem med den forrige releasen jeg kjørte og, men der kunne jeg legge inn en Email.apk jeg fant på nettet, denne fungerer uheldigvis ikke nå. Sånn ellers bruker jeg ikke standard google-apps pakken, tilfeldigvis mens jeg holdt på å innstallere kom jeg over en “UltraLight” pakke, som hadde fjernet de fleste av applikasjonene jeg ikke hadde bruk for.