'Killall' oneliner

I moderna Linux-distributioner kan man nästan alltid räkna med att kommandot 'killall' följer med för att enkelt kunna döda t.ex alla apache-processer. I t.ex avskalade linux-distributioner och vissa versioner av Solaris kan dock killall saknas, ibland finns istället pkill men inte alltid.

En enkel lösning på detta är att använda sig av ps, awk och xargs enligt:

$ ps aux |grep apache2 |awk '{ print $2 }' |xargs kill -9 Läs mer »

För ny version av logging-modulen i Django 1.4

I ett försök att uppgradera en sajt till senaste Django 1.4 hände något konstigt. Eller, som förväntat, var det en hel del konstiga saker, men speciellt en nöt tog ett tag att knäcka. Eftersom det inte finns någon information om det på google, så tänkte jag skriva ett litet inlägg om det här. Läs mer »

Tunnla två IPv6-nät över IPv4

Det finns tillfällen då man behöver koppla ihop två olika nätverk med varandra. Normalt sett så använder man då någon form av VPN-lösning. I det här fallet var behovet att koppla ihop två IPv6-nät med varandra som ligger på två olika ställen, med endast Internet som förbindelse. Läs mer »

Virtuella python-environments med virtualenv

En av fördelarna att programmera i python är den förträffliga pakethanteraren pip som både är snabb och smart. Däremot löser den inte problemen som ofta uppstår när man jobbar med flera projekt samtidigt; t.ex kanske jag behöver en version av PIL i det ena projektet men en annan version av PIL i ett annat projekt. Läs mer »

Notifieringar från irssi i dock på Mac OS

Så här gör du för att få notifieringar på Terminal-ikonen i Mac OS när det händer saker i ditt irssi-fönster. Läs mer »

IPSEC i Ubuntu Precise med dynamisk IP

Trots att det finns mycket skrivet om IPSEC på Linux är informationen om hur det fungerar tillsammans med dynamisk IP ganska förvirrande. Läs mer »

Automatisk inloggning i Apache från en viss ip-adress

Att lösenordsskydda en mapp i Apache med htpasswd är väl ingen match för en rutinerad linuxadmin, men hur gör man om man vill släppa in en viss adress utan att de behöver ange lösenord? Läs mer »

Nagios sommar- och vintertid

Nu har det precis slagit om från sommartid till vintertid. Om du kör Nagios så är sannolikheten stor att dina testerna nu har slutat att köra. Det är nämligen så att i Nagios finns det en bug som inte klarar av att hantera stora förändringar av klockan. Läs mer »

Bash history

När minnet är bra men kort kan bash's fenomenala history-funktion vara till stor hjälp. Att bara trycka ”pil upp” för att se de senaste slagna kommandona är kanske det vanligaste sättet man använder history på men det finns fler sätt att göra det på och här är några: Läs mer »

Enkla Varnish ACL

När man av någon anledning vill använda Varnish till sin sajt stöter man ofta på problem med rättigheter till t.ex. admingränsnitt. Ofta har man en /admin/ som man bara vill att vissa IP-adresser skall ha tillgång till. Läs mer »

Wildcard-DNS och vhosts

Att ha flera webbsajter, s.k. vhosts, på sin server har sina fördelar. Det kan t.ex. vara bra när man gör större uppgraderingar på sin ordinarie sida, för att se att allt stämmer och ser bra ut innan man publicerar den nya versionen. Läs mer »

Problem att boota HP DL580 från virtuell CD

HP:s iLO (Integrated Lights Out) brukar fungera riktigt bra, men på en DL580 blev det tvärstopp när jag skulle boota från en virtuell CD. Läs mer »

Google Spreadsheets API

Förutom att Google Spreadsheets är ett grymt bra kalkylprogram går det även att styra det med hjälp av ett API. Här är ett exempel på hur det går till. Läs mer »

Bash script och redirect

När man skriver Bash-script eller håller på med olika kommandon så händer det titt som tätt att man behöver skicka texten som kommer ut från ett kommando till en fil, till ett annat kommando eller helt enkelt filtrera bort text. Det kan man lösa med redirect. Läs mer »

Konvertera SSH-nycklar och olika format

Publika- och privata SSH-nycklar är väldigt smidiga och säkra att använda till sina servrar. Men, som med allt annat, så finns det lite olika format. OpenSSH, Putty, SSH2, m.m. har alla samma nycklar men med lite variationer. Läs mer »

Använda Apache mod_proxy för att flytta en webbsida

När man ska flytta en webbsida smidigt utan att orsaka nertid är det en hel del saker att tänka på. Det svåraste momentet är i själva "skarven" när webbsidan finns på två ställen och innan DNS-ompekningen slagit igenom fullt ut. Läs mer »

Prestandaproblem med LL-XML i TYPO3

Vi hade problem långa laddtider för modulen LL-XML i TYPO3-backend. Sidan tog extremt lång tid att ladda och apache-processen tog all tillgänglig CPU sedan man klickat på länken. Läs mer »

Hur man bygger ett .deb-paket

Debian och Ubuntus paketeringssystem, .deb-filer, är ett väldigt bra sätt att paketera sina program, webbapplikationer, script, eller vad som helst. Läs mer »

Problem med libapache2-mod-xsendfile

Syntax error on line 9 of /mnt/persist/www/apache2.conf:
Invalid command 'XSendFilePath', perhaps misspelled or defined by a module not included in the server configuration
...fail! Läs mer »

Ansluta från utf8-system till en MySQL-server som kör latin1

Nu när det ändå är 2011 kan man tycka att man skulle kunna få slippa problem med teckenuppsättningar. Så är det tyvärr inte alltid. Läs mer »

Lägga till extra fält i Django admin

Admin-applikationen till Django är fantastisk på många sätt. Just att modellerna man har i Django speglas direkt i ett webbgränssnitt utan i princip någon egen insats är inte bara tidsbesparande utan det blir även ren och fin kod. Läs mer »

Autentisera Vtiger mot Apache/htpasswd

Det händer att man vill utnyttja autentiseringen i Apache istället för den inbyggda i Vtiger. Anledningarna kan vara många, men ett ganska vanligt scenario är att man vill verifera användare mot en htpasswd-fil eller t.ex. OpenID. Läs mer »

Cron_key for Drupal 7

I nästan alla webbapplikationer som är utvecklade i Drupal är det viktigt att Drupals egna cron kör med jämna intervall. Det är för att dra igång olika händelser i applikationen som t.ex. schemalagda publiceringar, upprensning m.m. Läs mer »

Cloudnet deltar på World IPv6 Day

World IPv6 Day är ett globalt testskott för IPv6. Att adresserna för IPv4 i princip är slut är det nog knappast någon som har missat. Problemet är bara att alla webbplatser och tjänster runt om i världen fortfarande inte använder IPv6. Läs mer »

Problem med låst Drupalkonto

Så här löser man problem med meddelandet "Tyvärr, det har varit mer än 5 misslyckade inloggningar för detta konto. Det är för tillfället spärrat. Försök igen senare, eller begär ett nytt lösenord." Läs mer »

Drupal 7 med Varnish

Det finns ganska mycket skrivet om hur man kör Drupal 7 tillsammans med Varnish, men jag saknade en del information i de guider jag hittade. Läs mer »

TYPO3 med utf8-innehåll i latin1-MySQL

Olika characterset kan enkelt bli en riktig soppa om man inte ser till att ställa in allting rätt innan man börjar köra sin databas. Här är ett exempel på hur man kan fixa ett problem som jag råkade ut för. Läs mer »

One-liner för att hitta PHP-filer som slutar med blank rad.

Ofta när man arbetar med PHP i större projekt eller ramverk så är det viktigt att hur koden ser ut innan och efter PHP start- respektiver slut-tag, alltså:<?php ... PHP kod ... ?> Läs mer »

Skillnader i hantering av VLAN i kombination med bridge i Linux

Efter mycket huvudkliande har jag märkt att det finns en skillnad i hur 802.1q VLAN fungerar i kombination med bryggor i Linux mellan olika kernelversioner och/eller drivrutiner. Läs mer »

Cloudnet sponsrar DrupalCamp Stockholm 2011

DrupalCamp Stockholm är en konferens om CMS-verktyget Drupal.

Eftersom vi gillar Drupal och vill bidra till ett ökat användande av system som bygger på öppen källkod sponsrar vi konferensen. Läs mer »

Enkel installation av New Relic

New Relic är en monitoreringstjänst som man kan använda för att i detalj mäta prestanda på olika delar på din t.ex. PHP- eller Rails-applikation. Du kan få information om vilka moduler som tar längst tid på sig att ladda, SLA-rapporter och svarstider. Läs mer »

Utvecklingsmiljö för Sproutcore

Nu har vi färdiga paket med Sproutcore som du enkelt kan installera på din server. Sproutcore kan man beskriva som ett applikationsramverk för HTML5 och Javascript. Meningen är att det enkelt ska gå att bygga upp snabba och responsiva webbsidor som ser ut och känns som en vanlig desktop-applikation. Läs mer »

Cloudnet sponsrar GoodOldCraft

GoodOldCraft är ett event som arrangeras av den strategiska webbyrån Good Old. Det är en turnering i spelet Starcraft 2 och syftet är att samla ihop Sveriges mediavärld.

Eftersom projektet är utvecklat i Node.js och med CouchDB, vilket är tekniker vi tycker är kul, är Cloudnet med och sponsrar. Läs mer »

Läsa status i realtid från Nagios

Nagios är ett övervakningsverktyg som är väldigt robust, flexibelt och naturligtvis öppen källkod.
Det är däremot inte så enkelt att läsa aktuell status om man t.ex. vill få in information i en extern applikation. Läs mer »

Dell DRAC 4/I från Mac OS

Om du vill använda Dells inbyggda KVM-lösning DRAC (Dell Remote Access Controller) 4/I på din Mac finns det ett trick att ta till trots att Dell hävdar att det inte fungerar om man inte kör Windows. Läs mer »

Falska säkerhetspatchar för Drupal

I många lägen är den största säkerhetsrisken idag är s.k. social engineering. Nu är det en grupp som har siktet inställt mot Drupal-sajter. Läs mer »

Adressöversättning inom samma nät

Det går att adressöversätta till adresser som ligger på samma nät som originaladressen. Dock måste även avsändaradressen översättas. Läs mer »

Python-exempel som använder BackupPC dolda API

BackupPC är en backuplösning skriven i Perl och är öppen källkod. Det är ganska simpelt men trots det kraftfullt program. Det kan utan problem konkurrera med andra lösning såsom Bacula. Läs mer »

Tab-complete och historik i Python

Alla som håller på med Python vet hur kraftfullt det är att testköra små programsnuttar eller uttryck direkt i python-tolken. Tolken sparar även historik och man kan enkelt få fram de senaste kommandona med pil upp och pil ned. Läs mer »

Automatisering av installationer med aptitude

Vissa deb-paket envisas med att fråga saker under installation, vilket gör att man måste ta till ett trick för att kunna installera dem via skript Läs mer »

Bilduppladdningsproblem i Drupal

Felmeddelandet "An unrecoverable error occurred. This form was missing from the server cache. Try reloading the page and submitting again." vid bilduppladdning till en nod som ännu inte blivit sparad. Läs mer »

Posta Nagioshändelser på IRC

Okej, IRC kanske inte är världens mest moderna protokoll. Trots sin ålder och sina konkurrenter så används det fortfarande som backend i många applikationer. Dessutom är det faktiskt ett oerhört bra verktyg när man jobbar i grupp. Läs mer »

Importera .imapmbox-filer till Mail.app

Om man säkerhetskopierat filerna från sitt IMAP-konto och upptäcker att det inte var så enkelt att bara lägga tillbaka filerna finns det ett trick som fungerar för att få tillbaka breven. Läs mer »

Drupal Webform SQL injection

Det kommer en hel del säkerhetsnotiser från Drupals säkerhetsgäng. Vi läser ständigt dessa för att hålla koll på kritiska buggar och brister.

Oftast, jämfört med t.ex. tidigare versioner av Joomla eller WordPress, så är det ganska harmlösa säkerhetsproblem som kräver att man är admin eller att det potentiellt går att utnyttja hålet. Läs mer »

Verifiera fält med åäö

I django, liksom i nästan alla sammanhang, blir det förr eller senare problem med svenska tecken som å, ä och ö.

Ofta vill man verifiera att texten i ett fält i en modell är giltigt. Det kan vara t.ex. att fältet innehåller ett telefonnummer, endast siffror eller ett maxvärde. Om man vill att ett fält endast får innehålla bokstäver får man problem. Som standard i Python anses nämligen inte å, ä eller ö vara en bokstav. Läs mer »

IPSEC-VPN mellan Linux och inGate firewall

IPSEC är väldigt användbart i många lägen, men även extremt rörigt. Tekniken har funnits länge och varierande stöds finns i de flesta brandväggar. Ofta är det inga problem mellan två enheter från samma tillverkare, men när man ska blanda gäller det att vara påhittig. Här är ett exempel från en kund. Läs mer »

Skapa enkla X.509-certifikat med OpenSSL

Om du behöver ett självsignerat X.509-certifikat till någon tillämpning kan du enkelt skapa ett med hjälp av OpenSSL som finns i både Linux och Mac OS. Läs mer »

Fjärrdebuggning av PHP med MacOS

Hur kan man debugga PHP-kod på våra VPS:er från sin Mac? Om man inte kör en integrerad IDE kan MacGDBp vara ett alternativ. Läs mer »

Drush för Drupal

Drush beskrivs som en "Schweizisk armekniv" för Drupal. Det är ett kraftfullt verktyg för kommandoraden som man kan använda till att administrera sin Drupal-sida med. Bland annnat kan man installera moduler, köra cron, göra uppgraderingar m.m. Läs mer »

L2TP-VPN mot D-Link DFL-210 med Radius-autentisering

Hur sätter man bäst upp L2TP mot en Small Business Server 2008-miljö? Den frågan visade sig inte vara helt okomplicerad att besvara. Läs mer »

Memcache som inte cachar

Drupals statusrapport visar:
Memcache admin requires that the "cache_inc" $conf variable be set to include either memcache.inc or memcache.db.inc. Please read the installation instructions. Läs mer »

Testa en SMTP-server

Jag håller och konfigurerar en e-postserver åt en kund. Kunden har två olika domäner som den ska acceptera e-post för. Eftersom det är en Small Business Server 2008 med Exchange 2007 vet man aldrig riktigt vad som kommer hända eftersom programvarutillverkaren har ovana att förändra funktioner slumpmässigt varje gång en ny version kommer ut. Därför kan det vara trevligt att testa hur servern kommer reagera på e-posten innan jag styr om DNS:en. Läs mer »

Testa IPv6 redan nu

Är du en av dom som noterat att det vid dags datum endast finns 2 % IPv4 adresser kvar? För ett par månader sedan fanns det 3 %. När du läser det här kanske det bara finns 1 % eller helt slut? Läs mer »

Sessions-tabellen i Drupal fylls upp

Har du problem med att din sessions-tabell i Drupal fylls upp? Läs mer »