<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>MDLog:/sysadmin &#187; Linux</title> <atom:link href="http://www.ducea.com/category/linux/feed/" rel="self" type="application/rss+xml" /><link>http://www.ducea.com</link> <description>The Journal Of A Linux Sysadmin</description> <lastBuildDate>Tue, 07 Feb 2012 19:40:06 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3</generator> <item><title>HowTo completely remove a file from Git history</title><link>http://www.ducea.com/2012/02/07/howto-completely-remove-a-file-from-git-history/</link> <comments>http://www.ducea.com/2012/02/07/howto-completely-remove-a-file-from-git-history/#comments</comments> <pubDate>Tue, 07 Feb 2012 19:40:06 +0000</pubDate> <dc:creator>- Marius -</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Tips & Tricks]]></category> <category><![CDATA[git]]></category> <category><![CDATA[howto]]></category> <category><![CDATA[tips]]></category><guid
isPermaLink="false">http://www.ducea.com/?p=1415</guid> <description><![CDATA[I just started working on a new project and as you would expect one of the first things I did was to download its git repository from github. These were just some scripts and should have been very small ~5M, but the clone from gitbhub took about one hour as the full repo folder was [...]<p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p> ]]></description> <content:encoded><![CDATA[<p>I just started working on a new project and as you would expect one of the first things I did was to download its git repository from <strong>github</strong>. These were just some scripts and should have been very small ~5M, but the clone from gitbhub took about one hour as the full repo folder was 1.5G… (with the biggest size under <strong>.git/objects/pack</strong>) Crazy… <em>What was in the git repository history that would cause something like this?</em> I assumed that at some point in time the repository was much bigger (probably from some file/s that don&#8217;t exist anymore), but how could I find out what were those files? And more important howto remove them from history? Well if you came here from a <em>google search</em> on &#8220;how to remove a file from git history&#8221; then you probably know there are plenty of docs and howtos on how to achieve this but from my experience none of them really worked. This is why I decided to document the steps needed to identify the file from the git repo history that is using all that space and to have it removed fully and bring the repository to a manageable size.</p><p>First we need to identify the file that is causing this issue; and for this we will verify all the packed objects and look for the biggest ones:<br
/> <code>git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5</code><br
/> (and grab the revisions with the biggest files). Then find the name of the files in those revisions:<br
/> <code>git rev-list --objects --all | grep &lt;revision_id&gt;</code></p><p>Next, remove the file from all revisions:<br
/> <code>git filter-branch --index-filter 'git rm --cached --ignore-unmatch &lt;filename&gt;'<br
/> rm -rf .git/refs/original/</code></p><p>Edit .git/packed-refs and remove/comment any external pack-refs. Without this the cleanup might not work. I my case I had refs/remotes/origin/master and some others branches.<br
/> <code>vim .git/packed-refs</code></p><p>Finally repack and cleanup and remove those objects:<br
/> <code>git reflog expire --all --expire-unreachable=0<br
/> git repack -A -d<br
/> git prune</code></p><p>Hopefully these steps will help you completely remove those un-wanted files from your git history. Let me know if you have any problems after following these simple steps.</p><p><span
id="more-1415"></span>Note: if you want to test these steps here is how to quickly create a test repo:<br
/> <code># Make a small repo<br
/> mkdir test<br
/> cd test<br
/> git init<br
/> echo hi &gt; there<br
/> git add there<br
/> git commit -m 'Small repo'<br
/> # Add a random 10M binary file<br
/> dd if=/dev/urandom of=testme.txt count=10 bs=1M<br
/> git add testme.txt<br
/> git commit -m 'Add big binary file'<br
/> # Remove the 10M binary file<br
/> git rm testme.txt<br
/> git commit -m 'Remove big binary file'</code></p><p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p>]]></content:encoded> <wfw:commentRss>http://www.ducea.com/2012/02/07/howto-completely-remove-a-file-from-git-history/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Build your own packages easily with FPM</title><link>http://www.ducea.com/2011/08/31/build-your-own-packages-easily-with-fpm/</link> <comments>http://www.ducea.com/2011/08/31/build-your-own-packages-easily-with-fpm/#comments</comments> <pubDate>Wed, 31 Aug 2011 22:13:02 +0000</pubDate> <dc:creator>- Marius -</dc:creator> <category><![CDATA[Centos]]></category> <category><![CDATA[Debian]]></category> <category><![CDATA[Fedora]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[RHEL]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[Ubuntu]]></category> <category><![CDATA[deb]]></category> <category><![CDATA[debian_packages]]></category> <category><![CDATA[FPM]]></category> <category><![CDATA[rpm]]></category><guid
isPermaLink="false">http://www.ducea.com/?p=1369</guid> <description><![CDATA[Building packages is a task that every system administrator will end up doing. Most of the time this is not a very interesting task but someone has to do it, right? Normally you will end up modifying and tweaking based on your own needs an existing package that was built by the maintainers of the [...]<p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p> ]]></description> <content:encoded><![CDATA[<p><strong>Building packages</strong> is a task that every system administrator will end up doing. Most of the time this is not a very interesting task but someone has to do it, right? Normally you will end up modifying and tweaking based on your own needs an existing package that was built by the maintainers of the Linux distribution that you are using. In time you might even become familiar with the packaging system you are using (rpm, deb, etc.) and you will be able to write a spec file and start from scratch and build a new package if you need to. Still, this <em>process is complicated and requires a lot of work</em>.</p><p>Luckily, <strong><a
href="http://www.semicomplete.com/blog" target="_blank">Jordan Sissel</a></strong> has built a tool called <strong><a
href="https://github.com/jordansissel/fpm" target="_blank">FPM</a></strong> (Effing Package Management), exactly for this: to ease the pain of building new packages; packages that you will use for your own infrastructure and you want them customized based on your own needs; and you don&#8217;t care about upstream rules and standards and other limitations when building such packages. This can be very useful for people deploying their own applications as rpms (or debs) and can simplify a lot of the process of building those packages.</p><p>FPM can be easily installed on your build system using rubygems:<br
/> <code>gem install fpm</code></p><p>Once installed you can use fpm to build <strong>packages</strong> (targets):</p><ul><li>deb</li><li>rpm</li><li>solaris</li></ul><p>from any of the following <strong>sources</strong>:</p><ul><li>directory (of compiled source of some application)</li><li>gem</li><li>python eggs</li><li>rpm</li><li>node npm packages</li></ul><p><span
id="more-1369"></span>Use the command line help (fpm &#8211;help) or the <a
href="https://github.com/jordansissel/fpm/wiki" target="_blank">wiki</a> to see full details on how to use it. I&#8217;ll show some simple examples on how to build some packages from various input sources that I&#8217;ve found useful myself.</p><h3>1. Package a directory &#8211; output of a &#8216;make install&#8217; command</h3><p>This is how you would usually package an application that you would install with:<br
/> <em>./configure; make; make install</em><br
/> For example, here is how you can create an rpm of the latest version of memcached:<br
/> <code>wget http://memcached.googlecode.com/files/memcached-1.4.7.tar.gz<br
/> tar -zxvf memcached-1.4.7.tar.gz<br
/> cd memcached-1.4.7<br
/> ./configure --prefix=/usr<br
/> make</code><br
/> so far everything looks like a normal manual installation (that would be followed by make install). Still we will now install it in a separate folder so we can capture the output:<br
/> <code>mkdir /tmp/installdir<br
/> make install DESTDIR=/tmp/installdir</code><br
/> and finally using fpm to create the rpm package:<br
/> <code>fpm -s dir -t rpm -n memcached -v 1.4.7 -C /tmp/installdir</code><br
/> where <strong>-s</strong> is the input source type (directory), <strong>-t</strong> is the type of package (rpm), <strong>-n</strong> in the name of the package and <strong>-v</strong> is the version; <strong>-C</strong> is the directory where fpm will look for the files.<br
/> Note: you might need to install various libraries to build your package; for ex. in this case I had to install libevent-dev.</p><p>If you are packaging your own application you can do this just by pointing to your build folder and set the version of the app. Here is an example for an deb package:<br
/> <code>fpm -s dir -t deb -n myapp -v 0.0.1 -C /build/myapp/0.0.1/</code></p><p>There are various other parameters that you can use but basically this is how simple it is to build a package from a directory.<br
/> Here is an example on how to define some dependencies on the package you are building (using <strong>-d</strong>; repeat it as many times as needed):<br
/> <code>fpm -s dir -t deb -n memcached -v 1.4.7 -C /tmp/installdir \<br
/> -d "libstdc++6 (&gt;= 4.4.5)" \<br
/> -d "libevent-1.4-2 (&gt;= 1.4.13)"</code></p><h3>2. Ruby gems or python egg &#8211; converted to packages</h3><p>You can create a deb or rpm from a gem very simple with fpm:<br
/> <code>fpm -s gem -t deb &lt;gem_name&gt;</code><br
/> this will download the gem and create a package named rubygem-&lt;gem_name&gt;<br
/> For example:<br
/> <code>fpm -s gem -t deb fpm</code><br
/> will create a debian package for fpm: rubygem-fpm_0.3.7_all.deb</p><p>You can inspect it with<em> dpkg &#8211;info</em> and you can notice that in this case it will fill nicely all the fields with the maintainer, and dependencies on various other gems. Very cool.</p><p>If you use python and want to package various python eggs this will work exactly the same and you will use -s python (it will download the python packages with easy_install first).</p><p>Overall <strong>FPM</strong> is a great tool and can help you<span
style="text-decoration: underline;"><em> simplify the way you are building your own packages</em></span>. Check it out and let me know what you think and if you found it useful. And if you found this useful don’t forget to thank <strong><a
href="http://www.twitter.com/jordansissel" target="_blank">Jordan</a></strong> for his great work on this awesome tool.</p><p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p>]]></content:encoded> <wfw:commentRss>http://www.ducea.com/2011/08/31/build-your-own-packages-easily-with-fpm/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Building Vagrant boxes with veewee</title><link>http://www.ducea.com/2011/08/15/building-vagrant-boxes-with-veewee/</link> <comments>http://www.ducea.com/2011/08/15/building-vagrant-boxes-with-veewee/#comments</comments> <pubDate>Tue, 16 Aug 2011 01:49:23 +0000</pubDate> <dc:creator>- Marius -</dc:creator> <category><![CDATA[Configuration management]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[MacOSX]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[chef]]></category> <category><![CDATA[puppet]]></category> <category><![CDATA[vagrant]]></category> <category><![CDATA[veewee]]></category> <category><![CDATA[virtualbox]]></category><guid
isPermaLink="false">http://www.ducea.com/?p=1350</guid> <description><![CDATA[If you used vagrant (great tool, right?) you have probably downloaded a basebox from some remote location to get you started. This is a great quick start, and there are many good boxes out there that you can use; vagrantbox.es does a great job in listing various public vagrant boxes. But if you are like [...]<p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p> ]]></description> <content:encoded><![CDATA[<p>If you used <strong><a
href="http://vagrantup.com/" target="_blank">vagrant</a></strong> (great tool, right?) you have probably downloaded a basebox from some remote location to get you started. This is a great quick start, and there are many good boxes out there that you can use; <a
href="http://www.vagrantbox.es/" target="_blank">vagrantbox.es</a> does a great job in listing various public vagrant boxes. But if you are like me, you probably will want to customize the boxes you are using; you might want to install them from scratch based on your own little/or/big customizations. Well if you are like that, then you will be happy to hear that <strong><a
href="http://www.jedi.be/blog" target="_blank">Patrick Debois</a></strong> had exactly the same problem when he decided to write <strong><a
href="https://github.com/jedi4ever/veewee" target="_blank">veewee</a></strong>. And veewee is exactly that missing part of vagrant that allows you to easily build your own vagrant boxes from scratch.</p><p>So let&#8217;s see how we can use veewee. I&#8217;m assuming you already have vagrant installed (and <a
href="http://download.virtualbox.org/virtualbox/" target="_blank">virtualbox</a>), but if you don&#8217;t please install them first. To install <strong>veewee</strong> we just have to install the veewee gem:<br
/> <code>gem install veewee</code><br
/> once you installed veewee you can see a new task added to vagrant: <strong>basebox</strong>.</p><p><span
id="more-1350"></span>Here is the list of the <strong>templates</strong> we get out of the box once we install veewee:<br
/> <code><strong>vagrant basebox templates</strong><br
/> The following templates are available:<br
/> vagrant basebox define '' 'archlinux-i686'<br
/> vagrant basebox define '' 'CentOS-4.8-i386'<br
/> vagrant basebox define '' 'CentOS-5.6-i386'<br
/> vagrant basebox define '' 'CentOS-5.6-i386-netboot'<br
/> vagrant basebox define '' 'Debian-6.0.1a-amd64-netboot'<br
/> vagrant basebox define '' 'Debian-6.0.1a-i386-netboot'<br
/> vagrant basebox define '' 'Fedora-14-amd64'<br
/> vagrant basebox define '' 'Fedora-14-amd64-netboot'<br
/> vagrant basebox define '' 'Fedora-14-i386'<br
/> vagrant basebox define '' 'Fedora-14-i386-netboot'<br
/> vagrant basebox define '' 'freebsd-8.2-experimental'<br
/> vagrant basebox define '' 'freebsd-8.2-pcbsd-i386'<br
/> vagrant basebox define '' 'freebsd-8.2-pcbsd-i386-netboot'<br
/> vagrant basebox define '' 'gentoo-latest-i386-experimental'<br
/> vagrant basebox define '' 'opensuse-11.4-i386-experimental'<br
/> vagrant basebox define '' 'solaris-11-express-i386'<br
/> vagrant basebox define '' 'Sysrescuecd-2.0.0-experimental'<br
/> vagrant basebox define '' 'ubuntu-10.04.2-amd64-netboot'<br
/> vagrant basebox define '' 'ubuntu-10.04.2-server-amd64'<br
/> vagrant basebox define '' 'ubuntu-10.04.2-server-i386'<br
/> vagrant basebox define '' 'ubuntu-10.04.2-server-i386-netboot'<br
/> vagrant basebox define '' 'ubuntu-10.10-server-amd64'<br
/> vagrant basebox define '' 'ubuntu-10.10-server-amd64-netboot'<br
/> vagrant basebox define '' 'ubuntu-10.10-server-i386'<br
/> vagrant basebox define '' 'ubuntu-10.10-server-i386-netboot'<br
/> vagrant basebox define '' 'ubuntu-11.04-server-amd64'<br
/> vagrant basebox define '' 'ubuntu-11.04-server-i386'<br
/> vagrant basebox define '' 'windows-2008R2-amd64-experimental'</code></p><p>This means that we can build a box based on <strong>any</strong> of the above templates. <em>That&#8217;s awesome!</em> Let&#8217;s say we want to build a debian squeeze box using veewee; we would have to run:<br
/> <code>vagrant basebox define 'debian-60' 'Debian-6.0.1a-amd64-netboot'</code><br
/> and this will create a folder definitions/debian-60 with the following files (the content of the veewee template):<br
/> <code>definition.rb<br
/> postinstall.sh<br
/> preseed.cfg</code><br
/> we can modify/tune any of those files based on our custom needs. The file <strong>definition.rb</strong> is the main definition of the template. Here you would define the memory size, disk size, iso file, etc. The content is very easy to understand, but you would normally not have to change many things here. <strong>preseed.cfg</strong> is just a standard preseed file where you would customize the actual install process (you could change here the partitions or their type, timezone setup, etc). And finally <strong>postinstall.sh</strong> that is a bash script that will run at the end of the installation process and it will install ruby, gems , chef and puppet and also the virtualbox guest additions (needed for shared folders).</p><p>If you have the iso already place it in <strong>&#8216;currentdir&#8217;/iso</strong>. If not, veewee will download it and place it in the appropriate folder before starting the install process:<br
/> <code>vagrant basebox build 'debian-60'</code><br
/> this will start the installation and you can see all the steps it takes (the keystrokes as they are entered, etc.). This can take a while… Once it is done you can validate the build with:<br
/> <code>vagrant basebox validate 'debian-60'</code><br
/> (this will run a few basic tests to see if it can connect to the vm as user vagrant, if chef and puppet were installed, if the shared folders are accessible, etc).</p><p>And finally you can export it as a vagrant box with:<br
/> <code>vagrant basebox export 'debian-60'</code><br
/> and add it to vagrant:<br
/> <code>vagrant box add 'debian-60' debian-60.box</code><br
/> and now you can use it in vagrant with:<br
/> <code>vagrant init 'debian-60'</code></p><p>That&#8217;s it. Very simple and now we have our own box built from scratch. As a side note, I found this very useful to test and troubleshoot preseed configurations <img
src='http://www.ducea.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . As you can see there are plenty of templates available in veewee but if you create a new one please consider to share it with others and send it to Patrick on <a
href="https://github.com/jedi4ever/veewee" target="_blank">github</a>. I&#8217;m sure he will be happy to include it in newer versions of veewee. And if you found this useful don&#8217;t forget to thank <a
href="https://twitter.com/#!/patrickdebois" target="_blank">Patrick</a> for his great work on this awesome tool.</p><p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p>]]></content:encoded> <wfw:commentRss>http://www.ducea.com/2011/08/15/building-vagrant-boxes-with-veewee/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>HowTo Improve IO Performance for KVM Guests</title><link>http://www.ducea.com/2011/07/06/howto-improve-io-performance-for-kvm-guests/</link> <comments>http://www.ducea.com/2011/07/06/howto-improve-io-performance-for-kvm-guests/#comments</comments> <pubDate>Wed, 06 Jul 2011 17:58:18 +0000</pubDate> <dc:creator>- Marius -</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Tips & Tricks]]></category> <category><![CDATA[Ubuntu]]></category> <category><![CDATA[Virtualization]]></category> <category><![CDATA[kvm]]></category> <category><![CDATA[performance]]></category> <category><![CDATA[xen]]></category><guid
isPermaLink="false">http://www.ducea.com/?p=1313</guid> <description><![CDATA[Recently I&#8217;ve worked on a project where we deployed a bunch KVM instances. Immediately we noticed horrible IO performance on all the guests instances. In this particular case the hosts and the guests were all Ubuntu 10.04 Lucid and were created with vmbuilder without any special settings using the ubuntu defaults. Here is a sample [...]<p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p> ]]></description> <content:encoded><![CDATA[<p>Recently I&#8217;ve worked on a project where we deployed a bunch <strong>KVM</strong> instances. Immediately we noticed <em>horrible IO performance</em> on all the guests instances. In this particular case the hosts and the guests were all <em>Ubuntu 10.04 Lucid</em> and were created with <strong>vmbuilder</strong> without any special settings using the ubuntu defaults. Here is a sample command similar to what we used to build the kvm images:</p><p><code>vmbuilder kvm ubuntu --suite=lucid --flavour=virtual --arch=amd64 --mirror=http://en.archive.ubuntu.com/ubuntu -o --libvirt=qemu:///system --ip=10.0.0.11 --gw=10.0.0.1 --part=vmbuilder.partition --templates=mytemplates --user=username --pass=password --firstboot=/var/vms/vm1/boot.sh --mem=1024 --hostname=myhost --bridge=br0</code></p><p>Now even if we haven&#8217;t tuned anything I would have expected it to perform at least the same level or even better compared with a <strong>Xen</strong> instance. Still, this was not the case, and the performance was really horrible and any kind of IO bound tasks would effectively lock the instance. Looking into this and trying to understand what was the problem I was able to isolate this issue happening only on instances that had <strong>ext4</strong> as the filesystem (the default for lucid), but strangely enough this didn&#8217;t happen for an older instance that was build with <strong>ext3</strong> (actually a <em>debian lenny</em> instance). All the images build with the above command will use <strong>qcow2</strong> sparse format as the default format for the disk.</p><p><span
id="more-1313"></span>In order to achieve good IO performance we had to use <strong>cache=&#8217;writeback&#8217;</strong> for the instances and this will significantly increase the IO performance and bring it almost to host level performance, but in anycase much better compared with the old xen instances we had. Here is how you can enable writeback for an instance: stop the vm; edit the guestdomain and add cache=writeback in the driver section, save and start back the vm:<br
/> <code>virsh --connect qemu:///system<br
/> stop guestdomain<br
/> edit guestdomain   &lt;-- add cache='writeback' in the driver section<br
/> start guestdomain</code></p><p>Here is the how the disk part of my guest domain looks like after adding the cache writeback:<br
/> <code>&lt;disk type='file' device='disk'&gt;<br
/> &lt;driver name='qemu' type='qcow2' <strong>cache='writeback'</strong>/&gt;<br
/> &lt;source file='/var/vms/vm2/ubuntu-kvm/tmphAUcOB.qcow2'/&gt;<br
/> &lt;target dev='hda' bus='ide'/&gt;<br
/> &lt;/disk&gt;</code></p><p>In the process of debugging and searching for a fix for this issue, I&#8217;ve found out that it can also be useful to use <strong>elevator=noop</strong> as the <em>default kernel io scheduler</em>; this definitely helps, but not to the same extend as the cache writeback setting on the virtio disk. You can add elevator=noop to your kernel command line in your grub config, and I have this by default on all the instances.</p><p>Hopefully this will help you greatly improve IO performance for your KVM guests and will save you the time I&#8217;ve lost while trying to find a solution to this problem. Please feel free to share your experiences using the comment form bellow; also I&#8217;m curious if you have any other tips on how to improve this even more.</p><p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p>]]></content:encoded> <wfw:commentRss>http://www.ducea.com/2011/07/06/howto-improve-io-performance-for-kvm-guests/feed/</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>HowTo upgrade Chef from 0.10 to 0.10.2 &#8211; rubygems install</title><link>http://www.ducea.com/2011/07/01/howto-upgrade-chef-from-0-10-to-0-10-2-rubygems-install/</link> <comments>http://www.ducea.com/2011/07/01/howto-upgrade-chef-from-0-10-to-0-10-2-rubygems-install/#comments</comments> <pubDate>Fri, 01 Jul 2011 19:30:48 +0000</pubDate> <dc:creator>- Marius -</dc:creator> <category><![CDATA[Configuration management]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[Tips & Tricks]]></category> <category><![CDATA[chef]]></category> <category><![CDATA[opschef]]></category><guid
isPermaLink="false">http://www.ducea.com/?p=1327</guid> <description><![CDATA[A few days ago Opscode released a security fix for chef server 0.10.0 and 0.9.16 and this post will show how upgrade to chef-server 0.10.2. First start by backing up your data. Seriously. In the past I&#8217;ve had serious problems when performing similar upgrades (even a minor one like this that looks harmless), and even if [...]<p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p> ]]></description> <content:encoded><![CDATA[<p>A few days ago <strong><a
href="http://www.opscode.com/" target="_blank">Opscode</a></strong> released a <a
href="http://www.opscode.com/blog/2011/06/29/chef-0-10-2-and-0-9-18-released/" target="_blank">security fix</a> for <strong>chef server 0.10.0</strong> and 0.9.16 and this post will show how upgrade to chef-server <strong>0.10.2</strong>. First start by backing up your data. Seriously. In the past I&#8217;ve had serious problems when performing similar upgrades (even a minor one like this that looks harmless), and even if now opscode are much better with this process it never hurts to be precautions. Since I use a <strong>rubygem</strong> install the next steps will focus on this type of installation; if you are using distribution or opscode packages this will not be very helpful as probably packages are not yet available for this upgrade; once they will replace the gem upgrade part with the deb/rpm upgrade and you should be set.</p><h3>1. Stop all the chef related services</h3><p>Here is a handy command that will stop all the possible chef server related services:<br
/> <code>for svc in server server-webui solr expander<br
/> do<br
/> sudo /etc/init.d/chef-${svc} stop<br
/> done</code></p><h3><span
id="more-1327"></span>2. Upgrade the chef-server gems</h3><p>Simply run:<br
/> <code>sudo gem update chef chef-server --no-ri --no-rdoc</code><br
/> and this should upgrade all the other gems it needs to. A sample output will look like this:<br
/> <code>gem update chef chef-server --no-ri --no-rdoc<br
/> Updating installed gems<br
/> Updating chef<br
/> Successfully installed chef-0.10.2<br
/> Updating chef-expander<br
/> Successfully installed chef-expander-0.10.2<br
/> Updating chef-server<br
/> Successfully installed chef-server-api-0.10.2<br
/> Successfully installed chef-server-webui-0.10.2<br
/> Successfully installed chef-solr-0.10.2<br
/> Successfully installed chef-server-0.10.2<br
/> Gems updated: chef, chef-expander, chef-server-api, chef-server-webui, chef-solr, chef-server</code></p><p>Optional: if you want you can cleanup the system from old, unused gems with:<br
/> <code>sudo gem cleanup</code></p><h3>3. Start back the chef server services</h3><p>Again in a single command, now to start them:<br
/> <code>for svc in server server-webui solr expander<br
/> do<br
/> sudo /etc/init.d/chef-${svc} start<br
/> done</code></p><p>That&#8217;s it, now you should be running the latest and greatest chef server version 0.10.2.</p><p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p>]]></content:encoded> <wfw:commentRss>http://www.ducea.com/2011/07/01/howto-upgrade-chef-from-0-10-to-0-10-2-rubygems-install/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Xen error: stdin: is not a tty</title><link>http://www.ducea.com/2011/03/01/xen-error-stdin-is-not-a-tty/</link> <comments>http://www.ducea.com/2011/03/01/xen-error-stdin-is-not-a-tty/#comments</comments> <pubDate>Wed, 02 Mar 2011 06:47:01 +0000</pubDate> <dc:creator>- Marius -</dc:creator> <category><![CDATA[Debian]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[Tips & Tricks]]></category> <category><![CDATA[Virtualization]]></category> <category><![CDATA[debian-lenny]]></category> <category><![CDATA[lenny]]></category> <category><![CDATA[xen]]></category><guid
isPermaLink="false">http://www.ducea.com/?p=1231</guid> <description><![CDATA[After installing a clean Debian Lenny Xen system using xen-tools, I received this strange error when trying to connect using ssh to the machine: PTY allocation request failed on channel 0 stdin: is not a tty It looks like for some reason, xen-tools didn&#8217;t install the udev package. So in order to fix this issue, I [...]<p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p> ]]></description> <content:encoded><![CDATA[<p>After installing a clean Debian Lenny Xen system using <strong>xen-tools</strong>, I received this strange error when trying to connect using <strong>ssh</strong> to the machine:<br
/> <code>PTY allocation request failed on channel 0<br
/> stdin: is not a tty</code></p><p>It looks like for some reason, xen-tools didn&#8217;t install the <strong>udev</strong> package. So in order to fix this issue, I had to connect (using the virtual console) to the xen machine:<br
/> <code>xen console 1</code><br
/> and install udev:<br
/> <code>apt-get install udev</code><br
/> strange enough the <strong>/dev/pts</strong> mount entry was present in <strong>/etc/fstab</strong> so all I had to do was to remount it with:<br
/> <code>mount -a</code><br
/> (<em>if you don&#8217;t have this entry</em> make sure to add it in /etc/fstab:<br
/> <code>devpts          /dev/pts        devpts  rw,noexec,nosuid,gid=5,mode=620 0  0</code><br
/> and if the folder /dev/pts doesn&#8217;t exist create it first and after that mount -a).</p><p>This should fix the ssh problem and you should now be able to ssh into the xen machine. Next to see if this is fixed in xen-tools in Squeeze, and if not to file a bug for it.</p><p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p>]]></content:encoded> <wfw:commentRss>http://www.ducea.com/2011/03/01/xen-error-stdin-is-not-a-tty/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>HowTo upgrade from Debian Lenny to Squeeze</title><link>http://www.ducea.com/2011/02/05/howto-upgrade-from-debian-lenny-to-squeeze/</link> <comments>http://www.ducea.com/2011/02/05/howto-upgrade-from-debian-lenny-to-squeeze/#comments</comments> <pubDate>Sat, 05 Feb 2011 23:46:11 +0000</pubDate> <dc:creator>- Marius -</dc:creator> <category><![CDATA[Debian]]></category> <category><![CDATA[debian-lenny]]></category> <category><![CDATA[debian-squeeze]]></category> <category><![CDATA[howto]]></category><guid
isPermaLink="false">http://www.ducea.com/?p=1280</guid> <description><![CDATA[This post will show how to upgrade from Debian 5.0.x &#8220;Lenny&#8221; to the latest stable Debian release 6.0 &#8220;Squeeze&#8221;. One of the reasons I&#8217;ve liked Debian in the first place was the advantage of being able to do a live, in place updates from one major release to another, usually in a safe way. As [...]<p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p> ]]></description> <content:encoded><![CDATA[<p><img
class="alignright" title="Debian Logo" src="http://www.ducea.com/images/debianlogo100.png" alt="" width="100" height="123" />This post will show how to upgrade from <strong>Debian 5.0.x &#8220;Lenny&#8221;</strong> to the latest stable <strong>Debian release 6.0 &#8220;Squeeze&#8221;</strong>. One of the reasons I&#8217;ve liked Debian in the first place was the advantage of being able to do a live, in place updates from one major release to another, usually in a safe way. As always, if you do this, please take some time to <strong>backup your system</strong> if you care of your data, as this is a major upgrade and things can go wrong. <strong>Squeeze</strong> brings in a few <em>big changes</em> and I will outline some of them, but I would recommend to read the <a
href="http://www.debian.org/releases/squeeze/amd64/release-notes/" target="_blank">release notes</a> and look for any incompatibilities (hardware or software) or changed things that could affect your particular setup.</p><h3>1. Update apt sources.list</h3><p>The first thing we will do (after the backup of course) is to edit the <strong>/etc/apt/sources.list</strong> file and replace “<strong>lenny</strong>” with “<strong>squeeze</strong>“. Originally, this might look like this (for a system using the main US mirrors; your file might use a different local one):</p><pre><code>deb http://ftp.us.debian.org/debian/ <strong>lenny</strong> main contrib non-free
deb-src http://ftp.us.debian.org/debian/ <strong>lenny</strong> main contrib non-free

deb http://security.debian.org/ etch/updates <strong>lenny</strong> contrib non-free</code></pre><p>after replacing lenny with squeeze the file will look like this:</p><pre><code>deb http://ftp.us.debian.org/debian/ <strong>squeeze</strong> main contrib non-free
deb-src http://ftp.us.debian.org/debian/ <strong>squeeze</strong> main contrib non-free

deb http://security.debian.org/ <strong>squeeze</strong>/updates main contrib non-free</code></pre><p><span
id="more-1280"></span></p><h3>2. Perform the system upgrade</h3><p>After updating the sources file, you will have to <em>refresh the indexes</em> with:<br
/> <code>aptitude update</code></p><p>Next let&#8217;s <em>manually upgrade the core apt packages</em> (this will pull in some extra dependencies, and this is perfectly fine):<br
/> <code>aptitude install apt dpkg aptitude</code></p><p>And finally we will perform the bulk of package upgrades with:<br
/> <code>aptitude safe-upgrade</code><br
/> this will take a while depending on what packages you have installed (that will need to be upgraded) and on your internet connection speed.</p><p><em>Here are <span
style="text-decoration: underline;">some changes</span> that you might want to pay special attention during the upgrade:</em><br
/> - <strong>dash</strong>: squeeze uses dash instead of /bin/sh as the default system shell. This is the recommended way and it is supposed to be faster and improve the system overall performance. I recommend to use it and accept this change.<br
/> - <strong>grub2</strong>: is the default in squeeze and the upgrade will recommend to upgrade from your existing grub. This is a major change and for this reason initially the boot loader will be chainloaded in the existing menu.lst to verify it works fine. If you want to upgrade I would recommend to do the chainload and test it with at least one reboot before removing grub legacy.<br
/> - <strong>sysv-rc</strong>: to improve the boot process the upgrade will offer to move to dependency-based sequencing. This is irreversible but highly recommended. I had no problem with it and don&#8217;t see why anyone would not want this.<br
/> - <strong>UUIDs</strong>: the installer will recommend to switch from regular disk devices (aka /dev/sda*) to disk IDs (aka UUID=c6ecae74-6754-4ad0-986d-98dd9cbfd293) in various configuration places like  /etc/fstab, /boot/grub/menu.lst. I personally don&#8217;t like that, but didn&#8217;t want to take the risk for the device to change its name with the new kernel and went with the change. If you do the same pls. doublecheck the changed files before rebooting.</p><p>Now it is time to <strong>reboot</strong> your system for the first time into squeeze. Fingers crossed and in a few minutes you will be running squeeze (as always an out of band impi console is handy when doing such upgrades)</p><h3>3. Complete the upgrade</h3><p>If you upgraded to grub2 and want to remove the chainloaded <strong>grub-legacy</strong> you can remove it completely from the system with:<br
/> <code>upgrade-from-grub-legacy</code><br
/> and the output will look like this:<br
/> <code>0<br
/> Installation finished. No error reported.<br
/> Generating grub.cfg ...<br
/> Found linux image: /boot/vmlinuz-2.6.32-5-amd64<br
/> Found initrd image: /boot/initrd.img-2.6.32-5-amd64<br
/> Found linux image: /boot/vmlinuz-2.6.26-2-amd64<br
/> Found initrd image: /boot/initrd.img-2.6.26-2-amd64<br
/> done</code></p><p>You can now run:<br
/> <code>aptitude full-upgrade</code><br
/> and this will complete some extra packages that were not straitforward and not seen as safe by the normal upgrade process (there might be none, depending on the state of your existing system). Evaluate them before moving forward. And finally once you are done reboot once more (to see that grub2 is working fine by itself) and you will be running the latest uptodate squeeze system.</p><h3>4. (Optional) Convert your ext3 filesystems to ext4</h3><p>This step is optional and if you are happy with the <strong>ext3</strong> filesystem then you can safely skip it. Myself, I&#8217;ve done this most of the time so I thought it might be useful to add it here for anyone else interested to do the same.</p><p>First doublecheck if you are running the 2.6.32 squeeze kernel:<br
/> <code>uname -a<br
/> Linux srv01 2.6.32-5-amd64 #1 SMP Wed Jan 12 03:40:32 UTC 2011 x86_64 GNU/Linux</code></p><p>Older than 2.6.28 kernels (like lenny 2.6.26 for example) don&#8217;t have native support for ext4, so this will fail for an older kernel. Because ext4 is backwards compatible with ext3, all we have to do is to change the mount definitions to ext4 in fstab:<br
/> <code>vim /etc/fstab</code><br
/> and change the filesystem from <strong>ext3</strong> to <strong>ext4</strong> for any devices you might have. Make a note on the devices you change, and reboot the machine. After the reboot the machine will use the ext4 driver for the old filesystem even though it doesn&#8217;t take full advantage of the ext4 capabilities. To complete this and <em>enable the extra ext4 features</em> we will need to run for each filesystem:<br
/> <code>tune2fs -O extents,uninit_bg,dir_index &lt;device&gt;</code><br
/> like, for example for /dev/sda1:<br
/> <code>tune2fs -O extents,uninit_bg,dir_index /dev/sda1</code><br
/> this will only be activated when the filesystem is unmounted and we can achieve this with yet another reboot (especially for the root filesystem), and the system will auto fsck them (as the last command marked the filesystem as dirty) and perform the upgrade. I would highly recommend for this to have a remote console on the system as in most of the cases the auto fsck will fail and you will have to run it manually from the console.</p><p><em>Hopefully this howto will help you upgrade your <strong>debian system to squeeze with ext4</strong>. If you have encountered anything special during the upgrade feel free to share it with others using the comment box bellow.</em></p><p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p>]]></content:encoded> <wfw:commentRss>http://www.ducea.com/2011/02/05/howto-upgrade-from-debian-lenny-to-squeeze/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Debian News: Lenny 5.0.6, backports, stats.</title><link>http://www.ducea.com/2010/09/10/debian-news-lenny-5-0-6-backports-stats/</link> <comments>http://www.ducea.com/2010/09/10/debian-news-lenny-5-0-6-backports-stats/#comments</comments> <pubDate>Sat, 11 Sep 2010 01:20:30 +0000</pubDate> <dc:creator>- Marius -</dc:creator> <category><![CDATA[Debian]]></category> <category><![CDATA[News from Outside]]></category> <category><![CDATA[backports]]></category> <category><![CDATA[debian-lenny]]></category> <category><![CDATA[lenny]]></category> <category><![CDATA[releases]]></category><guid
isPermaLink="false">http://www.ducea.com/?p=1164</guid> <description><![CDATA[Updated Debian GNU/Linux: 5.0.6 release This week the Debian project released the 6th update to its stable release Lenny, 5.0.6. All recent security updates have been added, as well as some other fixes. The linux-2.6 package was also updated for increased hardware support. Backports service is now official I was very happy to hear that [...]<p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p> ]]></description> <content:encoded><![CDATA[<h3>Updated Debian GNU/Linux: 5.0.6 release</h3><p>This week the Debian project <a
href="http://www.debian.org/News/2010/20100904" target="_blank">released</a> the 6th update to its stable release Lenny, <strong>5.0.6</strong>. All recent security updates have been added, as well as some other fixes. The linux-2.6 package was also updated for increased hardware support.</p><h3>Backports service is now official</h3><p>I was very happy to <a
href="http://lists.debian.org/debian-devel-announce/2010/09/msg00002.html" target="_blank">hear</a> that the <a
href="http://backports.debian.org/" target="_blank">debian backports</a> project is now an <strong>official debian project</strong>. I always used (and liked) the <strong>backports.org</strong> repository to easily bring in updated software to the stable release. Now, after it become an official project and not just a fun project of three developers will hopefully be even better and have more software added into backports much faster. Don&#8217;t forget to change your apt sources config to point to <strong>backports.debian.org</strong> (old backports.org mirror will still work for a while).<br
/> <code>deb http://backports.debian.org/debian-backports lenny-backports main contrib non-free</code></p><h3>Debian growth over time</h3><p>Also on some unrelated news <em>Romain Francoise</em> <a
href="http://blog.orebokech.com/2010/08/update-on-md5sums-and-debian-growth.html" target="_blank">published</a> some interesting stats on the growth of the Debian archive over time:</p><ul><li>woody (2002): 8273 packages</li><li>sarge (2005): 15195 packages (+83.7%)</li><li>etch (2007): 18043 packages (+18.7%)</li><li>lenny (2009): 22277 packages (+23.5%)</li><li>squeeze (2010?): 28870 packages (+29.6%)</li></ul><p>Wow… now that is really impressive.</p><p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p>]]></content:encoded> <wfw:commentRss>http://www.ducea.com/2010/09/10/debian-news-lenny-5-0-6-backports-stats/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Next Debian release will be called &#8220;Wheezy&#8221;</title><link>http://www.ducea.com/2010/09/03/next-debian-release-will-be-called-wheezy/</link> <comments>http://www.ducea.com/2010/09/03/next-debian-release-will-be-called-wheezy/#comments</comments> <pubDate>Sat, 04 Sep 2010 02:02:28 +0000</pubDate> <dc:creator>- Marius -</dc:creator> <category><![CDATA[Debian]]></category> <category><![CDATA[News from Outside]]></category> <category><![CDATA[releases]]></category> <category><![CDATA[Wheezy]]></category><guid
isPermaLink="false">http://www.ducea.com/?p=1137</guid> <description><![CDATA[Squeeze has been frozen for some time now, and hopefully will be released by the end of the year, and today the Debian team has revealed the name of the next Debian release 7.0: Wheezy. Just like all the previous releases, this is another character from Toy Story &#8211; wheezy &#8211; a rubber squeeze toy [...]<p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p> ]]></description> <content:encoded><![CDATA[<p><strong><img
class="size-full wp-image-1139 alignright" style="margin-top: 0px; margin-bottom: 0px; margin-left: 10px; margin-right: 0px;" title="Wheezy" src="http://www.ducea.com/images/2010/09/Wheezy.png" alt="" width="180" height="161" />Squeeze</strong> has been frozen for some time now, and hopefully will be released by the end of the year, and today the Debian team has revealed the name of the next <strong>Debian release 7.0</strong>: <strong>Wheezy</strong>.</p><p>Just like all the previous releases, this is another character from <a
href="http://en.wikipedia.org/wiki/List_of_Toy_Story_characters" target="_blank">Toy Story</a> &#8211; <em>wheezy</em> &#8211; a rubber squeeze toy penguin with a red bow tie (that appears only in the 2nd movie). This will be the first character selected as a Debian version name which has not appeared in all the movies.</p><p>Source: <a
href="http://lists.debian.org/debian-devel-announce/2010/09/msg00000.html" target="_blank">http://lists.debian.org/debian-devel-announce/2010/09/msg00000.html</a></p><p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p>]]></content:encoded> <wfw:commentRss>http://www.ducea.com/2010/09/03/next-debian-release-will-be-called-wheezy/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Background a running process</title><link>http://www.ducea.com/2010/08/17/background-a-running-process/</link> <comments>http://www.ducea.com/2010/08/17/background-a-running-process/#comments</comments> <pubDate>Tue, 17 Aug 2010 22:17:37 +0000</pubDate> <dc:creator>- Marius -</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Tips & Tricks]]></category> <category><![CDATA[bash]]></category> <category><![CDATA[screen]]></category> <category><![CDATA[tips]]></category><guid
isPermaLink="false">http://www.ducea.com/?p=1110</guid> <description><![CDATA[Everyone knows and loves screen for running longtime scripts in the background without worrying that the ssh connection will drop and will have to run it again. Still, I have found myself many times in the situation where I started a process and needed to put it in the background and run something else on [...]<p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p> ]]></description> <content:encoded><![CDATA[<p>Everyone knows and loves <strong>screen</strong> for running longtime scripts in the background without worrying that the ssh connection will drop and will have to run it again. Still, I have found myself many times in the situation where I started a process and needed to put it in the <strong>background</strong> and run something else on the console. Uff.. <em>If only I started it with screen</em>. But wait, there is hope. This quick tip will show how to put a process in the background and then start it back in foreground.</p><p>This works in bash and uses the &#8216;<strong>suspend</strong>&#8216; key (<strong>CTRL+Z</strong>) and the <strong>bg</strong> &#8211; background and <strong>fg</strong> &#8211; foreground commands. Let&#8217;s say we were running an intensive rsync command, and are wanted to check if we still have the available space on the disk without opening a new ssh session (yes, I know):<br
/> <code>rsync -ar server:/source/ /destination/<br
/> <strong> ^Z</strong><br
/> Stopped</code></p><p>Let it run in the background:<br
/> <code><strong>bg</strong><br
/> [1] rsync -ar server:/source/ /destination/ &amp;</code></p><p>Now we can run some other commands like du:<br
/> <code>du -h</code></p><p>We can see the background process with ps or jobs:<br
/> <code><strong>jobs</strong><br
/> [1]	Running		rsync -ar server:/source/ /destination/</code></p><p>And finally we can bring it back to foreground with fg:<br
/> <code><strong>fg</strong></code></p><p><em>Note</em>: this works only on the running ssh/bash session and it will be closed once you exit. Logout should warn about open/running jobs and that they will be lost if exit.</p><p><a
href="http://www.thycotic.com/zSS_Ducea.html?utm_source=ducea&utm_medium=banner&utm_content=iquit&utm_campaign=SSDucea"><img
src="http://www.ducea.com/images/SS468by60.jpg"></a></p>]]></content:encoded> <wfw:commentRss>http://www.ducea.com/2010/08/17/background-a-running-process/feed/</wfw:commentRss> <slash:comments>8</slash:comments> </item> </channel> </rss>
<!-- Served from: www.ducea.com @ 2012-02-08 10:12:52 by W3 Total Cache -->
