<?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>/home/shakir &#187; script</title>
	<atom:link href="http://www.mohdshakir.net/tag/script/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mohdshakir.net</link>
	<description>My Piece Of The Web</description>
	<lastBuildDate>Fri, 16 Jul 2010 15:45:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Installing Smiletag Shoutbox in WordPress</title>
		<link>http://www.mohdshakir.net/2007/12/10/installing-smiletag-shoutbox-in-wordpress</link>
		<comments>http://www.mohdshakir.net/2007/12/10/installing-smiletag-shoutbox-in-wordpress#comments</comments>
		<pubDate>Mon, 10 Dec 2007 00:20:53 +0000</pubDate>
		<dc:creator>shakir</dc:creator>
				<category><![CDATA[Information Insemination]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.mohdshakir.net/2007/12/10/installing-smiletag-shoutbox-in-wordpress</guid>
		<description><![CDATA[Smiletag Shoutbox is the shoutbox that I have on my website&#8217;s sidebar. I&#8217;ve been using it since I was using Joomla for my website, and now that I moved to WordPress, Smiletag is still my shoutbox of choice. Installing it in Joomla is very straightforward, while it&#8217;s not really the case with WordPress, as it [...]]]></description>
			<content:encoded><![CDATA[<p>Smiletag Shoutbox is the shoutbox that I have on my website&#8217;s sidebar. I&#8217;ve been using it since I was using <a href="http://www.joomla.org">Joomla</a> for my website, and now that I moved to <a href="http://www.wordpress.org">WordPress</a>, Smiletag is still my shoutbox of choice.</p>
<p>Installing it in Joomla is very straightforward, while it&#8217;s not really the case with WordPress, as it requires a little bit of coding.</p>
<p>The application can be downloaded from <a href="http://www.hiveminds.co.uk/node/3203">Hivemind&#8217;s website</a> (requires free registration)&nbsp; and it can then be installed as any other WordPress plugin. The shoutbox however doesn&#8217;t immediately show up in the page, and there&#8217;s no option in the admin console for that.</p>
<p>To add it to the page we must add some codes, and in our case, to the sidebar&#8217;s code. Edit it from the admin panel;</p>
<pre>Presentation -> Theme Editor -> sidebar.php</pre>
<p>or can be edited with any editor;</p>
<pre>/path/to/current/template/sidebar.php</pre>
<p>This is an example of a very simple WordPress template with widget support;</p>
<pre lang="php" line="1">
<ul id="sidebar">
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(1) ) : ?>
<?php endif; ?>
</ul>
</pre>
<p>The sidebar uses <font face="Courier New">&lt;ul&gt;</font> for its items, and so we need to add <font face="Courier New">&lt;li&gt;</font> element to add our shoutbox (and probably any other static stuff) to it. We also need to add a header (<font face="Courier New">&lt;h2&gt;</font> probably) for the item&#8217;s title, and add the shoutbox&#8217;s code to it. The final sidebar should look something like this;</p>
<pre lang="php" line="1">
<ul id="sidebar">
<li>
<h2>Shoutbox</h2>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top" >
        <iframe name="iframetag" marginwidth="0" marginheight="0" src="<?php smiletag_getview(); ?>" width="190" height="300">
                        Your Browser must support IFRAME to view
                        this page correctly
                </iframe>
                </td>
</tr>
<tr>
<td>
        <?php smiletag_getscript(); ?>
<form name="smiletagform" method="post" action="<?php smiletag_getpost(); ?>" target="iframetag">
              Name
<input type="text" name="name"/>
              URL or Email
<input type="text" name="mail_or_url" value="http://" />
              Message<textarea name="message_box" rows="3" cols="20"></textarea>
<input type="hidden" name="message" value="" />
<input type="submit" name="submit" value="Tag!" onclick="clearMessage()" />
<input type="reset"  name="reset" value="Reset" />
            </form>
</td>
</tr>
</table>
</li>

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(1) ) : ?>
<?php endif; ?>
</ul>
</pre>
<p>This might not exactly be the case with every template, but the idea is about the same. Happy blogging!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mohdshakir.net/2007/12/10/installing-smiletag-shoutbox-in-wordpress/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Huawei E220 in Gutsy Gibbon (Kubuntu)</title>
		<link>http://www.mohdshakir.net/2007/12/05/huawei-e220-in-gutsy-gibbon-kubuntu</link>
		<comments>http://www.mohdshakir.net/2007/12/05/huawei-e220-in-gutsy-gibbon-kubuntu#comments</comments>
		<pubDate>Wed, 05 Dec 2007 06:48:47 +0000</pubDate>
		<dc:creator>shakir</dc:creator>
				<category><![CDATA[Information Insemination]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[gutsy]]></category>
		<category><![CDATA[hsdpa]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.mohdshakir.net/2007/12/05/huawei-e220-in-gutsy-gibbon-kubuntu</guid>
		<description><![CDATA[I received a package earlier today, and was very happy to find out that it&#8217;s the Huawei E220 that I ordered few days ago. This Huawei E220 is a 3G card that supports speed of up to 3.6 Mbps, using HSDPA technology, and it makes me can&#8217;t wait to have it work with Gutsy Gibbon. [...]]]></description>
			<content:encoded><![CDATA[<p>I received a package earlier today, and was very happy to find out that it&#8217;s the <em>Huawei E220</em> that I ordered few days ago. <!-- google_ad_section_start -->This Huawei E220 is a 3G card that supports speed of up to 3.6 Mbps, using <em>HSDPA</em> technology, <!-- google_ad_section_end -->and it makes me can&#8217;t wait to have it work with <em>Gutsy Gibbon</em>. After struggling for quite some time, I found out that the answer to my problem was just these two lines of command:</p>
<pre>sudo modprobe -r uhci_hcd
sudo modprobe uhci_hcd
</pre>
<p>If that short version of my solution doesn&#8217;t help, please read ahead&#8230;</p>
<p>I&#8217;ve been trying to get this modem to work with <a href="https://wiki.ubuntu.com/GutsyGibbon">Gutsy Gibbon</a>, but the online howtos that I found on the net doesnt reliably work for me. </p>
<p>Weird enough for me initially as sometime I can just use <font face="Courier New">wvdial</font> (more on this afterward) and get connected, while most of the time I got various errors about the modem. With these non-reproducible errors and successes, I do some trial and error while looking at the kernel logs, and came up with this one final observation;</p>
<pre><font size="3" color="#808080">shakir@herugrim ~ $ uname -r&nbsp; # just to show the kernel I'm using, as your mileage may vary
2.6.22-14-generic
</font></pre>
<p>
At one shell I run this to see kernel messages;</p>
<pre><font size="3" color="#808080">sudo tail -f&nbsp; /var/log/messages</font></pre>
<p>and got this messages upon plugging in my <font face="Courier New">Huawei E220</font> to the USB port;</p>
<pre><font size="3" color="#808080">usb 3-1: new full speed USB device using uhci_hcd and address 5
usb 3-1: configuration #1 chosen from 1 choice
usbcore: registered new interface driver libusual
usbcore: registered new interface driver usbserial
/build/buildd/linux-source-2.6.22-2.6.22/drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
/build/buildd/linux-source-2.6.22-2.6.22/drivers/usb/serial/usb-serial.c: USB Serial Driver core
/build/buildd/linux-source-2.6.22-2.6.22/drivers/usb/serial/usb-serial.c: USB Serial support registered for GSM modem (1-port)
option 3-1:1.0: GSM modem (1-port) converter detected
usb 3-1: GSM modem (1-port) converter now attached to ttyUSB0
</font></pre>
<p>Nice, it has detected my <font face="Courier New">Huawei E220</font> as GSM modem, and attach it to /dev/ttyUSB0. Let&#8217;s create a wvdial configuration to connect to the telco <font face="Courier New">(Celcom</font> in my case). My<font face="Courier New"> /etc/wvdial.conf </font>looks like this;</p>
<pre><font size="3" color="#808080">[Dialer Celcom3G]
Phone = *99***1#
Modem = /dev/ttyUSB0
Username = user
Password = pass
ISDN = 0
New PPPD = yes
Baud = 1843200
Init2 = ATZ
Init3 = ATQ0 V1 E1 S0=0 &#038;C1 &#038;D2 +FCLASS=0
Modem Type = Analog Modem
</font></pre>
<p>
So let&#8217;s just connect;</p>
<pre><font size="3" color="#808080">shakir@herugrim ~ $ sudo wvdial Celcom3G
WvDial<*1>: WvDial: Internet dialer version 1.56
WvModem<*1>: Cannot get information for serial port.
WvDial<*1>: Initializing modem.
WvDial<*1>: Sending: ATZ
WvDial<*1>: Sending: ATQ0
WvDial<*1>: Re-Sending: ATZ
WvDial<Err>: Modem not responding.
</font></pre>
<p>
Ouch, an error. The modem has been detected, what could go wrong? After some time, and no success with the available tutorials, I finally got this working, as the problem was related to the USB drivers. What I did was to reload the <font face="Courier New">uhci_hcd</font> module</p>
<pre><font size="3" color="#808080">shakir@herugrim ~ $ sudo modprobe -r uhci_hcd</font></pre>
<p>
Lets take a look at what the kernel says about this;</p>
<pre><font size="3" color="#808080">[..snipped..]
Dec  4 22:45:24 herugrim kernel: [ 1343.504000] usb 3-1: USB disconnect, address 6
Dec  4 22:45:24 herugrim kernel: [ 1343.504000] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0
Dec  4 22:45:24 herugrim kernel: [ 1343.504000] option 3-1:1.0: device disconnected
[..snipped..]
</font></pre>
<p>
and then lets load the module back again</p>
<pre><font size="3" color="#808080">shakir@herugrim ~ $ sudo modprobe uhci_hcd</font></pre>
<p>
and see what happens;</p>
<pre><font size="3" color="#808080">USB Universal Host Controller Interface driver v3.0
ACPI: PCI Interrupt 0000:00:1a.0[A
uhci_hcd 0000:00:1a.0: UHCI Host Controller
[..snipped..]
usb 3-1: new full speed USB device using uhci_hcd and address 2
usb 3-1: configuration #1 chosen from 1 choice
option 3-1:1.0: GSM modem (1-port) converter detected
usb 3-1: GSM modem (1-port) converter now attached to ttyUSB0
option 3-1:1.1: GSM modem (1-port) converter detected
usb 3-1: GSM modem (1-port) converter now attached to ttyUSB1
option 3-1:1.2: GSM modem (1-port) converter detected
usb 3-1: GSM modem (1-port) converter now attached to ttyUSB2
[..snipped..]
</font></pre>
<p>
Last time the GSM modem was attached to just <font face="Courier New">/dev/ttyUSB0</font>, but now it&#8217;s also attached to <font face="Courier New">/dev/ttyUSB1</font> and <font face="Courier New">/dev/ttyUSB2</font>. And I guess it&#8217;s time to connect using <font face="Courier New">wvdial</font>;</p>
<pre><font size="3" color="#808080">WvDial<*1>: WvDial: Internet dialer version 1.56
WvModem<*1>: Cannot get information for serial port.
WvDial<*1>: Initializing modem.
WvDial<*1>: Sending: ATZ
WvDial Modem<*1>: ATZ
WvDial Modem<*1>: OK
WvDial<*1>: Sending: ATZ
WvDial Modem<*1>: ATZ
WvDial Modem<*1>: OK
WvDial<*1>: Sending: ATQ0 V1 E1 S0=0 &#038;C1 &#038;D2 +FCLASS=0
WvDial Modem<*1>: ATQ0 V1 E1 S0=0 &#038;C1 &#038;D2 +FCLASS=0
WvDial Modem<*1>: OK
WvDial<*1>: Modem initialized.
WvDial<*1>: Sending: ATDT*99***1#
WvDial<*1>: Waiting for carrier.
WvDial Modem<*1>: ATDT*99***1#
WvDial Modem<*1>: CONNECT
WvDial<*1>: Carrier detected.  Waiting for prompt.
WvDial<Notice>: Don't know what to do!  Starting pppd and hoping for the best.
WvDial<Notice>: Starting pppd at Tue Dec  4 22:49:25 2007
WvDial<Notice>: Pid of pppd: 6433
WvDial<*1>: Using interface ppp0
WvDial<*1>: local  IP address 10.188.15.175
WvDial<*1>: remote IP address 10.64.64.64
WvDial<*1>: primary   DNS address 202.188.0.133
WvDial<*1>: secondary DNS address 202.188.1.5
</font></pre>
<p>
It works, yeay <img src='http://www.mohdshakir.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  As usual, lets create a script for this;</p>
<pre lang="bash" line="1">
#!/bin/bash

sudo modprobe -r uhci_hcd
sudo modprobe uhci_hcd

echo "Waiting kernel to detect modem device"

# Wait till the kernel recognizes our E220
while true; do

        # Read log
        tail -n 20 /var/log/messages  > access.history
        sleep 1
        tail -n 20 /var/log/messages  > access.current

        LOG=`diff access.history access.current | grep ">" | tr -d ">"`

        # Check if it is detected
        if [[ "$LOG" =~ "converter now attached to ttyUSB1" ]]; then
                echo "Modem device detected, dialing..."
                # If it is, get out of the loop immedietly
                break
        fi
done

rm access.history access.current

# Start dialing
sudo wvdial Celcom3G
</pre>
<p><i>p/s: The script is now maintained <a href="http://www.mohdshakir.net/scripts/bash/huawei-e220-dialer">here</a>. Please go there to see the latest updates and discussions</i></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mohdshakir.net/2007/12/05/huawei-e220-in-gutsy-gibbon-kubuntu/feed</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Prefix WhoIs in Python</title>
		<link>http://www.mohdshakir.net/2007/11/10/prefix-whois-in-python</link>
		<comments>http://www.mohdshakir.net/2007/11/10/prefix-whois-in-python#comments</comments>
		<pubDate>Sat, 10 Nov 2007 01:00:09 +0000</pubDate>
		<dc:creator>shakir</dc:creator>
				<category><![CDATA[Information Insemination]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.mohdshakir.net/2007/11/10/prefix-whois-in-python</guid>
		<description><![CDATA[Part of a project I&#8217;m into requires me to dig for some details on IP addresses. Normal whois query (default to whois.apnic.net) don&#8217;t give me the information that I really need for, and upon searching I came to the Prefix Whois Project. They have came up with whob, and from the website I get to [...]]]></description>
			<content:encoded><![CDATA[<p>Part of a project I&#8217;m into requires me to dig for some details on IP addresses. Normal <font face="Courier New" color="#99ccff">whois</font> query (default to <font face="Courier New" color="#99ccff">whois.apnic.net</font>) don&#8217;t give me the information that I really need for, and upon searching I came to the <a href="http://pwhois.org">Prefix Whois Projec</a>t. They have came up with <font face="Courier New" color="#99ccff">whob,</font> and from the website I get to know that I can even get part of <font face="Courier New" color="#99ccff">whob</font>&#8216;s functionality by just to query for whois from their server. Let&#8217;s try with our favorite&#8217;s TMNut Screamyx DNS</p>
<p>&nbsp;</p>
<pre>
shakir@herugrim ~ $ whois -h whois.pwhois.org 202.188.0.133
IP: 202.188.0.133
Origin-AS: 4788
Prefix: 202.188.0.0/19
AS-Path: 6079 4788
AS-Org-Name:
Org-Name: Asia Pacific Network Information Centre
Net-Name: APNIC-CIDR-BLK
Cache-Date: 1195082506
Latitude: 3.167000
Longitude: 101.700000
City: -
Region: -
Country: MALAYSIA
</pre>
<p>I&#8217;ve just started to learn, and like Python, and let&#8217;s see  my Python example to extract the whois info;</p>
<pre  lang="python" line="1">import commands

def main():

    whoisServer = "whois.pwhois.org"
    IPAddr = "202.188.0.133"

    status, output = commands.getstatusoutput('whois -h ' + whoisServer + " " + IPAddr)

    result = {}

    for i in output.splitlines():
        stripped = i.split(':')
        result[stripped[0]] = stripped[1]

    print result

if __name__ == "__main__":
    main()
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.mohdshakir.net/2007/11/10/prefix-whois-in-python/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nikon D40x in Ubuntu Linux</title>
		<link>http://www.mohdshakir.net/2007/11/06/nikon-d40x-in-ubuntu-linux</link>
		<comments>http://www.mohdshakir.net/2007/11/06/nikon-d40x-in-ubuntu-linux#comments</comments>
		<pubDate>Tue, 06 Nov 2007 02:53:38 +0000</pubDate>
		<dc:creator>shakir</dc:creator>
				<category><![CDATA[Information Insemination]]></category>
		<category><![CDATA[Nerd Public Journal?]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.mohdshakir.net/2007/11/06/nikon-d40x-in-ubuntu-linux</guid>
		<description><![CDATA[I&#8217;ve been using Nikon D40X on my previous trip to Jakarta (and Bandung). For this I need to update my previous script as there are few differences, as the following: I set the camera to use RAW format rather than jpeg Data transfer is through the laptop&#8217;s built in MMC card slot, rather than USB [...]]]></description>
			<content:encoded><![CDATA[<p><!-- google_ad_section_start --></p>
<p>I&#8217;ve been using Nikon D40X on my previous trip to Jakarta (and Bandung). For this I need to update my previous script as there are few differences, as the following:</p>
<ul>
<li>I set the camera to use RAW format rather than jpeg</li>
<li>Data transfer is through the laptop&#8217;s built in MMC card slot, rather than USB</li>
<li>I&#8217;m now a (K)Ubuntu user <img src='http://www.mohdshakir.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p><!-- google_ad_section_end --></p>
<p>First step, is the software part. As RAW format is not really usable for &quot;presentation&quot;, I need to convert it to another format, say JPEG. For this I&#8217;m gonna need&nbsp; <font face="Courier New" color="#ccffff">ufraw</font>. Let&#8217;s install it;</p>
<p>&nbsp;</p>
<pre>sudo apt-get install ufraw
sudo apt-get install gimp-ufraw #optional</pre>
<p>&nbsp;</p>
<p>Using <font face="Courier New" color="#ccffff">ufraw-batch</font> (included in the <font face="Courier New" color="#ccffff">ufraw</font> package), I came up with this self explanatory, lightly commented bash script;</p>
<p>&nbsp;</p>
<pre lang="bash" line="1">
#!/bin/bash

#Set some variables
MOUNT_DIR=/media/mmc
MOUNT_DEV=/dev/mmcblk0p1
PHOTO_DIR=/home/shakir/Photos/temp/D40X
#Copy files from the MMC card
sudo mkdir $MOUNT_DIR
sudo mount -o uid=shakir,gid=shakir $MOUNT_DEV -t vfat $MOUNT_DIR
mv -v /media/mmc/dcim/100nd40x/* $PHOTO_DIR
sudo umount $MOUNT_DIR
sudo rmdir $MOUNT_DIR
cd $PHOTO_DIR
mkdir jpeg
#Convert RAW files to low quality JPEGs
for i in `ls *.nef`; do
        ufraw-batch –out-type=jpeg –out-path=jpeg/  \
          –compression=70 –size=600,600 –overwrite $i
        mv -v $i nef/
done
mkdir nef
mv *.nef nef/
</pre>
<p>&nbsp;</p>
<p>The script would generate a low quality / resolution JPEGs, based on the un-processed RAWs. The JPEGs are useful to actually help me deciding which photos are meant for deletion, and which to keep. Later I would manually go to the selected RAW files folder, and;</p>
<pre>ufraw *.nef</pre>
<p>to edit the RAW files. This final step would give me the files that I mean to keep;</p>
<pre>ufraw-batch --out-type=jpeg --out-path=jpeg/ --compression=100 --overwrite *.nef</pre>
<p>I bring back no souvenirs but these photos;</p>
<div align="center">
<img width="300" height="383" src="http://www.mohdshakir.net/wp-content/uploads/image/200711/bsd.jpg" alt="" />
</div>
<div align="center">
<img width="500" height="153" src="http://www.mohdshakir.net/wp-content/uploads/image/200711/ie.jpg" alt="" /><br />
<a href="http://www.mohdshakir.net/wp-content/uploads/image/200711/telnet-zoom.jpg"><img src="http://www.mohdshakir.net/wp-content/uploads/image/200711/telnet.jpg" alt="" /></a><br />
<img width="400" height="392" src="http://www.mohdshakir.net/wp-content/uploads/image/200711/untar.jpg" alt="" />
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mohdshakir.net/2007/11/06/nikon-d40x-in-ubuntu-linux/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Recover deleted files with photorec</title>
		<link>http://www.mohdshakir.net/2007/10/31/data-recovery-with-photorec</link>
		<comments>http://www.mohdshakir.net/2007/10/31/data-recovery-with-photorec#comments</comments>
		<pubDate>Wed, 31 Oct 2007 04:28:28 +0000</pubDate>
		<dc:creator>shakir</dc:creator>
				<category><![CDATA[Information Insemination]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.mohdshakir.net/2007/10/data-recovery-with-photorec.html</guid>
		<description><![CDATA[I was just watching a movie while suddenly all the files except the hidden ones in my home directory were gone, just as someone issued the command sudo rm -rf /home/shakir/* To avoid further data loss, I quickly power off and boot into my Ubuntu live CD to create an image of my /home partition. [...]]]></description>
			<content:encoded><![CDATA[<p>I was just watching a movie while suddenly all the files except the hidden ones in my home directory were gone, just as someone issued the command</p>
<pre>sudo rm -rf /home/shakir/*</pre>
<p>To avoid further data loss, I quickly power off and boot into my Ubuntu live CD to create an image of my <font face="Courier New">/home</font> partition. Here&#8217;s how to see in which partition is my <font face="Courier New">/home</font> directory:</p>
<pre>shakir@herugrim ~ $ cat /proc/partitions
major minor  #blocks  name
8     0  156290904 sda
8     1   21494938 sda1
8     2    8795587 sda2
8     3    2939895 sda3
8     4          1 sda4
8     5    9775521 sda5
8     6  113282316 sda6</pre>
<p>From the partition sizes I can tell my <font face="Courier New">/home</font> partition was in the <font face="Courier New">/dev/sda6</font>, and the next step is to really create an image of the partition to safely doing the recovery process without risking of losing more data. <font face="Courier New">/media/usbdisk</font> is where my external usb harddisk is mounted</p>
<pre>sudo dd if=/dev/sda6 of=/media/usbdisk/herugrim-sda6-20071010.img</pre>
<p><font face="Courier New">Photorec</font> is part of <font face="Courier New">testdisk</font> package, and this is how to install it in ubuntu;</p>
<pre>sudo apt-get update
sudo apt-get install testdisk</pre>
<p>It&#8217;s time to actually do run the program</p>
<pre>sudo photorec /home/shakir/temp/herugrim-sda6-20071010.img</pre>
<p>After going through some options, photorec starts doing it&#8217;s job.</p>
<input width="409" type="image" height="305" src="http://www.mohdshakir.net/wp-content/uploads/image/200710/photorec.png" />
<p>Photorec stores recovered files in recup_dir.&lt;sequence&gt;/&lt;sequence&gt;.&lt;file extension&gt; in the specified target directory, which is not very useful. Here&#8217;s a script I wrote to find all the recovered JPEG files and move/rename it accordingly. Almost the same technique can be used for other file formats.</p>
<pre lang="bash" line="1">
#!/bin/bash
PHOTODIR=/home/shakir/temp/photorec
cd $PHOTODIR
mkdir JPEG
for i in `ls | grep recup`;do
	for j in `ls $i/*.jpg`; do
		if FILE=`exiv2 $j 2>/dev/null | grep timestamp | awk ‘{ print $4"-"$5 }’ | tr -d ‘:’ | grep 200`; then
			cp -v $j "JPEG/"$FILE".jpg"
		fi
	done
done
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.mohdshakir.net/2007/10/31/data-recovery-with-photorec/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Automatic backup using rsync</title>
		<link>http://www.mohdshakir.net/2007/10/09/automate-rsync</link>
		<comments>http://www.mohdshakir.net/2007/10/09/automate-rsync#comments</comments>
		<pubDate>Tue, 09 Oct 2007 00:53:03 +0000</pubDate>
		<dc:creator>shakir</dc:creator>
				<category><![CDATA[Information Insemination]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">/?p=73</guid>
		<description><![CDATA[I&#8217;ve suddenly lost all the files in my home folders, and I quickly do these to not let the impact to be as bad, if it ever recurs. Say 192.168.1.10 is my backup server (anduril), herugrim is my laptop&#8217;s name, these are the steps I did to let my laptop automatically rsync to the backup [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve suddenly lost all the files in my home folders, and I quickly do these to not let the impact to be as bad, if it ever recurs.</p>
<p>Say <font face="Courier New" color="#800000">192.168.1.10</font> is my backup server (<font face="Courier New" color="#800000">anduril</font>), <font face="Courier New" color="#800000">herugrim</font> is my laptop&#8217;s name, these are the steps I did to let my laptop automatically rsync to the backup server.</p>
<p><strong>Configure Password-less Login</strong></p>
<p class="line874">Generate RSA key for use with SSH. Make sure you dont use any passphrase.</p>
<pre>shakir@herugrim ~ $ ssh-keygen -t rsa -C shakir@192.168.1.10
Generating public/private rsa key pair.
Enter file in which to save the key (/home/shakir/.ssh/id_rsa): /home/shakir/.ssh/id_rsa.192.168.1.10
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/shakir/.ssh/id_rsa.192.168.1.10.
Your public key has been saved in /home/shakir/.ssh/id_rsa.192.168.1.10.pub.
The key fingerprint is: 11:d9:23:2e:68:05:59:d9:ac:5a:00:69:17:3a:b4:24  </pre>
<p class="line874">Copy the public key to the server</p>
<pre>shakir@herugrim ~ $ ssh-copy-id -i .ssh/id_rsa.192.168.1.10.pub shakir@192.168.1.10</pre>
<p class="line874">Test if passwordless login successful</p>
<pre>shakir@herugrim ~ $ ssh shakir@192.168.1.10 -i .ssh/id_rsa.192.168.1.10
shakir@anduril:~$</pre>
<p><strong>Configure Target Directory</strong></p>
<pre>shakir@anduril:~$ mkdir backup/herugrim -p</pre>
<p><strong>Manual Rsync (test power)</strong></p>
<pre>shakir@herugrim ~ $ rsync --verbose --progress --compress --rsh=ssh --recursive --times --perms --links --delete /home/shakir anduril:/home/shakir/backup/herugrim -e &quot;ssh -i /home/shakir/.ssh/id_rsa.192.168.1.10&quot;</pre>
<p><strong>Configure cron</strong></p>
<p class="line874">At your machine To edit your crontab entry, issue this command</p>
<pre>crontab -e</pre>
<p class="line874">Add this entry to your crontab</p>
<pre>30      9       *       *       1-5     rsync --compress --rsh=ssh --recursive --times --perms --links --delete /home/shakir anduril:/home/shakir/backup/herugrim -e &quot;ssh -i /home/shakir/.ssh/id_rsa.192.168.1.10&quot;</pre>
<p class="line874">Run cron</p>
<pre>sudo /etc/init.d/cron start     #depending on your linux distro</pre>
<p>And I guess that&#8217;s all..</p>
<p>backup guys, backup&#8230; <img src='http://www.mohdshakir.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mohdshakir.net/2007/10/09/automate-rsync/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
