Archive for the ‘shell’ Category
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 a swapfile to increase the swap space on your system
This can be a very handy function if we want to use a file, instead of a partition, and with modern filesystems the performance is almost on par with using a dedicated partition for your swap area.
1. Using dd lets make a zero’d file for the swap
dd if=/dev/zero of=/swapfile bs=1048576 count=1000
This example would create a swapfile of 1 gig using a blocksize of a megabyte (1048576).
2. Make file as a swapfile
mkswp /swapfile
3. Activate swapfile
swapon /swapfile
4. Verify that our swapfile has been activated
swapon -s
We should see something like this in the list ..
Filename Type Size Used Priority
/swapfile file 9999992 0 -2
If you want to have this a permanent solution, then adding the entry to fstab would probally be a better idea,
open up /etc/fstab in your favourite editor and add the following line.
/swapfile swap swap defaults 0 0
How to check and monitor cpu core temperatures in Ubuntu
Ok, so this weekend i decided to take the plunge and get myself a nice new box! I decided to go with Intel Core 2 Duo e5200 , and an Asus P5QL-E mother board, so anyways got everything mounted up and just installed Ubuntu Ibex 8.10 .. so now i wanna see what the temperature ratings are, and this is a snap with Ubuntu.
Open up a terminal and type
sudo apt-get install lm-sensors sensord
After installation of those packages we have to setup our sensors with our cpu
sudo sensors-detect
you’ll have to actually type Yes for all the next part, which is just asking about loading modules and drivers, for your cpu
So after all that we’ll have a little bit of editing to do, sensors will come up and tell you that you need to make some changes to /etc/modules, and will give you a snippet to paste into the file
sudo gedit /etc/modules
and then paste the code into the bottom of the file, for example this is what mine said
# Chip drivers
coretemp
#
Reboot and your all set, open up a terminal and type sensors to see your core temps! if you want to be real slick type watch sensors .. so you can watch the updates in the core temps every 2s .
Using route , set your default gateway
Want to quickly set the route for your machine from the terminal.
Start by opening up a terminal window, and type the following, just make sure you have the ip address of your gateway to do so. In this case the gateway of 10.3.156.1 is being used.
route add default gw 10.3.156.1 eth0
We can see our changes by typing
route -n
Access a microsoft windows share from the bash terminal in Ubuntu Linux Desktop
Setup
Ever want to access a windows share from your terminal? Well using ‘ mount ‘ and cifs/samba this is a snap.
Make sure you have smbfs/cifs support, on ubuntu linux distributions you can simply type
apt-get install smbfs
Now we need to make a directory on our hard disk where we can mount our windows share.
mkdir /mnt/location
Mounting Windows Share
Now we\’re ready to mount the filesystem on our newly created directory (/mnt/location).
Mount with cifs
mount -t cifs //server-ip-or-name/share /mnt/location -o username=user,password=pass,domain=DOMAIN
Mount with smbfs
mount -t smbfs //server-ip-or-name/share /mnt/location -o username=user,password=pass,domain=DOMAIN
Clean Up
When finished with our windows mount, we should exit the directory, or close any windows that are accessing it, and then unmount the Microsoft Windows NTFS share by using the following series of commands.
cd /; umount /mnt/location
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




