Blogg

Uppdateringar på Cloudheaven

Några uppdateringar i servermiljön dessa dagar mellan jul och nyår:

  • Uppdaterat WordPress till WordPress 5.0.
  • Lagt till domänen nikodemuskarlsson.se, med tillhörande WordPresskonto.
  • Justering av http-servern så att omskrivning görs från eventuell www före domännamnet till enbart domännamnet och omdirigering till https
  • Justering av http-servern så att ”frames” är tillåtna i https-läge (mycket smidigt i WordPress, där man då kan förhandsgranska hur inläggen ser ut som ett ”överlägg”)
  • Installerat senaste Python-versionen, Python 3.7.2.

Det som tog absolut längst tid var adressomskrivningen. Ett bra verktyg för att studera hur adresserna skrivs om hittade jag på redirect-checker.org.

Det gyllene snittet som kedjebråk i Python

Det gyllene snittet är, som kanske bekant, ett förhållande som delar in en sträcka i delsträckorna a och b så att

\frac{a+b}{a}=\frac{a}{b} Gyllene snittet
Man kan få fram ett uttryck för det gyllene snittet med hjälp av en andragradsekvation. Det blir ett irrationellt tal som ungefär är 1,618 (det innebär att sträckan a i figuren ovan är 1,618 gånger längre än sträckan b). Men det går även att representera det gyllene snittet med hjälp av ett s.k kedjebråk. Det är ett bråk som består av ett till bråk som är uppbyggt på samma sätt som det första, som i sin tur är uppbyggt av ytterligare ett bråk efter samma mönster osv. Eftersom antalet ”bråk i bråket” går mot oändligheten så går inte annat än att få fram ett närmevärde på det i decimalform. Det är det nedanstående program i Python gör.

Efter 38 iterationer ger programmet 15 korrekta decimaler. Inte det mest effektiva sättet att få fram ett närmevärde på kanske, men ändå kul att ett så pass kort program kan utföra de operationer som snabbt blir bökiga med en vanlig räknare (RPN-räknare undantaget).

Antivirusproblem

På cloudheaven.se så använder jag antivirussystemet clamav. För att skanna inkommande mail med avseende på virus (och även spam) så anropas clamav av ett annat program, amavisd (båda dessa program är gratis och open source, förstås!). Dessa måste förstås kunna kommunicera med varandra, och det görs via ett ”uttag” (socket).

Det jag upptäckte idag var att den utgående mailloggen visade att clamav inte tog emot anropet från amavisd. Det hade den gjort tidigare, när jag konfigurerade systemet för ett par år sedan. Men uppdateringar gör väl att konfigurationsfiler ändras.

Det som behövde göras var att ändra filen amavisd.conf enligt

code_diff.png

Omstart av serverprogram enligt
systemctl restart clamd@scan, systemctl restart clamd@amavisd och systemctl restart amavisd.

Så, vips var problemet ur världen 👍. Det var bara det att detta ”vips” tog närmare tre timmar att hitta…😬

Denna logg gör jag som en del av det underhållsarbete jag utför på cloudheaven.se. Övriga inlägg av den karaktären finns här.

 

Validating input in Python 3

Just the outcome of my experiments in validating input in Python 3. The first one is quite long, but the method can easily be used for e.g safe menus.

The second one is shorter, and uses Python’s error catching ability. But this method is not so good to be used in other situation other than number input; i.e any number and only numbers.

Strul med Let’s Encrypt och Python

Den här servern har ett ssl-certifikat från Let’s Encrypt. Det var lätt att installera och det är gratis, så jag var nöjd med det. Giltighetstiden på certifikatet är dock enbart tre månader, sedan måste det förnyas. Det finns det skript för, och jag kör det automatiskt en gång per vecka. Men förra veckan såg jag i loggen att något inte var som det skulle. Istället för det vanliga meddelandet att ingen förnyelse behövdes, så var det bara tomt. Det verkade inte ens vara kört.

Manuell koll. Felmeddelanden som hade med Python att göra. Just det; förra veckan när jag jag rutinmässigt uppdaterade serverns program så var det ju en uppdatering av just Python. Felet verkade vara relaterat till pip, Python:s pakethanterare som bl a Let’s Encrypt använder.

Det jag fick göra var följande:

* yum remove python-pip # Ta bort det pip som var installerat
* yum install python-pip # Installera exakt samma version
* pip install --upgrade pip # Uppgradera till det senaste pip, 9.0.1
* pip install certbot # (Om)installera programvaran från Let's Encrypt
* touch /usr/lib/python2.7/site-packages/setuptools-34.4.1.dist-info/METADATA # Skapa den fil som efterfrågades när jag körde pip

Nu fungerade det! Jag slapp iallafall installera om själva certifikatet; förhoppningsvis så sker det problemfritt när det väl är aktuellt.

Nytt SSL-certifikat på servern

Jag hade tidigare installerat stöd för SSL här på cloudheaven.se. Det var ett självsignerat certifikat, vilket innebär att det inte finns någon verifierar serverns identitet i förhållande till certifikatet (även om datan faktiskt krypteras även med ett sådant certifikat). I samband med DDoS-attacken häromdagen fick jag anledning att köra lite tester, och det självsignerade SSL-certifikatet var en av de saker som resultatet rekommenderade mig att se över. Fortsätt läsa ”Nytt SSL-certifikat på servern”

Att jämföra filer i katalogträd

Jag råkade idag ut för att behöva jämföra filer i två stora katalogträd. Upprinnelsen till det var att jag har migrerat filer från Dropbox till Google Drive, men av någon orsak så fortsatte jag att redigera filerna i Dropbox… Det gjorde att jag snabbt behövde jämföra träden fil för fil, och det hade nog tagit hela sommaren om jag inte kunde utnyttja de behändiga verktygen diff och grep som finns i Unix-miljöer. Fortsätt läsa ”Att jämföra filer i katalogträd”