Ako bezpečne zistiť obsadené miesto na disku neprivilegovaným užívateľom

Predstavte si problém, že potrebujete zistiť obsadené miesto na disku pre niektoré webstránky, ktoré máte v adresári /var/www/. A zároveň to chce spraviť bezpečne.

Takže začnete takýmto skriptom v domovskom adresári neprivilegovaného užívateľa filip:

$ cat /home/filip/zisti-velkost-stranky.sh
#!/bin/sh
for i in /var/www/*; do
   size=`du -hs $i | cut -f 1`
   echo "Stranka $i zabera $size miesta na disku"
done

Pokračovať v čítaní

Hojdačka s preliezačkami pre deti

Zo stavby domu sa mi zvýšilo zopár hranolov a tak som z nich vyrobil takúto hojdačku s preliezačkami pre deti. Horný hranol som nijako neskracoval, má dĺžku cca 6 metrov. Vznikol tak dostatok priestoru na niekoľko hojdačiek, takže deti nemusia súperiť o jednu atrakciu.

2011-10-02_182027_IMG_1923_1024x768

Hojdačka pre deti s preliezkami

 

Integrita súborov s md5deep a cfv

Po zlých skúsenostiach s Btrfs som sa rozhodol vyriešiť problém konzistencie súborov nástrojmi na kontrolu konzistentnosti súborov. Aby som vylúčil závislosť iba od jedného nástroja, napísal som si skript (viď nižšie), ktorý nástrojom cfv vypočíta kontrolné súčty CRC32 a nástrojom hashdeep kontrolné súčty MD5 a SHA256.

Pre inštaláciu v Debiane stačí napísať príkaz: Pokračovať v čítaní

Ako som vyskúšal súborový systém Btrfs

Pred pár dňami som preinštaloval mój laptop. Vzhľadom na to, že som veľa počul o novom súborovom systéme Btrfs pre Linux, rozhodol som sa ho vyskúšať. Rád skúšam nové veci a nové technológie. 🙂

Debian inštalátor ponúkol pri inštalácii možnosť použiť Btrfs, tak som nakonfiguroval štandardné 3 blokové vrstvy takto:

  • disk rozdelený na 2 oblasti (/dev/sda1 – /boot, /dev/sda2 – dm-crypt)
  • LVM v šifrovanom oddieli /dev/sda2
  • niekoľko logických diskov v LVM a btrfs na /dev/vg0/home

Btrfs som teda použil namiesto mnou obľúbeného XFS. Pokračovať v čítaní

Ako správne nasrať zákazníka

Bratislavská vodárenská spoločnosť ma vytočila. Najprv vodár pred 24 dňami nesprávne odpočítal stav vodomera. Teraz prišla nesprávna faktúra vo výške 147% reálnej spotreby.

Pravdu povediac, nezvyknem sa príliš často dívať do vodomernej šachty. Zhodou okolností som tak pred pár dňami urobil. Odpísal som si stav vodomera. A pretože som tak trochu byrokrat, spravil som si jednoduchú tabuľku s dátumom a stavom vodomeru. Potom som ešte prebehol predchádzajúce faktúry a spísal jednotlivé odpočty za predchádzajúce obdobia. S tabuľkou som sa ešte chvíľku hral, a tak som si iba tak pre zaujímavosť do ďalšieho stĺpčeka vyrátal aj priemernú mesačnú spotrebu a výšku poplatku. Spotreba vody v domácnosti sa podľa tabuľky zdala byť v poriadku a výška nákladov za vodu málo zaujímava, tak som tabuľku uložil a išiel spať. Pokračovať v čítaní

Optimalizácia shell skriptov alebo nahradzovanie grep, sed a cut jedným awk

Náhodou som dnes na jednom blogu natrafil na jedej príspevok, kde autor publikoval skript pre zobrazovanie informácií o stave systému v grafickom prostredí. Skript je pekný, ďakujem za inšpiráciu, ale trpí jedným neduhom – príliš komplikované a príliš pomalé získavanie dát. Pokračovať v čítaní

Oprava v skripte na kopírovanie fotiek

Ako som písal v predchádzajúcom príspevku o spracovaní digitálnej fotografie v Linuxe, používam na kopírovanie fotiek z pamäťovej karty na disk počítača vlastný skript.

Kedže som po dlhej dobe znova trošku oprášil Canon EOS 300D, objavil som v skripte ešte zopár detailov, ktoré stáli za opravu. Najnovšiu verziu skriptu si preto môžete stiahnuť priamo z verejne prístupného CVS. Opravené alebo zmenené boli nasledovné veci: Pokračovať v čítaní

grub – This msdos-style partition label has no post-MBR gap

grub: This msdos-style partition label has no post-MBR gap; embedding won’t be possible

GNU grubNarazili ste na takýto problém so zápisom bootloadera grub na disk? Nasledovný príspevok je návodom, ako tento problém vyriešiť.

*grub-setup*
/usr/sbin/grub-setup: warn: This msdos-style partition label has no post-MBR gap; embedding won't be possible!.
/usr/sbin/grub-setup: error: embedding is not possible, but this is required when the root device is on a RAID array or LVM volume.
Installation finished. No error reported.

grub splashscreen Pokračovať v čítaní

Paralelné komprimovanie a dekomprimovanie s pbzip2

logo bzip2
Ak zvyknete komprimovať a dekomprimovať veľké objemy dát, možno sa vám bude hodiť nasledujúci tip, ako nahradiť bzip2 kompatibilnou alternatívou pbzip2.
Bzip2 umožňuje dosiahnuť výborný kompresný pomer, ale je pomerne pomalý.

pbzip2 je paralelná implementácia blokového bzip2 triediaceho kompresného algoritmu, ktorá používa vlákna na zrýchlenie kompresie a dekompresie na SMP systémoch. Výstup je plne kompatibilný s bzip2 verziou, čiže hocičo skomprimované s pbzip2 je možné dekomprimovať s bzip2. Pokračovať v čítaní

Upgrade MySQL v Debiane rozbije master-master replikáciu

Pri poslednom upgrade domácej farmy (laptop, router, storage, …) sa mi stala nemilá vec. Prestala mi fungovať MySQL MASTER-MASTER replikácia medzi laptopom a domácim serveríkom, ktorú použǐvam najmä kvốli zálohovaniu dát.
Stav vyzeral nasledovne, rovnaká chyba na oboch stranách:


(root@localhost) [(none)]> SHOW SLAVE STATUS \G
...
Slave_IO_Running: Yes
Slave_SQL_Running: No
...
Last_Error: Error 'You cannot 'ALTER' a log table if logging is enabled' on query. Default database: 'mysql'. Query: 'ALTER TABLE slow_log
MODIFY start_time TIMESTAMP NOT NULL,
MODIFY user_host MEDIUMTEXT NOT NULL,
MODIFY query_time TIME NOT NULL,
MODIFY lock_time TIME NOT NULL,
MODIFY rows_sent INTEGER NOT NULL,
MODIFY rows_examined INTEGER NOT NULL,
MODIFY db VARCHAR(512) NOT NULL,
MODIFY last_insert_id INTEGER NOT NULL,
MODIFY insert_id INTEGER NOT NULL,
MODIFY server_id INTEGER UNSIGNED NOT NULL,
MODIFY sql_text MEDIUMTEXT NOT NULL'
...

Pokračovať v čítaní

Spracovanie digitálnej fotografie v Linuxe

Keď som si približne v roku 2004 zaobstaral prvý digitálny fotoaparát, začal som sa zaoberať trošku aj spracovaním digitálnej fotografie pod Linuxom.

Najpr som hľadal prezerač obrázkov. Ten som našiel pomerne rýchlo a dlhý čas som teda používal prehliadač gqview. Ten bol svojho času jeden z najlepších. Ale prednedávnom došlo k nahradeniu prehliadača gqview jeho forkom s podobným názvom geeqie, kedže podľa všetkého sa pôvodný autor prestal vývoju venovať. Pokračovať v čítaní

najlepsiepredeti.sk

dramatizované rozprávky pre deti
Spoločne s manželkou sme vytvorili stránku pre všetkých, ktorí sa pohybujú vo svete malých detí. Rodičov, starých rodičov, opatrovateľky, učiteľky v jasliach či materských škôlkach, pracovníkov v detských centrách.

Ak hľadáte podnety, ako Vaše dieťa zaujať, motivovať, niečo ho naučiť, byť pre neho hviezdou a počuť jeho radostný smiech, navštívte našu stránku najlepsiepredeti.sk, kde nájdete dramatizované rozprávky, hry na upratovanie hračiek, rolové hry alebo rozprávky na dobrú noc.

Pre fanúšikov Facebooku je k dispozícií aj facebookova stránka.

Oživenie stránky pre FastCGI Gallery

FastCGI Gallery screenshot
Dnes som konečne po dlhom čase oživil domovskú stránku jedného môjho staršieho projektu. Konkrétne fastcgi-gallery.platon.sk.

Pohľad do repozitára CVS hovorí, že tento projekt vznikol v septembri 2005. Ak si dobre spomínam, tak som vtedy v tom čase hľadal nejakú galériu, do ktorej by nebolo potrebné fotky nahrávať manuálne, ale vedela by nafotené zábery ihneď prezentovať na webe. V tom čase dosť frčala Gallery2, ale mala niekoľko nevýhod: fotky sa museli manuálne uploadovať do galérie a kedže sa písal rok 2005, o AJAXe a uploade fotiek štýlom facebooku nebolo ani chýru, ani slychu.
Kedže som bol veľkým fanúšikom Perlu, našiel som vtedy veľmi zaujímavý modul Apache::Gallery. Ten som si aj nainštaloval a chvíľu používal. Ale aj ten mal svoje muchy. Napríklad obsah veľkého adresára načítaval vždy znova a znova pri každom kliknutí. Niekoľko detailov som si tam dokonca aj sám opravil a poslal autorom patch.

Neskokojný s performance Apache::Gallery som spravil aj jeho FastCGI alternatívu. Tá umožňuje cachovať niektoré údaje, ktoré majú dramatický vplyv na rýchlosť. Nakoniec sa mi podarilo urýchliť prezeranie fotiek asi 10x (oproti Apache::Gallery). Popri tom som implementoval aj takéto vlastnosti:

  • cachovanie obsahu adresára
  • názvy albumov a popisy k nim môžu byť viacjazyčné
  • stránkovanie albumov
  • prednačítavanie nasledujúceho obrázku

Až by ste hľadali softvér na fotogalériu pre seba (predsa len nie všetko je možné dať na facebook alebo Picassu), tak mrknite napríklad na toto porovanie galérií.

Ako som si zriadil blog

Moja pôvodná stránka už niekoľko rokov stagnovala. Dôvodom bol nedostatok času na udržiavanie, ktoré začalo byť pomerne komplikované. Výsledkom bola stránka bez akýchkoľvek noviniek, strácanie Google Page Rank a následne aj niekoľkomesačná nefunkčnosť stránky. 🙁

Rozhodol som sa s tým niečo spraviť a začal som hľadať riešenie.

Výsledkom bola migrácia na nové technológie. Nie žeby tie staré boli zlé, ale času je málo a niekedy sa treba venovať aj dôležitejším veciam, ako je písanie HTML kódu v textovom editore. Stránku už teda nepoháňa Perl, ale PHP. Nové zápisku sa pridávajú cez administračné rozhranie, ktoré ich ukladá do databázy. Rozširujúce pluginy už neprogramujem, ale iba sťahujem a konfigurujem. Čo už. Taký je život. 🙂

Výsledok? Veď uvidíme … Možno z viacej zápiskov na súkromnom webe