'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
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
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
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
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
Sessions-tabellen i Drupal fylls upp
Har du problem med att din sessions-tabell i Drupal fylls upp? Läs mer »
