Darbu rinda, beanstalkd vs gearmand
2010-06-17 12:20:28 UTC by maris in Linux, Skripti,Manā redzes lokā nonāca beanstalkd ātrs, dalīts (distributed) darbu menedžeris, ar kura palīdzību tika uzrakstits pdf generators, kas var tikt virtuāli neierobežoti mērogots.
Beanstalkd ir visai ātrs un vienkāršs darbu menedžeris, kā raksta autors, tad tā protokols ir balstīts uz memcached. Jaunākajās versijās ir binlog iespēja, kas nodrišina darbu saglabāšanu avārijas gadījumā.
Pēc kāda laika atradu beanstalkd alternatīvu - Gearmand, no iesākuma biju domājis, ka tas ir vecais gearman, ko sarakstīja Danga uz perl, bet vēlāk izrādijās, ka tas ir jauns projekts, kas uzrakstits uz C, bet par bāzi ņemtas originālā Gearman idejas un protokols.
Sākumā šķita, ka šie abi izstrādājumi dara vien un to pašu darbu tomēr ir dažas būtiskas atšīrības.
Gearman atbalsta gan sinronos darbus, kas ļauj izsaukt attālinātu procedūru un sagaidīt rezultātu, gan arī asinhrnos - background darbus, turpretī beanstalkd nav sinhrono darbu atbalsta, tikai asinhronie. Toties beanstalkd ir iespēja izveidot vairākas darbu rindas - Tubes, kuras var būt paredzētas dažādiem servisiem.
Beanstalkd ir vecāks un atstrādātaks produkts, par to arī liecins kļudu datubāze, kas ir krietni mazāka par Gearmand bugs bāzi.
(0 komentāri)resiserfs "Not enough allocable blocks" fix
2010-04-17 07:58:29 UTC by maris in Linux,1st run: reiserfsck --rebuild-sb /dev/DISK
2nd run: reiserfsck --rebuild-tree /dev/DISK
network disk clone
2010-03-22 12:19:51 UTC by maris in Linux, Quick Tips,ssh host "dd if=/dev/sda3 bs=4096" > sda3.img
bandwidth save:
ssh host "dd if=/dev/sda3 bs=4096 | gzip" | gunzip > sda3.img
with progressbar:
ssh host "dd if=/dev/sda3 bs=4096 | gzip" | gunzip | pv -c > sda3.img
Bash regex
2010-03-22 11:03:14 UTC by maris in Linux, Skripti,Kopš Bash 3. versijas ir pārādījies regulāro izteiksmju atbalsts, kas ir līdzīgs realizācijai iekš perl.
if [[ "pirmagrupa01-51" =~ ^([a-zA-Z]+)([0-9]+)-([0-9]+)$ ]]
then
echo "group1:${BASH_REMATCH[1]} group2:${BASH_REMATCH[2]} group3:${BASH_REMATCH[3]}"
fi
path=/var/log/messages
echo ${path%/*}
/var/log
echo ${path#*/}
messages
/etc menedžments ar subversion (svn)
2009-09-11 09:07:25 UTC by maris in Linux, gentoo, Quick Tips,Kas ir subversion visi zina :)
Tā pielietojumu atradu arī /etc menedžēšanai, šad tad gribas redzēt kas kādam konfigam ko ir mainījis, un šad tad ir nepieciešams uztaisīt kādu izmaiņu rollback.
Tiek izveidota repozitorija struktūra
mkdir svnprep
mkdir -p {branches,logs,trunk}
svn import -m 'Initial import' svn://mansSVNservers/repozitorijs
cd ../
rm -rf svnprep
Tiek uztaisīta lokāla darba kopija
svn co svn://mansSVNservers/repozitorijs/trunk /Configs
cd /Configs
Struktūra ir apmēram šāda:
svn:
->branches
->logs
->trunk:
--->all (konfigi kopēji visiem serveriem)
--->$(hostname) (katra hosta individuālie konfigi)
tālāk visi konfigi, kas ir vienādi visiem serveriem tiek pārnesti zem /Configs/all/etc/ un izveidots simlinks.
mv /etc/make.conf /Configs/all/etc/
ln -s /Configs/all/etc/make.conf /etc/
konfigi, kas ir unikāli hostam tiek ienesti iekš /Configs/HOSTNAME
tad jaunie faili tiek pievienoti pie svn un uztaisīts komits.
pēc komita nostrādā post-commit hook, kas caur ssh uz katra servera izpilda 'svn update'.
post-commit hooks
#!/bin/sh
hosts=`ls /Configs`
for h in $hosts
do
ssh root@${h} "cd /Configs; svn update"
done
tādējādi izdarot izmaiņas uz viena hosta updeitojas visi hosti.
Vienīgais priekšnoteikums ir tāds, ka autorizācija uz serveriem notiek ar ssh atslēgām bez paroles.