Archive for the ‘shell’ tag
Disk imaging with netcat and dd with ubuntu linux
Want to create a disk image of a system but write it on another hard disk? This can easily be done with the help of netcat and dd.
For this example you will need two computers connected on the same network, and enough room on one machine to hold your disk image
Destination Machine
So we’ll start off this example by preparing our destination machine to listen on tcp port 4444 via netcat. The port is arbitrary so you can really pick any port that is not being used. Just have to make sure that its the same on both ends.
root@tree:~# netcat -l -p 4444 | dd of=remote-machine.img
Source Machine
Next we’ll start a dd on the source machine and pipe it to netcat on port 4444
root@leaf:~# dd if=/dev/sda1 | netcat destination-machine-ip 4444
Now sit back and wait for your image to be done, when it’s finished dd will print out its status something like
NOTE: you will have to push CTRL+C to cancel out after this is completed, as the netcat session will still be active.
root@leaf:~#
30820468+71926 records in
30867456+0 records out
15804137472 bytes (16 GB) copied, 739.395 s, 21.4 MB/s
^C
If you want to find out the status of dd during the copy theres a couple of ways to do this, open up the system monitor in Ubuntu Linux, and it should tell you the transfer rate. Launch iostat or ifstat through a terminal. Invoke a command from terminal to get dd to display the current progress .
Viola, we’ll now have a dd image of our disk or partition. I like to verify the exact size of the file matches the size output from fdisk.
Destination Machine
root@root:~# ls -la remote-machine.img
-rw-r--r-- 1 root root 15804137472 2010-02-04 10:53 remote-machine.img
Source Machine
root@leaf:~# fdisk -l /dev/sda
Disk /dev/sda: 15.8 GB, 15804137472 bytes
255 heads, 63 sectors/track, 1921 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Display dd progress during dd in ubuntu linux
Started a dd but wondering what the progress is? I haven’t found a way to do a verbose mode for dd, but this command seems to do the trick.
Lets start off by creating a dd of /dev/sda1
mnk0@tree:~# dd if=/dev/sda1 of=my-dd.img
We’ll need to find the process number of our dd which can easily be done with the following command.
ps -ef | grep dd
we’ll get something like this
root 31733 31268 54 10:44 pts/0 00:01:55 dd of my-dd.img
Now we can run our command to find the status of this dd. Open another terminal session.
kill -SIGUSR1 31733
and looking back at our dd page we should see dd dump out a status of its current progress.
mnk0@tree:~# dd if=/dev/sda1 of=my-dd.img
12574781+40555 records in
12601304+0 records out
6451867648 bytes (6.5 GB) copied, 224.634 s, 28.7 MB/s
Using linux like a pro with mplayer, find & play mp3 files from command line in Ubuntu Linux 9.04 Jaunty
Save precious CPU and memory by using mplayer to play mp3s, also keep your playlist file up to date with all your mp3 media files.
First and foremost we need to have mplayer installed, if your on a ubuntu-debian based system use the following command
to install mplayer, if not then you can download the appropriate packages and install them.
apt-get install mplayer
Lets make a home for our script file, and set the appropiate permissions
mkdir ~/scripts; touch ~/scripts/playme.sh; chmod +x ~/scripts/playme.sh; gedit ~/scripts/playme.sh
Paste the following code into your new script file, if you keep your Music files in a different location then change the variable musdir to match your setup.
#/bin/bash
# VARS ##########################################
tmpdir='/tmp'
musdir='/home/osamad/Music'
filename='playlist.m3u'
# CODE ##########################################
find $musdir -name '*.mp3' -o -name '*.ogg' 2>/dev/null >> $tmpdir/$filename
mplayer -playlist $tmpdir/$filename -shuffle -loop 0 -radio volume=80
Using find we build a list of all our mp3s, in this case we have multiple types of media files we want to play so we can specify that by adding the -o -name flags and add them in.
- -playlist ;flag we set the playlist file we just created
- -shuffle ; enables shuffle mode
- -loop 0 ; enables loop 0=forever
- -radio volume=80 ; set the default volume to 80% (use * or / to adjust when playing)
RunTime
Push ALT+F2 or launch from a terminal
./scripts/playme.sh
MORE
To find out more information, or to customize your mplayer settings
man mplayer
Create a custom launcher and run your script from the gnome-panel
keep broken files when trying to unrar a failed crc chek on a rar archive file
ok just a quick note ,, if you’re tryin to unrar an archive thats been corrupted or been split up into multiple parts, keep the broken parts using unrar.
more description
4 Rar files, part1-4, 3 fails becuase of a crc check issue, so you can recover part of the archive using the keep broken flag for unrar ‘-kb’
mnk0@tree:~/downloads$ unrar x -kb Bleach_Naruto Shippuuden 98 - 720p.rar
UNRAR 3.80 beta 2 freeware Copyright (c) 1993-2008 Alexander Roshal
Extracting from Bleach_Naruto Shippuuden 98 - 720p.rar
Extracting Bleach_Naruto Shippuuden 98 - 720p.rar 99%
Calculating control sums of all volumes.
Cannot find volume Bleach_Naruto Shippuuden 98 - 720p.rar
Bleach_Naruto Shippuuden 98 - 720p.mkv - CRC failed
Total errors: 1
mnk0@tree:~/downloads$ ls Bleach_Naruto Shippuuden 98 - 720p.mkv*
Bleach_Naruto Shippuuden 98 - 720p.mkv
mnk0@tree:~/downloads$
Using find to search files on your system
Looking for something? Find has all the power you’ll need to locate any file or directory on your system, as long as you know the name of what you’re trying to find.
First you’ll need to launch a terminal session, and then we’ll dive into this by typing the following command.
find / -name 'my-file.txt' 2>/dev/null
Breaking down our ‘ find ‘ command
- ‘ / ‘ - is our search location, since we’re using / it’ll search everything on our root partition
- ‘ -name ‘ - says we’re gonna search by name, and we can type anything in here (* wildcard)
- ‘ 2>/dev/null ‘ - will tell the shell to pipe all errors to dev/null meaning they wont be displayed

