Automatisera med tmux
Många har säkert hört talas om vertyg som Ansible, Puppet eller Chef. Kanske använder du till och med några av dessa verktyg? De är alla verktyg för att automatisera uppgifter på flera maskiner samtidigt. Tanken är att man utför ett kommando en gång, via en lokal dator, som sedan utförs på alla de maskiner som ingår i den specifika gruppen. Detta kan vara alltifrån två-tre servrar upp till flera hundra servrar.
Men ibland passar kanske inte dessa verktyg så bra, och andra gånger är dessa verktyg alltför avancerade för enklare uppgifter. Ett vanligt användningsområde för Ansible, Puppet och Chef är att automatisera uppdateringar över flera maskiner samtidigt, vilka dessa verktyg är väl anpassade för.
Själv testkör jag ofta C-program på olika plattformar (Linux, FreeBSD, OpenBSD, Solaris med flera på olika typer av hårdvara). I början testkörde jag programmen på en maskin i taget, men efter några veckor blev det i princip ohållbart och fruktansvärt långsamt.
Jag började då istället testa verktg som Ansible, Puppet och Chef. Men inget att dessa verktyg lyckades jag få att fungera just som jag ville, för mina behov att testköra program. Ett av de stora hindren var att olika program jag testkör kräver olika former av indata. Ibland är det data från textfiler, ibland pipad data, ibland svar på frågor från programmen.
Efter lite sökningar på internet upptäckte jag istället att tmux
har inbyggt
stöd för att synkronisera sina fönster. På sätt kan jag öppna tio styck fönster
i tmux, logga in varje fönster på respektive maskin, och sedan synkronisera
fönsterna. Det jag då skriver i ett fönster, skrivs autoamtiskt i alla de övriga
fönsterna. Jag behöver då bara skriva make
en gång, ./testprogram1
en gång
och så vidare. Jag ser dessutom direkt utdatan från programmen direkt i de olika
fönstren. Likaså kan jag skriva in svaren från alla programmen samtidigt,
istället för att byta fönster tio gånger. Mycket smidigt!
Kort instruktion
- Starta
tmux
- Skapa så många fönster du behöver med
CTRL-B "
ochCTRL-B &
. Har du bundit omCTRL-B
tillCTRL-A
istället så använd det istället - Logga in på de olika maskinerna med SSH, en maskin i vardera fönster
- Synkronisera alla fönster genom att:
- Tryck
CTRL-B :
så att du får upp en kommandorad itmux
- Skriv
setw synchronize-panes on
och tryck enter
- Tryck
- Klart! Det du skriver i ett fönster skrivs nu automatiskt i alla fönster
- För att ta bort synkroniseringen av fönster gör samma som ovan men skriv
istället
setw synchronize-panes off
i kommandoraden.
Demo
Så här kan det det ut så när jag är i full gång med tester.
Nyhetsbrev
Nyhetsuppdateringar från tidningen direkt till din inkorg, helt kostnadsfritt. Avsluta när du vill.
Kommentarer
Kommentarsfältet är modererat. Det innebär att alla kommentarer granskas av ansvarig utgivare före publicering.
Du väljer själv om du vill ange ditt riktiga namn, en pseudonym eller vara helt anonym. Ingen registrering behövs.
Relaterade artiklar
-
Textbearbetning i Linux
I denna artikel kommer vi att gå igenom hur man använder verktygen
tr
,sed
ochawk
för att modifiera en text. Den kommer att vara helt och hållet baserat på exempel. Uppgiften kommer vara att snygga till en lista över Robert De Niro-filmer. -
En introduktion till FIFO
FIFO står för First In, First Out, och är en typ av rörledning som vi kan skapa på systemet som går att använda mellan helt orelaterade processer. FIFOs fungerar som så att en fil skapas på hårddisken i systemet. Processerna som ska kommunicera med varandra använder sedan den filen. En annan fördel med FIFOs är att vi kan använda dem tillsammas med redan befintliga program. Där vanliga rörledningar inte räcker till kan man ofta använda just FIFO.
-
Pakethantering i FreeBSD
FreeBSD använder både något som heter portar och något som heter paket. Paket är färdigkompilerade binärer av program, likt de pakethanteringsverktyg som finns för de flesta Linuxdistributioner. Portar däremot är en uppsättning Makefiles anpassade för att programmet ska gå att kompilera smärtfritt under FreeBSD. Portar måste alltså kompileras för att installeras. Det som gör att portarna i FreeBSD är så populära trots att de måste kompileras är att de går att anpassa efter eget behov, precis som om du laddade ner källkoden själv och kompilerade paketet. Skillnaden här är att det är mycket enklare. När du gör en
make install clean
i en port får du upp en dialogruta där du enkelt bockar för eller bockar av de val du vill göra innan kompileringen. En annan fördel med portarna är att det finns något fler portar än paket, och ibland också i nyare versioner. -
UTF-8 och svenska tecken i FreeBSD 11
Att få till svenska tecken i konsolen i FreeBSD är inte alltid det enklaste och mest självklara. Dessutom använder FreeBSD som standard ISO-8859-1, en teckenkodning som inte är lika populär längre. UTF-8 är istället den kodning som har kommit att bli de-facto standard.
Senaste nyheterna och inläggen
-
Avlyssna trafik på servern med Wireshark och TShark
Wireshark är ett ovärderligt verktyg för att felsöka nätverkskonfigurationer, applikationer, API:er, demoner och mycket annat. I kombination med
tshark
kan vi dessutom avlyssna trafiken på en server i realtid. -
Mysig stämning på sommarens första demoparty
I helgen var det Reunion 2024 i Kvidinge Folkets hus, sommarens första skånska demoparty. Partyt organiserades av Jesper “Skuggan” Klingvall. På plats fanns ett 30-tal besökare.
-
Sommarens skånska demopartyn
Årets sommar bjuder på två skånska demopartyn. Först ut är Reunion i Kvidinge den 28–30 juni. Därefter är det Pågadata i Örtofta den 9–11 augusti.
-
Riskerna med BankID som ingen pratar om
BankID är ett säkert och smidigt sätt att identifiera sig online. Men i takt med dess ökade popularitet och användning har det blivit en svag länk – en single point of failure – på mer än ett sätt.
-
Polisernas fängelsedomar står fast
Efter tre år är målet mot de två poliser som olovligen tog sig in i en berusad mans bostad i Landskrona och misshandlade honom klart. Högsta domstolen beslutade den sjätte mars att avvisa överklagan. Fängelsedomarna för poliserna står därmed fast.
Utvalda artiklar
-
Mysig stämning på sommarens första demoparty
I helgen var det Reunion 2024 i Kvidinge Folkets hus, sommarens första skånska demoparty. Partyt organiserades av Jesper “Skuggan” Klingvall. På plats fanns ett 30-tal besökare.
-
Datorparty i Landskrona
I helgen höll Syntax Society sitt årliga sommarparty. Platsen var en källarlokal i Landskrona där ett femtontal personer medverkade.
-
Det första Pågadata har ägt rum
I helgen ägde det första Pågadata rum – uppföljaren till Gubbdata. Platsen var Folkets Hus i Kvidinge. Organisatör av partyt var Johan “z-nexx” Osvaldsson med hjälp från Jesper “Skuggan” Klingvall. Partyt hade över 100 anmälda deltagare.
-
Även hovrätten fäller poliserna för att ha satt dit oskyldig
Hovrätten fastställer straffet för de två poliser som förra året dömdes till vardera ett års fängelse av Lunds tingsrätt för att ha misshandlat och satt dit en oskyldig man. De båda poliserna ska även betala skadestånd till mannen.
-
Retroloppis i Påarp
Idag var det retroloppis hos Andreas Nilsson i Påarp. På baksidan av huset fanns hundratals spel uppradade på långa bord. Trots friska vindar och sval temperatur var loppisen välbesökt.
CyberInfo Sverige är ett it- och medieföretag i nordvästra Skåne som tillhandahåller böcker, utbildningar, nyheter och konsulttjänster inom Linux, säkerhet och programmering.
CyberInfo Sverige är godkänd för F-skatt, är momsregistrerat och innehar
utgivningsbevis för webbplatsen www.cyberinfo.se.