lu.se

Datavetenskap

Lunds Tekniska Högskola

Denna sida på svenska This page in English

heartbeat.sh datafil

heartbeat.sh är ett script som är till för att hålla lite koll på maskiner och se om de är uppe och titta på ett antal vanliga portar för att se om de är igång. Jag har är gjort det för min institution med ett 60-tal datorer men går säkert att använda med ett hundratal burkar. Har man fler bör man nog köra andra saker som t.ex. Nagios etc.

heartbeat.sh började sitt liv för att jag ville hålla koll på vilka datorer som hade sin backup-klient igång och sedan har det svällt, så som sådana här projekt plägar göra! :-)

Så här ser heartbeat.sh ut:
 
(bilden är förkortad)

Är det PC-burkar man skall titta på ser det ut så här:
 
(bilden är förkortad)

heartbeat.sh förväntar sig en datafil som argument. Datafilens namn kommer att bli del av rubriken i utskriften (med ”_” ersatt med mellanslag och ”.txt” strippat). Denna skall bestå av ett antal rader med:
datornamn konto kommando

Kontonamnet används för att köra kommando på klientdatorn. Detta görs med sparade ssh-nycklar (se nedan). Om konto och kommando inte finns så sker inga försök att ta fram den informationen.

Om datafilen innehåller en tomrad mitt i, blir det vid utskrift en tomrad och sedan kommer rubriken igen. Jag använder det för att separera servrar, stationära datorer och bärbara datorer från varandra.
Vi har ett sekundärt nät, ”ludat.lth.se” som förekommer på några ställen i scriptet. Vill du köra scriptet är det rätt enkelt att ta bort ludat.

Portarna probas med nmap (som alltså måste finnas) och vilka portarna är är hårdkodat i scriptet och man skulle kanske kunna tänka sig att ha det som en parameter, men det är sammanlänkat med hur det skrivs ut så jag tror det får vänta…

Datafiler lagras i /Library/cs.lth.se/Heartbeat.

root kör scriptet var 10:e minut via cron (*/10 * * * * /usr/bin/heartbeat.sh /Users/peterm/bin/Mac-datorer_på_Datavetenskap_och_Ludat.txt) för att generera data och sedan via GeekTool var 10:e minut för att visa data. Inga andra komponenter behövs.

Man kan köra heartbeat.sh i Terminal.app: kör man som root genereras data och som användare visas data.

Den intresserade hittar scriptet här: http://fileadmin.cs.lth.se/cs/Personal/Peter_Moller/scripts/heartbeat.sh

 

sha1-checksumma för heartbeat.sh:

Modifiera för att köra själv

Om någon vill köra det i en annan miljö föregås de rader man behöver kika på och ev. modifiera av kommentarer med ### (det är i skrivande stund 5 st.)!

 

Sparade ssh-nycklar

Användaren X på en dator vill kunna ”ramla in” som användaren Y på datorn Z.

Så här gör man för att skapa sparade ssh-nycklar som möjliggör detta:

  1. Som användare X, generera ssh-nyckel på den maskin som skall logga in:
    ssh-keygen -t rsa
  2. Flytta denna nyckel till dator Z (snorre) och kontot Y (bosse) som X sedan skall kunna logga in till:
    cat .ssh/id_rsa.pub | ssh bosse@snorre 'cat >> .ssh/authorized_keys'

Glöm inte att testa detta och glöm inte heller att när användaren installerar om sin dator måste denna nyckeltransport göras om!