Showing posts with label Linux. Show all posts
Showing posts with label Linux. Show all posts

Friday, July 10, 2020

Compute MD5 Checksum Hash on Windows and Linux

Use the following commands to print out the MD5 hash for a file.

On Windows:

> CertUtil -hashfile myfile.txt MD5
MD5 hash of file myfile.txt:
76383c2c0bfca944b57a63830c163ad2
CertUtil: -hashfile command completed successfully.

On Linux/Unix:

$ md5sum myfile.txt
76383c2c0bfca944b57a63830c163ad2 *myfile.txt

Sunday, July 24, 2011

Viewing CSV Files

I find CSV (or, to be more general, DSV) files difficult to read on Unix because you can't tell which column a value is in. So I always end up importing them into a spreadsheet which is a pain. Here is an example of a small pipe-delimited file containing book data:
Title|Author|CoAuthor|Year|ISBN
Carrie|Stephen King||1974|978-0385086950
The Human Web|William McNeill|Robert McNeill|2003|978-0393051797
It would be a lot easier to read, if I could convert the file into dictionaries of key:value pairs in order to see which columns the values were referring to, like this:
Title:Carrie
Author:Stephen King
CoAuthor:
Year:1974
ISBN:978-0385086950

Title:The Human Web
Author:William McNeill
CoAuthor:Robert McNeill
Year:2003
ISBN:978-0393051797
So, I wrote the following Bash script to convert a delimiter separated file into a collection of dictionaries. It uses awk to read the first row, which contains the column names, split it and store it in an array. It then prints out the remaining rows along with their column names which are looked up from the array.
#! /bin/bash
# CSV Viewer
# Usage: csv [-d delim] filename
# default delimiter is pipe.
#
# Input file:
# h1|h2|h3
# v1|v2|v3
# w1|w2|w3
#
# Output:
# h1: v1
# h2: v2
# h3: v3
#
# h1: w1
# h2: w2
# h3: w3

delim=|
while getopts "d:" OPTION
do
   case $OPTION in
     d) delim=$OPTARG; shift $((OPTIND-1)) ;;
   esac
done

if [ $# -eq 0 ]
then
    echo "Usage: csv [-d delim] filename" >&2
    exit 1
fi
awk -F "$delim" '{if(NR==1)split($0,arr);else for(i=1;i<=NF;i++)print arr[i]":"$i;print "";}' "$1"
Running the script:
sharfah@starship:~> csv.sh -d '|' file
Title:Carrie
Author:Stephen King
CoAuthor:
Year:1974
ISBN:978-0385086950

Title:The Human Web
Author:William McNeill
CoAuthor:Robert McNeill
Year:2003
ISBN:978-0393051797

Sunday, April 17, 2011

Highlighting Command Output with Generic Colouriser

I recently started using Generic Colouriser, which is a tool that has the ability to colour the output from different programs based on regular expressions. It comes with config files for colouring output from commands such as diff, traceroute, ping, netstat and cvs, but it is also very easy to colour your own commands.

I wrote a config for ps which greys out the processes being run by root and highlights in green, the processes being run by me:

# configuration file for ps
# grey everything out
regexp=^[a-zA-Z]+ .*$
colours=bold black
======
# highlight my processes in green
regexp=^sharfah.*$
colours=green
You can then alias ps to use grc:
alias ps='grc ps'
I've also changed the log config, so that it greys out debug statements, colours warnings yellow and errors red. Most of my logs are produced by log4j. Here is my config:
# this configuration file is suitable for displaying log files
#errors
regexp=^.*(ERROR|Error|Exception).*$
colours=bold red
======
#stack trace
regexp=^\s+at [^:]*:\d*\)$
colours=red
======
regexp=^.*(FATAL|Fatal).*$
colours=on_red
======
regexp=^.*(WARNING|Warning).*$
colours=bold yellow
======
regexp=^.*(DEBUG|Debug).*$
colours=bold black
======
# this is a time
regexp=[^\d]*\d\d:\d\d:\d\d[\.,]{0,1}\d{0,1}\d{0,1}\d{0,1}
colours=bold blue
count=once
======
# ip number
regexp=\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
colours=bold magenta
count=more
I then created a bash function called cless which I use instead of less, to view my logs. I've also aliased tail.
cless ()
{
    if [ $# -eq 0 ]; then
        echo Usage: cless FILE;
        return 1;
    fi;
    grc cat $1 | less -iMF -R
}
alias tail='grc tail'
If you are getting bored of your bland terminal, try this out!

Saturday, June 12, 2010

Mounting a Windows Hard Drive on Linux

Today, I had problems with my Windows hard drive. The operating system (XP) refused to start up and was complaining about corrupt system files. I wanted to back up my files in case things got worse. Luckily, I have a USB external hard drive enclosure and an Ubuntu Linux netbook so this is what I did:
  • I took out the hard drive from my Windows laptop.
  • I inserted it into my Akasa Integral External Enclosure and plugged it via USB into my Ubuntu netbook.
  • Ubuntu wasn't about to mount it automatically and gave me an error saying that the hard drive had problems and that I should "force" it to mount using a command.
  • I opened a terminal and typed the following commands to mount the disk manually:
  • $ sudo mkdir /media/disk
    $ sudo mount -t ntfs /dev/sdb1 /media/disk -o force
    $ cd /media/disk
    
  • I was then able to browse the contents of the Windows drive and back up important files.
  • Finally, I unmounted the drive as follows:
  • $ sudo umount /dev/sdb1
    

Tuesday, January 12, 2010

Identify which process is using a port

Linux:
Use the lsof command and grep for the port number you are interested in:
sharfah@starship:~>  lsof -Pan -i tcp -i udp | grep :8343
java    27725 sharfah    6u  IPv6 20486040       TCP *:8343 (LISTEN)
Solaris:
If you have lsof installed on Solaris, then you can use the Linux method above. If you don't have or cannot install lsof, then use the pre-installed pfiles in a loop, as shown below:
sharfah@starship:~>  ps -ef | grep myuser | awk '{print $2}' | while read pid
>do
>echo $pid
>pfiles $pid| grep 12197
>done
19424
16132
16040
29373
15946
25178
 121: S_IFREG mode:0640 dev:289,6 ino:259883 uid:50006 gid:106 size:109318
        peername: AF_INET 10.232.160.164  port: 12197
        peername: AF_INET 10.232.160.164  port: 12197
        peername: AF_INET 10.232.160.164  port: 12197
        peername: AF_INET 10.232.160.164  port: 12197
        peername: AF_INET 10.232.160.164  port: 12197
        peername: AF_INET 10.232.160.164  port: 12197
        peername: AF_INET 10.232.160.164  port: 12197
        peername: AF_INET 10.232.160.164  port: 12197
        peername: AF_INET 10.232.160.164  port: 12197
        peername: AF_INET 10.232.160.164  port: 12197
15985
16052
18758

Saturday, May 09, 2009

Percent Sign in Crontab

From the man pages of crontab:

The sixth field of a line in a crontab file is a string that is executed by the shell at the specified times. A percent character in this field (unless escaped by \) is translated to a NEWLINE character.

Only the first line (up to a `%' or end of line) of the command field is executed by the shell. Other lines are made available to the command as standard input. Any blank line or line beginning with a `#' is a comment and is ignored.

This means that you need to escape any percent (%) characters. For example, I have a daily backup cron which writes the current crontab to a backup file every morning, and I have to escape the date command, as shown below:

01 07 * * * crontab -l > /home/user/cron.`date +\%Y\%m\%d`
Also note, that cron isn't clever enough to expand the tilde (~) character, so always use the full path to your home directory.

If you find that a cron hasn't fired, check your email in /var/mail/user.

Tuesday, April 28, 2009

Setup Samba on Ubuntu

Here is a quick guide to setting up a Samba share on Ubuntu Linux.

Install the package

sudo apt-get install samba smbfs
Edit smb.conf
Open the samba configuration file in your favourite editor, change security to user and add a username map.
sudo vi /etc/samba/smb.conf
# "security = user" is always a good idea. This will require a Unix account # in this server for every user accessing the server. See # /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html # in the samba-doc package for details. security = user username map = /etc/samba/smbusers
Create a samba user
sudo smbpasswd -a fahd
Add the new user to the smbusers file
The format is "unix username" = "samba username".
sudo vi /etc/samba/smbusers
fahd = fahd
Share home directory
Make the following changes to smb.conf in order to share your home directory over samba and make it writable.
sudo vi /etc/samba/smb.conf
#======================= Share Definitions ======================= # Un-comment the following (and tweak the other settings below to suit) # to enable the default home directory shares. This will share each # user's home directory as \\server\username [homes] comment = Home Directories browseable = no # By default, the home directories are exported read-only. Change the # next parameter to 'no' if you want to be able to write to them. read only = no # By default, \\server\username shares can be connected to by anyone # with access to the samba server. Un-comment the following parameter # to make sure that only "username" can connect to \\server\username # This might need tweaking when using external authentication schemes valid users = %S
Connecting to the samba
Now you should be able to map a drive on windows using the following share format: \\ubuntumachine\username. The first time you will be prompted for a username and password.

Restarting samba

sudo /etc/init.d/samba restart

Saturday, December 13, 2008

XP Uptime Record

My computer has been up for 151 days!

This is the XP machine I use every day at work and even log on from home, after work and on weekends. I'm surprised to see that it hasn't needed a reboot for so long.

Sadly, there's a powerdown in the building tonight...

Finding Uptime on XP
Use the systeminfo command and the look for "System Up Time"

C:\> systeminfo | find "System Up"
  System Up Time: 151 Days, 9 Hours, 45 Minutes, 8 Seconds
Finding Uptime on Solaris or Linux
Use the uptime command:
sharfah@starship:~> uptime
  5:46pm  up 2 day(s), 7:30, 1 user, load average: 3.79, 5.55, 5.41
You can also find out when your system booted up, by using who -b:
sharfah@starship:~> who -b
 system boot Dec 10 11:16

Friday, October 03, 2008

Checking CPU Utilisation on Linux

Here are a few commands which can be used to investigate CPU utilisation on Linux:

top
The top program provides a dynamic real-time view of a running system. It can display system summary information as well as a list of tasks currently being managed by the Linux kernel. The CPU usage shows the task's share of the elapsed CPU time since the last screen update, expressed as a percentage of total CPU time.

top - 18:12:28 up 40 days, 18:35,  1 user,  load average: 0.13, 0.03, 0.01
Tasks:  98 total,   1 running,  96 sleeping,   0 stopped,   1 zombie
Cpu(s):  0.2% us,  0.0% sy,  0.0% ni, 99.4% id,  0.4% wa,  0.0% hi,  0.0% si
Mem:   8002512k total,  3845332k used,  4157180k free,    64624k buffers
Swap:  9437144k total,   771048k used,  8666096k free,  1831288k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      16   0   640   80   48 S  0.0  0.0  43:04.18 init
    2 root      RT   0     0    0    0 S  0.0  0.0   0:00.70 migration/0
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.02 ksoftirqd/0
    4 root      RT   0     0    0    0 S  0.0  0.0   0:00.58 migration/1
    5 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/1
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.40 migration/2
    7 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/2
    8 root      RT   0     0    0    0 S  0.0  0.0   0:00.46 migration/3

sar
The sar command can be used to display a history of CPU usage:
10:00:01   CPU     %user     %nice   %system   %iowait   %idle
10:10:01   all     34.45      2.04     30.03      0.05   33.43
10:20:01   all     34.13      1.77     29.85      0.08   34.17

mpstat
The mpstat command can be used to show the percentage of CPU usage for each processor:
> mpstat -P ALL

18:02:42     CPU   %user   %nice %system %iowait    %irq
18:02:42     all   24.77   17.51   21.56    1.19    0.01
18:02:42       0   25.00   17.92   20.27    0.94    0.00
18:02:42       1   23.81   17.03   20.87    0.88    0.00
18:02:42       2   26.28   16.44   22.23    1.54    0.01
18:02:42       3   24.00   18.65   22.86    1.39    0.01
Order ps output
The following command displays the top 10 CPU users on your system. It involves listing the processes using ps and then sorting them by CPU usage:
> ps -eo pcpu,pid,user,cmd | sort -k 1 -r | head -10

%CPU   PID USER     CMD
 0.1    13 root     [events/3]
 0.1   103 root     [kswapd0]
 0.1   102 root     [kswapd1]
 0.0     9 root     [ksoftirqd/3]
 0.0     8 root     [migration/3]
 0.0  8982 root     [lockd]
 0.0  8981 root     [rpciod]
 0.0     7 root     [ksoftirqd/2]
 0.0    75 root     [kblockd/3]

Wednesday, August 06, 2008

The fuser Command

fuser is one of the *nix commands that I have started seeing myself use more and more frequently. It is a very powerful command, yet often forgotten. So what is it? fuser displays the process IDs of the processes that are using the files specified.

Identifying Processes
The following example shows how you can use the fuser command to find out which process is writing a log file called log.txt. fuser tells you the process ID (24976), which you can then use in a ps command to find out what the process is. In this case, its java.

sharfah@starship:~> ls -ltr
-rw-rw-r--   1 sharfah   sharfah     2836 Aug  6 00:08 log.txt

sharfah@starship:~> fuser -u log.txt
log.txt:    24976o(sharfah)

sharfah@starship:~> ps -ef | grep 24976
  sharfah 24976 24963  0 23:49:00 ?       13:39 java -server
  sharfah  6284 17191  0 00:09:54 pts/1    0:00 grep 24976
Used in this way, fuser can help tell you which process is responsible for creating large log files on your filesystem!

Killing Processes
The -k flag, sends the SIGKILL signal to each process using the file. This is handy if you want to "kill -9" a process without hunting for its PID first. Alternatively, if you want to send another signal type, use the -s flag. e.g. to send SIGTERM use -s TERM. The -k option is equivalent to -s KILL or -s 9. Most of my shutdown scripts, simply call fuser -s TERM on the process's log file.

Because fuser works with a snapshot of the system image, it may miss processes that begin using a file while fuser is running. Also, processes reported as using a file may have stopped using it while fuser was running. These factors should discourage the use of the -k option.

Wednesday, February 07, 2007

Windows vs Linux System Calls

Windows has grown so complicated that it is harder to secure. The images below are a complete map of the system calls that occur when a web server serves up a single page of HTML with a single picture. The same page and picture. The more system calls, the greater potential for vulnerability, the more effort needed to create secure applications.

The first picture is of the system calls that occur on a Linux server running Apache.


This second image is of a Windows Server running IIS.

Friday, January 12, 2007

Beyond Microsoft

Why being anti-Microsoft is about more than geek chic

So you have technically savvy friends. One in particular, let’s call him -- Niles, is an avid Linux fan. He preaches to you about its superior security; its lack of viruses; its strength in the server market. He talks about OpenOffice, Firefox, The Gimp, and a myriad of other applications that can surely replace your commonly used Windows applications.

And he’s mostly right.

Your other friend, let’s call him -- Andre, is a Mac fan. He has what occasionally seems to be an unhealthy, perhaps psychotic love of his platform. Andre also talks about OS X’s lack of viruses, its ease of use, and its ability to “just get things done.”

He’s also right.

So why is it no one cares? The average Mac or Linux geek oftentimes doesn’t understand: why after being bombarded with viruses, spyware, crashes, and generally unintuitive, overpriced software does the average Windows user never consider a change?

There’s a number of reasons for that. Linux still requires a bit of technical know-how, though it has made steps toward user-friendliness over the years; and until recently Macs have been viewed by many as simply too expensive. One can debate the validity of both of these arguments, or point to other causes; we can even discuss the psychology of abuse, and how some Windows users are just too scared to explore greener pastures, however that’s not this article’s concern.

The real question is this: as an enlightened user of an alternative operating system, how can you go beyond evangelizing its technical merits, and instead make people see life beyond Microsoft? The answer is a simple one that, as individuals obsessed with our computers, we often forget: there is a humanistic side to computing, one that has unfortunately been corrupted by a Microsoft hegemony. What I propose in this article are three points of attack when attempting to sway an individual away from digital slavery.

Humanistic: Computers as renascence tools

Even preceding OS X, Mac users have had something in common with their open-source comrades in the Linux and BSD communities: creativity. When one thinks of Linux, images of an individual working in an art studio, or editing a film do not immediately come to mind. However, Linux and BSD users exhibit a different kind of creativity, of equally important value. Indeed, many who have embraced Linux have done so out of a desire to be in control of their operating systems, to the extent of being able to manipulate its code at even the lowest levels. Additionally, the open source community promotes project development both independently and collaboratively, producing projects that frequently answer the cries of users for applications that the corporate world would otherwise never create.

In the Mac world, creativity takes a different path. Out of the box OS X practically dares its users to just create something, whether it’s a short film in iMovie, a photographic portfolio in iPhoto, or a musical piece in Garageband. Subsequently, Mac users tend to be more eager to delve into the world of participatory media; the recent podcasting phenomena has emerged, largely, from the Mac crowd; the infamous “Truth About the IPod” video was created in iMovie, on a Macintosh, and distributed in Quicktime format.

However Linux and OS X encourage creativity in more subliminal ways. Neither operating system taunts the user with wizards, pop-ups, marketing, or grammar suggestions. While writing this article in Apple’s Pages I was not once asked if I’d like help writing it; a dancing paperclip never appeared, nor was I harassed by a GUI that looked as if it were designed by Playskool. Windows trains its users to be moronic, telling them that it’s okay to remain helpless in front of their machines, continuously relying on the assistance of a geek friend, or outsourced tech-support in Bangalore. It’s the beginning of a long relationship -- an abusive relationship, one that the user believes is perfectly normal, especially since his friends all experience similar problems with their machines.

This condition is not coincidental, and it’s largely the result of an operating system designed from the ground up with a primarily corporate perspective, where there is no concern for individual expression, but an emphasis on cutting corners, reducing costs, and releasing a product on schedule. The result is a stale, uninspiring, grayish Microsoft world. Big brother in 2005 is no longer IBM, but Microsoft, and the primary objective is to keep you locked in.

Political: A cry against digital imperialism

As a youth in the 1980s I remember drooling over a number of different platforms, that, as a Commodore user, I felt were all equally interesting. From Atari STs, Amigas, Macs, Apple ][’s, to IBM compatibles I never really envisioned the monolithic computer world we live in today. Who would have thought that the Amiga, with its awesome multimedia capabilities, would have been beat by a beige box and a DOS prompt?

Yet that’s the case, and with closer analysis, it’s really quite frightening. The proliferation of Windows has resulted in a widened acceptance of proprietary protocols and file formats, and an obsessive campaign of patenting, that if legally pursued, could hinder a number of both open and closed source projects that attempt cross-platform integration. Not to mention, the monopolistic standardization of Windows on 90% of the world’s desktops has created an incredibly easy target, generating catastrophic meltdowns each time a thirteen year old virus programmer decides showcase his latest work.

Widespread use of the Internet beyond government and educational institutions has made Microsoft’s reign all the more terrifying. With a tight grip on the desktop market, Windows is in a unique position of dictating, and in fact, completely disregarding agreed upon standards, a predicament web developers are all too familiar with when their pages appear wonderfully in every browser -- except Internet Explorer.

The Internet has made truly participatory approaches to media creation a reality; there are no gatekeepers, and site visits are determined by the content’s public value, and/or one’s ability to promote it. Recent news stories initially broken by bloggers have highlighted the medium’s potential. Yet, let us remember that corporate America, which Microsoft is a part of, firmly controls what is news and what is not, and is unwilling to forfeit its domination anytime soon. One can hopefully see where this is leading. Microsoft’s blatant disrespect of standards, and continuous attempts at propagating closed formats and protocols is an attempt to hinder the free exchange of information. Free media is generally not the friend of corporate America, and Gates’ vision of a PC on every desktop is hardly philanthropic.

Economic: An appeal to the wallet

Microsoft has generally turned a blind eye to piracy, because piracy -- whether they like to admit it or not, has been their friend. With free options such as OpenOffice and Linux available, the incentive to run Windows or Office -- Microsoft’s two biggest products, is decreasing rapidly every day. Consumer lock-in is key. If the average consumer is initially unwilling to pay outrageous fees for software, he or she will be after the superiority of the Word document has been subconsciously engraved into their mind, despite the truthfulness of such a claim.

The economic dimension of Microsoft’s hegemony is even more troubling in developing nations, where a meager $5 USD license for Windows could seem expensive, never mind $150. Adoption of Linux, and regionally specific development becomes incredibly attractive in these situations. Naturally, Microsoft is there to make sure that doesn’t happen, and the lock-in cycle continues.
Here is an example. A young undergraduate majoring in computer science has a strong interest in Linux; he works furiously with his country’s user group toward the localization of key apps. Microsoft steps in, and offers the young man a paid scholarship for graduate studies in the US, and possibly future employment as a Microsoft representative in his region. At this point, he has to make a choice: help his nation become technologically independent, or instead peddle overpriced solutions to various government institutions throughout his country; with the added title of “Dr.” in front of his name, courtesy of Microsoft, his word starts to carry some weight. And so instead of investing critical funds in hardware, or internal software development, this country begins to waste thousands, perhaps millions of dollars in licensing fees, in addition to the inherent cost of maintenance required to keep a Windows network healthy.

A trip to the so-called third-world is not necessary to witness Microsoft’s educational lock-in tactics, just visit any number of computer science departments in the United States bought out and wowed by MS marketing. Instead of learning the basics of computing in their introductory computing classes, students learn about the start menu, control panel, and scanning their documents for viruses; instead of learning how computers work, in a manner applicable regardless of platform, students simply memorize patterns and a series of motions. And when those patterns and motions are different than expected, their world comes crumbling down. The solution? Trash their $300 PC and buy another one, which will just malfunction a few months later. Or perhaps the more sophisticated will pursue a reinstallation, after which they can expect to endure hours of downloading Windows updates, and a series of reboots.

So, where do you want to go today? If you’re a Windows user, you’ll need a tow truck before answering that question.

Now what?

Hopefully this article has provided you with some talking points, or perhaps activated a few mental relationships that you were unaware of. Remember these points while repairing your friend or family member’s machine. If necessary, gently sway them away from Microsoft products. Introduce them to Firefox, OpenOffice, and The Gimp -- all of which have Windows versions. If you’re a Mac user, prepare a short demo showing them how to not only accomplish their usual tasks in OS X, but do so more efficiently. The average computer user needs more incentive to switch than a replacement of equal quality; he or she needs something superior. More is at stake here than the continued use of a mediocre operating system; a binary culture is no better than a monolithic one. Multiple platforms, all utilizing agreed upon standards, open protocols, and file formats are key in conquering a digital oligarchy.

Teach the bourgeois, and rock the boulevard . . .

[By bedouin on Ubuntu Forums]

Wednesday, December 06, 2006

Linux - CPU, Memory and Version

Find out which version of SuSE you are running:
more /etc/SuSE-release

SUSE LINUX Enterprise Server 9 (i586)
VERSION = 9
PATCHLEVEL = 2

Find out how much Memory you have:
more /proc/meminfo

MemTotal: 8141344 kB
MemFree: 1983696 kB
Buffers: 74736 kB
Cached: 258836 kB
SwapCached: 2581836 kB
Active: 5485116 kB
Inactive: 444240 kB
HighTotal: 7299036 kB
HighFree: 1408888 kB
LowTotal: 842308 kB
LowFree: 574808 kB
SwapTotal: 9437144 kB
SwapFree: 5436028 kB
Dirty: 244 kB
Writeback: 0 kB
Mapped: 5571044 kB
Slab: 75912 kB
Committed_AS: 5085896 kB
PageTables: 28032 kB
VmallocTotal: 112632 kB
VmallocUsed: 9720 kB
VmallocChunk: 102640 kB
HugePages_Total: 0
HugePages_Free: 0
Hugepagesize: 2048 kB

Find out how much processor power you have:

I have a dual core 2.2 GHz machine.
more /proc/cpuinfo

processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 33
model name : AMD Opteron(tm) Processor 275
stepping : 2
cpu MHz : 2204.865
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8...
bogomips : 4325.37

processor : 1
vendor_id : AuthenticAMD
cpu family : 15
model : 33
model name : AMD Opteron(tm) Processor 275
stepping : 2
cpu MHz : 2204.865
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8...
bogomips : 4325.37

processor : 2
vendor_id : AuthenticAMD
cpu family : 15
model : 33
model name : AMD Opteron(tm) Processor 275
stepping : 2
cpu MHz : 2204.865
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8...
bogomips : 4407.29

processor : 3
vendor_id : AuthenticAMD
cpu family : 15
model : 33
model name : AMD Opteron(tm) Processor 275
stepping : 2
cpu MHz : 2204.865
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8...
bogomips : 4390.91