<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">
<channel>
    <title>Just my Blog</title>
    <link>http://blog.adslweb.net/serendipity/</link>
    <description>SELECT * FROM users WHERE clue &gt; 0</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.5.1 - http://www.s9y.org/</generator>
    <pubDate>Thu, 05 Aug 2010 05:12:38 GMT</pubDate>

    <image>
        <url>http://blog.adslweb.net/serendipity/templates/competition/img/s9y_banner_small.png</url>
        <title>RSS: Just my Blog - SELECT * FROM users WHERE clue &gt; 0</title>
        <link>http://blog.adslweb.net/serendipity/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>use subversion to publish websites</title>
    <link>http://blog.adslweb.net/serendipity/article/280/use-subversion-to-publish-websites</link>
    
    <comments>http://blog.adslweb.net/serendipity/article/280/use-subversion-to-publish-websites#comments</comments>
    <wfw:comment>http://blog.adslweb.net/serendipity/wfwcomment.php?cid=280</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.adslweb.net/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=280</wfw:commentRss>
    

    <author>nospam@example.com (Pieter de Rijk)</author>
    <content:encoded>
    &lt;p&gt;Sometimes I&#039;m really surprised about myself... especially how lazy I am. &lt;img src=&quot;http://blog.adslweb.net/serendipity/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;I&#039;m currently playing around with one of my private websites, and to improve developing I decided to use subversion. So far so good, but I wanted that the committed subversion code was automatically online on the webserver. So I did the following very simple trick.&lt;/p&gt; &lt;br /&gt;
&lt;p&gt; First I check out the code (subtree) from the subversion server (which is using https):&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;$ cd /sites&lt;br /&gt;$ mv dev.adslweb.net{,-backup}&lt;br /&gt;$ svn co https://svn.adslweb.net/svn/websites/dev.adslweb.net&lt;/font&gt;&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;Next step was to commit the current content of the website into subversion:&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;$ cd /sites/dev.adslweb.net&lt;br /&gt;$ cp -Rv /sites/dev.adslweb.net-backup/*&amp;#160; ./&lt;br /&gt;$ svn add&amp;#160;*&lt;br /&gt;$ svn commit -m &amp;quot;Initial commit of ADSLWEB.net dev env&amp;quot;&lt;/font&gt;&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;Now download the simple script I created for making sure that subversion doesn&#039;t fire off twice for updating the same tree.&lt;/p&gt; &lt;br /&gt;
&lt;p&gt; &lt;a href=&quot;www.xs4all.nl/%7Epaderijk/pics/svn-update.sh&quot; target=&quot;_blank&quot;&gt;Download svn-update.sh via this link&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;So something like this:&lt;br /&gt;&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;$ mkdir ~/scripts/&lt;br /&gt;$ cd ~/scripts&lt;br /&gt;$ wget http://www.xs4all.nl/~paderijk/pics/svn-update.sh&lt;br /&gt;$ chmod 700 svn-update.sh&lt;/font&gt;&lt;br /&gt;&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;Now... the last step... create a crontab entry with the following content:&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;*/1&amp;#160;*&amp;#160;*&amp;#160;*&amp;#160;* /home/pieter/scripts/svn-update.sh /sites/dev.adslweb.net 2&amp;gt;&amp;amp;1 &amp;gt; /dev/null&lt;/font&gt;&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;&amp;#160;And guess... and it works like a charm, on every new commit done by whoever... you get your online site updated within 1 minute without the need log in into the website/webserver using ftp/ssh/whatever.&lt;br /&gt;&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Wed, 04 Aug 2010 19:54:30 +0200</pubDate>
    <guid isPermaLink="false">http://blog.adslweb.net/serendipity/article/280/guid</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>More flexible yum-repo sync script</title>
    <link>http://blog.adslweb.net/serendipity/article/279/More-flexible-yum-repo-sync-script</link>
    
    <comments>http://blog.adslweb.net/serendipity/article/279/More-flexible-yum-repo-sync-script#comments</comments>
    <wfw:comment>http://blog.adslweb.net/serendipity/wfwcomment.php?cid=279</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.adslweb.net/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=279</wfw:commentRss>
    

    <author>nospam@example.com (Pieter de Rijk)</author>
    <content:encoded>
    &lt;p&gt;In the past I started syncing every night the Updates-repositories from Fedora and CentOS on a local server, just to speed up updates/kick starts et cetera... The first version of the script was very quick and dirty, now I&#039;ve a more decent script that allow you to add/remove very quick new versions of CentOS and Fedora.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&amp;#160;You can find the script &lt;a href=&quot;http://bit.ly/90rRpP&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 01 Jun 2010 08:30:40 +0200</pubDate>
    <guid isPermaLink="false">http://blog.adslweb.net/serendipity/article/279/guid</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>How full are your snapshot volumes in LVM?</title>
    <link>http://blog.adslweb.net/serendipity/article/278/How-full-are-your-snapshot-volumes-in-LVM</link>
    
    <comments>http://blog.adslweb.net/serendipity/article/278/How-full-are-your-snapshot-volumes-in-LVM#comments</comments>
    <wfw:comment>http://blog.adslweb.net/serendipity/wfwcomment.php?cid=278</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.adslweb.net/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=278</wfw:commentRss>
    

    <author>nospam@example.com (Pieter de Rijk)</author>
    <content:encoded>
    &lt;p&gt;As I mentioned in my previous post, which is already 2 months old :(, I&#039;m using snapshots for data retention.&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;Now I run up in the situation, that I wanted to know how &lt;strong&gt;full&lt;/strong&gt; the snapshots are. A &#039;normal&#039; &lt;font face=&quot;courier new,courier,monospace&quot;&gt;df&lt;/font&gt; will not work... but I figured it out! The command &lt;font face=&quot;courier new,courier,monospace&quot;&gt;lvs&lt;/font&gt; is willing to do the work:&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;# lvs --aligned --separator \| vol_backup&lt;br /&gt;&amp;#160; LV&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |VG&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |Attr&amp;#160; |LSize |Origin|Snap% |Move|Log|Copy% |Convert&lt;br /&gt;&amp;#160; lvm0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |vol_backup|owi-ao|40.00G|&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160; snap-20100412_2350|vol_backup|swi-a-| 4.00G|lvm0&amp;#160; | 23.71|&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160; snap-20100413_2350|vol_backup|swi-a-| 4.00G|lvm0&amp;#160; | 21.70|&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160; snap-20100414_2350|vol_backup|swi-a-| 4.00G|lvm0&amp;#160; | 19.52|&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160; snap-20100415_2350|vol_backup|swi-a-| 4.00G|lvm0&amp;#160; | 17.53|&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160; snap-20100416_2350|vol_backup|swi-a-| 4.00G|lvm0&amp;#160; | 15.54|&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160; snap-20100417_2350|vol_backup|swi-a-| 4.00G|lvm0&amp;#160; | 13.56|&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160; snap-20100418_2350|vol_backup|swi-a-| 4.00G|lvm0&amp;#160; | 11.56|&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160; snap-20100419_2353|vol_backup|swi-a-| 4.00G|lvm0&amp;#160; |&amp;#160; 9.02|&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160; snap-20100420_2353|vol_backup|swi-a-| 4.00G|lvm0&amp;#160; |&amp;#160; 6.76|&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160; snap-20100421_2350|vol_backup|swi-a-| 4.00G|lvm0&amp;#160; |&amp;#160; 2.79|&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; &lt;/font&gt;&lt;/p&gt;&lt;br /&gt;
&lt;p&gt; &lt;/p&gt;&lt;br /&gt;
&lt;p&gt;In the &#039;&lt;strong&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;Snap%&lt;/font&gt;&lt;/strong&gt;&#039; column you can see how full your snapshot volume is!&lt;br /&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 22 Apr 2010 08:29:38 +0200</pubDate>
    <guid isPermaLink="false">http://blog.adslweb.net/serendipity/article/278/guid</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>
<item>
    <title>Creating Snapshots of a backup using LVM snapshot</title>
    <link>http://blog.adslweb.net/serendipity/article/277/Creating-Snapshots-of-a-backup-using-LVM-snapshot</link>
            <category>Herakles</category>
            <category>Linux/Unix/BSD</category>
            <category>Security</category>
            <category>Work</category>
    
    <comments>http://blog.adslweb.net/serendipity/article/277/Creating-Snapshots-of-a-backup-using-LVM-snapshot#comments</comments>
    <wfw:comment>http://blog.adslweb.net/serendipity/wfwcomment.php?cid=277</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.adslweb.net/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=277</wfw:commentRss>
    

    <author>nospam@example.com (Pieter de Rijk)</author>
    <content:encoded>
    &lt;p&gt;Normally I used to have a backup-retention-script in place that will create a TAR-ball of the backup data (using &lt;a target=&quot;_blank&quot; href=&quot;http://adslweb.net/tools/herakles&quot;&gt;Herakles&lt;/a&gt;). But this way I was not able to have a retention of longer then 3 days &lt;img src=&quot;http://blog.adslweb.net/serendipity/templates/default/img/emoticons/sad.png&quot; alt=&quot;:-(&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; &lt;/p&gt; &lt;br /&gt;
&lt;p&gt;So I had to look into another solution, I could add a new harddrive in the server... but there should be something else possible. So I ended up by using LVM snapshots. So I created a Volume group of about 100GB. In that volume group I created a logical volume of about 30GB, which is enough (and if not, we can &#039;grow&#039; the Filesystem thanks to LVM &lt;img src=&quot;http://blog.adslweb.net/serendipity/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; )&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;After having all that done, I&#039;ve created a script located in /root/scripts/lvm-snapshot. This script runs every midnight and creates a snapshot.&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;&lt;font size=&quot;1&quot; face=&quot;courier new,courier,monospace&quot;&gt;#!/bin/bash&lt;br /&gt;#&lt;br /&gt;# Create LVM Snapshots&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;#---------------------------------------------------------------------------------------------------------------&lt;br /&gt;CURRENT_SNAPNAME=&amp;quot;snap-&amp;quot;$(date &amp;quot;+%Y%m%d%H%M%S&amp;quot;)&lt;br /&gt;VOLUME2SNAPSHOT=&amp;quot;/dev/vol_backup/lvm0&amp;quot;&lt;br /&gt;LVMSNAPSHOTCMD=&amp;quot;/usr/sbin/lvcreate -L 2G -s -n $CURRENT_SNAPNAME $VOLUME2SNAPSHOT&amp;quot;&lt;br /&gt;LINE=&amp;quot;---------------------------------------------------------------------------------------------------------------------&amp;quot;&lt;br /&gt;&lt;br /&gt;echo $LINE&lt;br /&gt;df -h /mnt/data&lt;br /&gt;echo $LINE&lt;br /&gt;$LVMSNAPSHOTCMD 2&amp;gt; /dev/null&lt;br /&gt;#---------------------------------------------------------------------------------------------------------------&lt;br /&gt;SNAPSHOT_RETENTION=15&lt;br /&gt;CURRENT_SNAPSHOT_COUNT=$(lvdisplay | grep &amp;quot;^&amp;#160; LV Name&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /dev/vol_backup/snap&amp;quot; | sort | awk &#039;{ print $3 }&#039; | wc -l)&lt;br /&gt;&lt;br /&gt;OVERFLOW=$(echo $CURRENT_SNAPSHOT_COUNT - $SNAPSHOT_RETENTION | bc)&lt;br /&gt;if [ $OVERFLOW -gt 0 ];&lt;br /&gt;then&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo $LINE&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for files in&amp;#160; $(lvdisplay | grep &amp;quot;^&amp;#160; LV Name&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /dev/vol_backup/snap&amp;quot; | sort | awk &#039;{ print $3 }&#039; | head -n$OVERFLOW);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; do&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /usr/sbin/lvremove -f $files 2&amp;gt; /dev/null&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; done&lt;br /&gt;fi&lt;br /&gt;#---------------------------------------------------------------------------------------------------------------&lt;br /&gt;echo $LINE&lt;br /&gt;/usr/sbin/vgdisplay vol_backup&lt;br /&gt;echo $LINE&lt;br /&gt;/usr/sbin/lvdisplay $VOLUME2SNAPSHOT&lt;/font&gt;&lt;br /&gt;&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;And the crontab entry is:&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;&lt;font size=&quot;1&quot; face=&quot;courier new,courier,monospace&quot;&gt;# crontab -l&lt;br /&gt;0 0 &lt;strong&gt; &lt;/strong&gt; * /root/scripts/lvm-snapshot&lt;/font&gt; &lt;br /&gt;&lt;/p&gt; &lt;br /&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Mon, 22 Feb 2010 09:18:43 +0100</pubDate>
    <guid isPermaLink="false">http://blog.adslweb.net/serendipity/article/277/guid</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
</item>

</channel>
</rss>