<?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>wangee&#039;s technical blog</title>
	<atom:link href="http://wangee.opsyx.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://wangee.opsyx.com</link>
	<description>The technical blog of Christian Vanguers at OPen SYstems eXpertise</description>
	<lastBuildDate>Tue, 13 Mar 2012 08:51:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Date manipulation with sed (Convert date to YYYY-MM-DD format)</title>
		<link>http://wangee.opsyx.com/?p=140</link>
		<comments>http://wangee.opsyx.com/?p=140#comments</comments>
		<pubDate>Tue, 13 Mar 2012 08:48:38 +0000</pubDate>
		<dc:creator>wangee</dc:creator>
				<category><![CDATA[Shell script]]></category>

		<guid isPermaLink="false">http://wangee.opsyx.com/?p=140</guid>
		<description><![CDATA[In my previous post , I talked about a very useful script (with some useful functions) to manipulate dates. For now, I&#8217;m writing a script for a customer, where I got to inject those manipulated dates in an SQL query. The problem is that the script I&#8217;m talking in my previous post does not put [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://wangee.opsyx.com/?p=123" title="previous post">previous post </a>, I talked about a very useful script (with some useful functions) to manipulate dates.</p>
<p>For now, I&#8217;m writing a script for a customer, where I got to inject those manipulated dates in an SQL query.<br />
The problem is that the script I&#8217;m talking in my <a href="http://wangee.opsyx.com/?p=123" title="previous post">previous post </a> does not put the leading 0 when the day or the month is less than 10.</p>
<p>Example :<br />
<code><br />
datecalc -a 1960 12 31 + 7<br />
1961 1 7<br />
</code></p>
<p>In the sql query, the dates MUST be with format YYYY-MM-DD!<br />
It&#8217;s pretty annoying when the dates returned are with format YYYY-M-D or YYYY-MM-D or YYYY-M-DD, isn&#8217;t it ?</p>
<p>As usual, I googled (Google knows all!) and found the easy answer!</p>
<p><code><br />
#!/bin/sh<br />
# by Jakukyo Friel <weakish@gmail.com> under GPL v2.</p>
<p>### This script convert date formats:<br />
# YYYY-MM-DD => YYYY-MM-DD<br />
# YYYY-M-DD => YYYY-MM-DD<br />
# YYYY-MM-D => YYYY-MM-DD<br />
# YYYY-M-D => YYYY-MM-DD</p>
<p>sed -e 's/\(-\)\([0-9]-\)/-0\2/' | sed -e 's/\(-\)\([0-9]$\)/-0\2/'<br />
</code><br />
<a href="https://gist.github.com/1005791/af32062e90df3463a866d440a64e96a5d95a79c1" title="Source">Source</a></p>
<p>I&#8217;ve fought for hours with this line, cause it ain&#8217;t worked! The mistake was in the second sed substitution command, where the $ was included in the last range of characters (the last 2 digits representing the day), and it shouldn&#8217;t be there, but behind the mark!</p>
<p>Finally here is the correct version :</p>
<p><code><br />
### This script convert date formats:<br />
# YYYY-MM-DD => YYYY-MM-DD<br />
# YYYY-M-DD => YYYY-MM-DD<br />
# YYYY-MM-D => YYYY-MM-DD<br />
# YYYY-M-D => YYYY-MM-DD</p>
<p>sed -e 's/\(-\)\([0-9]-\)/-0\2/' | sed -e 's/\(-\)\([0-9]\)$/-0\2/'<br />
</code> </p>
<p>Let&#8217;s try the same command line : </p>
<p><code><br />
echo "1967-1-7" | sed -e 's/\(-\)\([0-9]-\)/-0\2/' | sed -e 's/\(-\)\([0-9]\)$/-0\2/'<br />
1967-01-07<br />
</code></p>
<p>YAY!!!   </p>
<p>I&#8217;m angry at wasting so much time for a small misplaced $ sign.   So I&#8217;m sharing with you all&#8230;<br />
Unlike me, It may save you some time <img src='http://wangee.opsyx.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://wangee.opsyx.com/?feed=rss2&#038;p=140</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Date calculation in a unix shell script (ksh)</title>
		<link>http://wangee.opsyx.com/?p=123</link>
		<comments>http://wangee.opsyx.com/?p=123#comments</comments>
		<pubDate>Fri, 09 Mar 2012 09:12:31 +0000</pubDate>
		<dc:creator>wangee</dc:creator>
				<category><![CDATA[Shell script]]></category>

		<guid isPermaLink="false">http://wangee.opsyx.com/?p=123</guid>
		<description><![CDATA[Hi!   I had to implement date manipulation in an existing unix shell script (ksh). The easiest way to add or substract days (or months, or years) from the current date (assuming that you are logged on a Linux host) is : user@host:~$ date &#8211;date &#8220;now +3 days&#8221; lundi 12 mars 2012, 09:55:17 (UTC+0100) user@host:~$ date [...]]]></description>
			<content:encoded><![CDATA[<p>Hi!   </p>
<p>I had to implement date manipulation in an existing unix shell script (ksh).<br />
The easiest way to add or substract days (or months, or years) from the current date (assuming that you are logged on a Linux host) is :</p>
<blockquote><p>
user@host:~$ date &#8211;date &#8220;now +3 days&#8221;<br />
lundi 12 mars 2012, 09:55:17 (UTC+0100)</p>
<p>user@host:~$ date &#8211;date &#8220;now -3 days -4 month&#8221;<br />
dimanche 6 novembre 2011, 09:58:20 (UTC+0100)</p>
</blockquote>
<p>But this time I&#8217;m dealing with solaris 9 &#038; 10 servers!  &#8220;date &#8211;date&#8221; is not available.</p>
<p>So how to add X days or substract Y days from the current date ?</p>
<p>I&#8217;ve found this very useful script : </p>
<blockquote><p>
#! /usr/bin/ksh</p>
<p>#  datecalc &#8212; Perderabo&#8217;s date calculator<br />
#</p>
<p>USAGE=&#8221;\<br />
datecalc -a year month day &#8211; year month day<br />
datecalc -a year month day [-|+] n<br />
datecalc -d year month day<br />
datecalc -D year month day<br />
datecalc -j year month day<br />
datecalc -j n<br />
datecalc -l year month<br />
use \&#8221;datecalc -help\&#8221; use for more documentation&#8221;</p>
<p>DOCUMENTATION=&#8221;\<br />
  datecalc  Version 1.1</p>
<p>  datecalc does many manipulations with dates.<br />
  datecalc -a is for date arithmetic<br />
  datecalc -d or -D converts a date to the day of week<br />
  datecalc -j converts to date to or from julian day<br />
  datecalc -l outputs the last day of a month</p>
<p>  All dates must be between the years 1860 and 3999.</p>
<p>  datecalc -a followed by 7 parameters will calculate the<br />
  number of days between two dates.  Parameters 2-4 and 6-8<br />
  must be dates in ymd form, and parameter 5 must be a minus<br />
  sign.  The output is an integer.  Example:</p>
<p>  > datecalc -a 1960 12 31 &#8211; 1922 2 2<br />
  14212</p>
<p>  datecalc -a followed by 5 parameters will calculate the<br />
  a new date offset from a given date,  Parameters 2-4 must<br />
  be a date in ymd form, paramter 5 must be + or -, and<br />
  paramter 6 must be an integer.  Output is a new date.<br />
  Example:</p>
<p>  > datecalc -a 1960 12 31 + 7<br />
  1961 1 7</p>
<p>  datecalc -d followed by 3 parameters will convert a date<br />
  to a day-of-week.  Parameters 2-4 must be a date in ymd<br />
  form.  Example:</p>
<p>  > datecalc -d 1960 12 31<br />
  6</p>
<p>  datecalc -D is like -d except it displays the name of<br />
  the day.  Example:</p>
<p>  > datecalc -D 1960 12 31<br />
  Saturday</p>
<p>  datecalc -j followed by 3 parameters will convert a date<br />
  to Modified Julian Day number.  Example:<br />
  > datecalc -j 1960 12 31<br />
  37299</p>
<p>  datecalc -j followed by a single parameter will convert<br />
  a Modified Julian Day number to a date.  Example:<br />
  > datecalc -j 37299<br />
  1960 12 31</p>
<p>  datecalc -l followed by year and month will output the last<br />
  day of that month.  Note that by checking the last day of<br />
  February you can test for leap year.  Example:<br />
  > datecalc -l 2002 2<br />
  28&#8243;</p>
<p>lastday()  {<br />
        integer year month leap<br />
#                         ja fe ma ap ma jn jl ag se oc no de<br />
        set -A mlength xx 31 28 31 30 31 30 31 31 30 31 30 31</p>
<p>        year=$1<br />
        if ((year<1860 || year> 3999)) ; then<br />
                print -u2 year out of range<br />
                return 1<br />
        fi<br />
        month=$2<br />
        if ((month<1 || month> 12)) ; then<br />
                print -u2 month out of range<br />
                return 1<br />
        fi</p>
<p>        if ((month != 2)) ; then<br />
                print ${mlength[month]}<br />
                return 0<br />
        fi</p>
<p>        leap=0<br />
        if ((!(year%100))); then<br />
                ((!(year%400))) &#038;&#038; leap=1<br />
        else<br />
                ((!(year%4))) &#038;&#038; leap=1<br />
        fi</p>
<p>        feblength=28<br />
        ((leap)) &#038;&#038; feblength=29<br />
        print $feblength<br />
        return 0<br />
}</p>
<p>date2jd() {<br />
        integer ijd day month year mnjd jd lday</p>
<p>        year=$1<br />
        month=$2<br />
        day=$3<br />
        lday=$(lastday $year $month) || exit $?</p>
<p>        if ((day<1 || day> lday)) ; then<br />
                print -u2 day out of range<br />
                return 1<br />
        fi</p>
<p>        ((standard_jd = day &#8211; 32075<br />
           + 1461 * (year + 4800 &#8211; (14 &#8211; month)/12)/4<br />
           + 367 * (month &#8211; 2 + (14 &#8211; month)/12*12)/12<br />
           &#8211; 3 * ((year + 4900 &#8211; (14 &#8211; month)/12)/100)/4))<br />
        ((jd = standard_jd-2400001))</p>
<p>        print $jd<br />
        return 0<br />
}</p>
<p>jd2dow()<br />
{<br />
        integer jd dow numeric_mode<br />
        set +A days Sunday Monday Tuesday Wednesday Thursday Friday Saturday</p>
<p>        numeric_mode=0<br />
        if [[ $1 = -n ]] ; then<br />
                numeric_mode=1<br />
                shift<br />
        fi</p>
<p>        jd=$1<br />
        if ((jd<1 || jd>782028)) ; then<br />
                print -u2 julian day out of range<br />
                return 1<br />
        fi</p>
<p>        ((dow=(jd+3)%7))</p>
<p>        if ((numeric_mode)) ; then<br />
                print $dow<br />
        else<br />
                print ${days[dow]}<br />
        fi<br />
        return<br />
}</p>
<p>jd2date()<br />
{<br />
        integer standard_jd temp1 temp2 jd year month day</p>
<p>        jd=$1<br />
        if ((jd<1 || jd>782028)) ; then<br />
                print julian day out of range<br />
                return 1<br />
        fi<br />
        ((standard_jd=jd+2400001))<br />
        ((temp1 = standard_jd + 68569))<br />
        ((temp2 = 4*temp1/146097))<br />
        ((temp1 = temp1 &#8211; (146097 * temp2 + 3) / 4))<br />
        ((year  = 4000 * (temp1 + 1) / 1461001))<br />
        ((temp1 = temp1 &#8211; 1461 * year/4 + 31))<br />
        ((month = 80 * temp1 / 2447))<br />
        ((day   = temp1 &#8211; 2447 * month / 80))<br />
        ((temp1 = month / 11))<br />
        ((month = month + 2 &#8211; 12 * temp1))<br />
        ((year  = 100 * (temp2 &#8211; 49) + year + temp1))<br />
        print $year $month $day<br />
        return 0<br />
}</p>
<p>#<br />
#  Parse parameters and get to work.<br />
case $1 in<br />
-a)     if (($# == 8)) ; then<br />
                if [[ $5 != - ]] ; then<br />
                        print -u2 &#8211; &#8220;$USAGE&#8221;<br />
                        exit 1<br />
                fi<br />
                jd1=$(date2jd $2 $3 $4) || exit $?<br />
                jd2=$(date2jd $6 $7 $8) || exit $?<br />
                ((jd3=jd1-jd2))<br />
                print $jd3<br />
                exit 0<br />
        elif (($# == 6)) ; then<br />
                jd1=$(date2jd $2 $3 $4) || exit $?<br />
                case $5 in<br />
                -|+) eval &#8216;((&#8216;jd2=${jd1}${5}${6}&#8217;))&#8217;<br />
                        jd2date $jd2<br />
                        exit $?<br />
                        ;;<br />
                *)<br />
                        print -u2 &#8211; &#8220;$USAGE&#8221;<br />
                        exit 1<br />
                        ;;<br />
                esac</p>
<p>        fi<br />
        ;;</p>
<p>-d|-D)  if (($# != 4)) ; then<br />
                print -u2 &#8211; &#8220;$USAGE&#8221;<br />
                exit 1<br />
        fi<br />
        jd1=$(date2jd $2 $3 $4) || exit $?<br />
        numeric=-n<br />
        [[ $1 = -D ]] &#038;&#038; numeric=&#8221;"<br />
        eval jd2dow $numeric $jd1<br />
        exit $?<br />
        ;;</p>
<p>-j)     if (($# == 4)) ; then<br />
                date2jd $2 $3 $4<br />
                exit $?<br />
        elif (($# == 2)) ; then<br />
                jd2date $2 $3 $4<br />
                exit $?<br />
        else<br />
                print -u2 &#8211; &#8220;$USAGE&#8221;<br />
                exit 1<br />
        fi<br />
        ;;</p>
<p>-l)      if (($# == 3)) ; then<br />
                lastday $2 $3<br />
                exit $?<br />
        else<br />
                print -u2 &#8211; &#8220;$USAGE&#8221;<br />
                exit 1<br />
        fi<br />
        ;;</p>
<p>-help)  print &#8211; &#8220;$USAGE&#8221;<br />
        print  &#8220;&#8221;<br />
        print &#8211; &#8220;$DOCUMENTATION&#8221;<br />
        exit 0<br />
        ;;</p>
<p>*)      print -u2 &#8211; &#8220;$USAGE&#8221;<br />
        exit 0<br />
        ;;</p>
<p>esac</p>
<p>#not reached<br />
exit 7
</p></blockquote>
<p>Source : <a href="http://www.unix.com/unix-dummies-questions-answers/4870-days-elapsed-between-2-dates.html?postid=16559#post16559" title="http://www.unix.com/unix-dummies-questions-answers/4870-days-elapsed-between-2-dates.html?postid=16559#post16559">http://www.unix.com/unix-dummies-questions-answers/4870-days-elapsed-between-2-dates.html?postid=16559#post16559</a></p>
<p>I took my inspiration from it, and I could make it easily! </p>
<p>Have a nice day,<br />
Wangee</p>
]]></content:encoded>
			<wfw:commentRss>http://wangee.opsyx.com/?feed=rss2&#038;p=123</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTTPS + SSH + OpenVPN + XMPP + Tinc on the same port ?  YES WE CAN!</title>
		<link>http://wangee.opsyx.com/?p=65</link>
		<comments>http://wangee.opsyx.com/?p=65#comments</comments>
		<pubDate>Sat, 03 Dec 2011 18:10:25 +0000</pubDate>
		<dc:creator>wangee</dc:creator>
				<category><![CDATA[Sys Admin]]></category>

		<guid isPermaLink="false">http://wangee.opsyx.com/?p=65</guid>
		<description><![CDATA[Most of the networks (enterprise or public) are filtering and most of the time, only the ports 80 (HTTP) and 443 (HTTPS) are open. The consequence is obviously that you cannot connect to another port and this is a pity! The dream for the geeks would be to use a single port for several protocols. [...]]]></description>
			<content:encoded><![CDATA[<p>Most of the networks (enterprise or public) are filtering and most of the time, only the ports 80 (HTTP) and 443 (HTTPS) are open. The consequence is obviously that you cannot connect to another port and this is a pity!</p>
<p>The dream for the geeks would be to use a single port for several protocols. Yves Rutschle (aka WhiteRabbit) started from a simple observation :</p>
<ul>
<li>When you&#8217;re browsing on a secured website, the https client (your web browser) talks the first.</li>
<li>A ssh client (putty for example) is waiting for a response from the SSH server.  The server talks first (login prompt)</li>
</ul>
<p>Imagine a daemon that listens on a TCP port (ex : port 443), and it waits.</p>
<ul>
<li>When no packet is received and after 2 seconds, it means it&#8217;s a ssh connection and it forwards to the ssh server.</li>
<li>When it gets an incoming packet, and depending of the header, it&#8217;s either a https, openvpn, xmpp or even a tinc request and it forwards to the right server!</li>
</ul>
<p><strong>This amazing proxy exists and is called sslh.</strong>   sslh is a SSL/SSH multiplexer pretty easy to use and install.</p>
<p>For Fedora Core 16, there is no rpm package yet, that&#8217;s why I made one, and you can download it : <a href="http://wangee.opsyx.com/sslh-1.10-1.fc16.i686.rpm">sslh-1.10-1.fc16.i686.rpm</a></p>
<p>Please note that this package is unofficial for now, I&#8217;ve submitted it for being part of the official Fedora repositories.</p>
<p>Another <strong>IMPORTANT</strong> note: For now, sslh is launched under the user root, and it&#8217;s not a good thing at all on a security point of view.  I&#8217;m looking forward to solve this as soon as possible.</p>
<p>How to install sslh on Fedora Cora 16 ?</p>
<ul>
<li>Install the package</li>
</ul>
<p><code>rpm -ivh sslh-1.10-1.fc16.i686.rpm</code></p>
<ul>
<li>check the file /etc/sysconfig/sslh and the ports where SSH and https (SSL) will listen.  I want sslh to listen on port 443, ssh listen on its original port (22) and https to listen on 8443.  Mine file looks like this : </li>
</ul>
<p><code>LISTEN=ifname:443</code><br />
<code>SSH=localhost:22</code><br />
<code>SSL=localhost:8443</code></p>
<ul>
<li>check the file /etc/init.d/sslh.  Locate the line OPTIONS= and set up the ports for your needs.  Eventually replace &#8211;user=root by a restricted existing user name.  This will workaround the root security flaw.  Mine looks like this : </li>
<p><code>OPTIONS="-v --user=root -p 0.0.0.0:443 --ssl 127.0.0.1:8443 --ssh 127.0.0.1:22"</code></p>
<li>configure the web server.   Edit the file /etc/httpd/conf.d/ssl.conf and locate every line containing the string &#8220;443&#8243; and replace by &#8220;8443&#8243;</li>
<li>configure the ssh server : Edit the file /etc/ssh/sshd_config and modify the line starting by &#8220;Port 22&#8243; according to your needs.  Mine didn&#8217;t require any change.</li>
<li>restart the syslog daemon, ssh and httpd</li>
</ul>
<p><code>systemctl restart rsyslog.service</code><br />
<code>systemctl restart httpd.service</code><br />
<code>systemctl restart sshd.service</code>
</ul>
<ul>
<li>Finally start sslh</li>
</ul>
<p><code>systemctl start sslh.service</code></p>
<ul>
<li>Enjoy!</li>
</ul>
<p>If you have applied this mini how-to, please leave a comment if you found something wrong or if you want to propose improvements.</p>
]]></content:encoded>
			<wfw:commentRss>http://wangee.opsyx.com/?feed=rss2&#038;p=65</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Better than top  : htop!</title>
		<link>http://wangee.opsyx.com/?p=38</link>
		<comments>http://wangee.opsyx.com/?p=38#comments</comments>
		<pubDate>Tue, 22 Nov 2011 09:41:40 +0000</pubDate>
		<dc:creator>wangee</dc:creator>
				<category><![CDATA[Sys Admin]]></category>

		<guid isPermaLink="false">http://wangee.opsyx.com/?p=38</guid>
		<description><![CDATA[I don&#8217;t know how to name it.  A command ? A tool ? No matter!  Every Unix SysAdmin knows &#8220;top&#8221; and find it very useful when troubleshooting the performance of an Unix system. But do you know HTOP ? Htop is similar to top but with nice features.   It requires ncurses. Instead of just [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t know how to name it.  A command ? A tool ? No matter!  Every Unix SysAdmin knows &#8220;top&#8221; and find it very useful when troubleshooting the performance of an Unix system.</p>
<p>But do you know HTOP ? Htop is similar to top but with nice features.   It requires ncurses.</p>
<p>Instead of just showing numbers, htop will show you in a graphic way the CPU Usage, Memory Usage, Swap Usage.</p>
<p>Among those nice features (non-exhaustive list) :</p>
<ul>
<li>Horizontal and vertical Scrolling.</li>
<li>Easier to kill a task.  No need to type the PID of the process you want to kill.   Just scroll to the process you want to kill and press &#8220;k&#8221; or F9, then the signal you want to send.</li>
<li>Same if you want to renice a process : Press F7 to lower or F8 to raise the priority level.</li>
<li>You want to see the parents/child processes ?  No problem, press F5 and you got a nice treeview.</li>
<li>Sorting the processes by CPU%, MEM%, PID ?  F6 will do it!</li>
<li>Finding the open files by a process ? pressing &#8220;l&#8221; will make it!</li>
<li>Setting CPU Affinity (&#8220;a&#8221; key)</li>
</ul>
<div>Some pictures are best to show you how htop is better than top</div>
<div>
<div class="wp-caption alignnone" style="width: 508px"><img class=" " title="Tree View" src="http://htop.sourceforge.net/htop-1.0-screenshot.png" alt="Tree View" width="498" height="356" /><p class="wp-caption-text">Tree View</p></div>
<div class="wp-caption alignnone" style="width: 874px"><img class=" " title="Support for a large number of processors" src="http://htop.sourceforge.net/htop-64.png" alt="Support for a large number of processors" width="864" height="522" /><p class="wp-caption-text">Support for a large number of processors</p></div>
<p>&nbsp;</p>
<div class="wp-caption alignnone" style="width: 837px"><img title="Setting up CPU Affinity" src="http://htop.sourceforge.net/affinity.png" alt="Setting up CPU Affinity" width="827" height="424" /><p class="wp-caption-text">Setting up CPU Affinity </p></div>
<p>&nbsp;</p>
<div class="wp-caption alignnone" style="width: 970px"><img class=" " title="htop running on a machine with 128 cores and 1TB of RAM" src="http://htop.sourceforge.net/128.png" alt="htop running on a machine with 128 cores and 1TB of RAM" width="960" height="680" /><p class="wp-caption-text">htop running on a machine with 128 cores and 1TB of RAM</p></div>
<p>The father of &#8220;htop&#8221; is Hisham Muhammad (now you know where the &#8220;h&#8221; comes from ^^), and is hosted on <a href="http://htop.sourceforge.net/">sourceforge</a>.</p>
<p>Packages available for Fedora, Debian and Ubuntu.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wangee.opsyx.com/?feed=rss2&#038;p=38</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GFS : The Grandfather &#8211; Father &#8211; Son backup tape rotation</title>
		<link>http://wangee.opsyx.com/?p=33</link>
		<comments>http://wangee.opsyx.com/?p=33#comments</comments>
		<pubDate>Tue, 15 Nov 2011 14:09:16 +0000</pubDate>
		<dc:creator>wangee</dc:creator>
				<category><![CDATA[Backup]]></category>

		<guid isPermaLink="false">http://wangee.opsyx.com/?p=33</guid>
		<description><![CDATA[Next episode  in those obvious things a backup administrator *must* know is about the tape rotation schemes. I&#8217;m filling my wiki slowly and today I wrote a page about the GFS (Grandfather Father Son) tape rotation.  This tape rotation scheme is very often described as an industry standards.  Right or Wrong, I don&#8217;t know?  What I&#8217;m sure [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="GFS" src="http://resources.filevaultusa.com/Portals/40867/images//GFS%20Backup.jpg" alt="" width="298" height="263" /></p>
<p>Next episode  in those obvious things a backup administrator *must* know is about the tape rotation schemes.</p>
<p>I&#8217;m filling my <a title="wiki" href="http://wiki.opsyx.com/" target="_blank">wiki</a> slowly and today I wrote a page about the GFS (Grandfather Father Son) tape rotation.  This tape rotation scheme is very often described as an industry standards.  Right or Wrong, I don&#8217;t know?  What I&#8217;m sure of, is that I used it many times.   And this GFS scheme is very interesting and can be adapted to most business need.  Depending of the constraints of data retention you might have, depending on the number of tapes you have, depending on the amount of data to backup, GFS is the first scheme to look at.</p>
<p>Click <a href="http://wiki.opsyx.com/BackupTapeRotationGFS">here</a> to read the wiki page about the GFS Tape rotation scheme</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://wangee.opsyx.com/?feed=rss2&#038;p=33</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resuming on Amanda (Advanced Maryland Automatic Network Disk Archiver)</title>
		<link>http://wangee.opsyx.com/?p=10</link>
		<comments>http://wangee.opsyx.com/?p=10#comments</comments>
		<pubDate>Mon, 14 Nov 2011 11:53:12 +0000</pubDate>
		<dc:creator>wangee</dc:creator>
				<category><![CDATA[Backup]]></category>

		<guid isPermaLink="false">http://wangee.opsyx.com/?p=10</guid>
		<description><![CDATA[ I’ve been around the block in this fantastic world of data backup.  I know amanda for more than 10 years.  I’ve worked on using amanda for saving a beta site when I worked at Isabel .  The constraint was to avoid paying a lot of money for buying Legato Networker (Now called  EMC Networker) licences. [...]]]></description>
			<content:encoded><![CDATA[<div>
<p><img class="alignleft" title="Starting Block" src="http://www.gagnant-la-troupe.com/wp-content/uploads/2010/03/starting_block1.jpg" alt="" width="274" height="144" /> I’ve been around the block in this fantastic world of data backup.  I know amanda for more than 10 years.  I’ve worked on using amanda for saving a beta site when I worked at <a title="Isabel" href="http://www.isabel.be/" target="_blank">Isabel </a>.  The constraint was to avoid paying a lot of money for buying <a href="http://www.emc.com/domains/legato/index.htm">Legato Networker </a>(Now called  EMC Networker) licences.  I used amanda with a Digital Equipment 8-tapes DLT Library.  Again using amanda, I reworked the full backup strategy for another of my system engineer  jobs (<a title="Isabel" href="http://www.molis.be/" target="_blank">Molis</a> [now called <a title="Isabel" href="http://www.molis.be/" target="_blank">vision4health</a>]) but the interest for backups came back for good when I worked in a <a href="http://www.google.com/about/datacenters/locations/st-ghislain/">Google Datacenter</a>.  Those huge libraries of several thousand of tapes made me very excited to embrace again data saving.</p>
<p>In the cases I mentioned above, Amanda had all the features that were fitting perfectly with my needs.  Why ?</p>
<ul>
<li>Amanda is an Open Source software.  It’s released under the GNU GPL Licence.  In two  words, you can use it for private purposes, but also for your business needs.   You can even charge a fee for the service you provide. I would recommend you to browse to <a href="http://www.gnu.org/licenses/licenses.html">http://www.gnu.org/licenses/licenses.html</a> for more details on the GNU Public License</li>
<li>Amanda can handle a single tape drive, but also a 10.000 tapes library.</li>
<li>Amanda offers a command line interface, which was very insteresting because I could monitor it more easily (Especially with <a href="http://www.nagios.org">Nagios</a>, the Open Source Monitoring software).   This is also a *very* useful feature when you’re working remotely!</li>
<li>Amanda can backup and restore using the network.  In other words, one tape library could backup several servers.   This may seem obvious, but in the late 90’s, that was purely awesome!</li>
</ul>
<p>Today, I don’t remember much about amanda.  Because I just left it aside because I had no need and opportunity to use it. But as soon as I found an interest in this software again, I was pleasantly surprised it was still there and that it had improved!</p>
<p>The goal of this post is to tell you that I&#8217;m happy and excited to have a new takeover of amanda as I had done in the past.<br />
Then, I’ll plan to explore the new features this fabulous backup software offers.</p>
<p>So I think to do all that more in a spirit of re-learning, with details on how I configured it.</p>
<p>This is the time to introduce you to my new personal <a href="http://wiki.opsyx.com">wiki</a> where I&#8217;ll cover the topics I&#8217;m interested in. My wish is to make this <a href="http://wiki.opsyx.com">wiki</a> my personal knowledge base, but also for anyone who might be interested in those topics as well.  I hope they will find relevant information for their private or business use and share theirs.</p>
<p>So, what is Amanda ?</p>
<p>As the official website says, AMANDA, is the acronym of “Advanced Maryland Automatic Network Disk Archiver”.  It consists of a backup solution that allows the IT administrators to set up a single master backup server to back up multiple hosts over network to tape drives/changers or disks or optical media. Amanda uses native utilities and formats (e.g. dump and/or GNU tar) and can back up a large number of servers and workstations running multiple versions of Linux or Unix. Amanda uses also a native Windows client to back up Microsoft Windows desktops and servers.  This may seem little, but believe me, having the possibility to save any type of Unix, or Windows server is purely great, especially when used in a professional environment.</p>
<p>As I&#8217;ve retrieved 2 old good SCSI DAT-40 drives, I said to myself it&#8217;s the right time to spend time on Amanda and start a topic called <a href="http://wiki.opsyx.com/AmandaCookbook">Amanda Cookbook</a> on my <a href="http://wiki.opsyx.com">wiki</a></p>
<p>The first topic is pretty obvious, and talks about <a href="http://wiki.opsyx.com/InstallAmandaRedHatWithYum">installing Amanda on a RPM based linux distribution using Yum</a>. More infos will come with the time.</p>
<p>Thanks for reading</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wangee.opsyx.com/?feed=rss2&#038;p=10</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yay!  Starting up with my new blog</title>
		<link>http://wangee.opsyx.com/?p=5</link>
		<comments>http://wangee.opsyx.com/?p=5#comments</comments>
		<pubDate>Sat, 12 Nov 2011 23:11:11 +0000</pubDate>
		<dc:creator>wangee</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wangee.opsyx.com/?p=5</guid>
		<description><![CDATA[Hi guys! This is my first post, and I&#8217;m starting up a technical blog.  The goal of this blog is simple : Keeping my readers updated on some technical stuffs I wrote. What I plan is a new takeover of the skills I had in the past.  I think to do all that more in [...]]]></description>
			<content:encoded><![CDATA[<p>Hi guys!</p>
<p>This is my first post, and I&#8217;m starting up a technical blog.  The goal of this blog is simple : Keeping my readers updated on some technical stuffs I wrote.</p>
<p>What I plan is a new takeover of the skills I had in the past.  I think to do all that more in a spirit of re-learning, with details on how I made it.  I hope the readers of this technical blog will find relevant information for their private or business use.</p>
<p>In addition to this blog, I&#8217;ve set up a wiki that you can reach at the following URL : <a title="Wiki at OPen SYstems eXpertise" href="http://wiki.opsyx.com" target="_blank">http://wiki.opsyx.com/</a></p>
<p>&nbsp;</p>
<p>Thanks for reading, and you can already bookmark this website <img src='http://wangee.opsyx.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Wangee</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://wangee.opsyx.com/?feed=rss2&#038;p=5</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

