Posts Tagged ‘description’
Friday, March 6th, 2015 
Usually admins like me who casuanlly need to administer "forests" (thousands of identicallyconfigured services Linux servers) are generating and using RSA / DSA key authentication for passwordless login, however this is not always possible as some client environments does prohibit the use of RSA / DSA non-pass authentication, thus in such environments to make routine server basic package rpm / deb upgrades or do other maintanance patching its necessery to use normal ssh user / pass login but as ssh client doesn't allow password to be provided from prompt for security reasons and therefore using some custom bash loop to issue single command to many servers (such as explained in my previous article) requires you to copy / paste password on password prompt multiple times. This works its pretty annoying so if you want to run single command on all your 500 servers with specifying the password from password prompt use sshpass tool (for non-interactive ssh password auth).
SSHPASS official site description:
sshpass is a utility designed for running ssh using the mode referred to as "keyboard-interactive" password authentication, but in non-interactive mode.
Install sshpass on Debian / Ubuntu (deb based) Linux
sshpass is installable right out of regular repositories so to install run:
apt-get install —yes sshpass
Install sshpass on CentOS / Fedora (RPM based) Linux
sshpass is available also across most RPM based distros too so just use yum package manager
If its not available across standard RPM distro provided repositories, there should be RPM on the net for distro just download latest one and use wget and rpm to install:
wget -q http://dl.fedoraproject.org/pub/epel/6/x86_64/sshpass-1.05-1.el6.x86_64.rpm
rpm -ivh sshpass-1.05-1.el6.x86_64.rpm
How Does SshPass Works?
Normally openssh (ssh) client binary uses direct TTY (/dev/tty)= an abbreviation for PhyTeleTYpewriter or (the admin jargon call Physical Console access) instead of standard remotely defined /dev/pts = Virtual PTY.
To get around this Sshpass runs ssh in a dedicated TTY to emulate the password is indeed issues by interactive keyboard user thus fooling remote sshd server to thinking password
is provided by interactive user.
SSHPass use
Very basic standard use which allows you to pass the password from command line is like this:
sshpass -p 'Your_Password_Goes_here123' ssh username@server.your-server.com
Note that the server you're working is shared with other developers they might be able to steal your username / password by using a simple process list command such as:
ps auxwwef
…
In my case security is not a hot issue, as I'm the only user on the server (and only concern might be if someone hacks into the server 🙂
Then assuming that you have a plain text file with all your administered servers, you can easily use sshpass in a Bash Script loop in order to run, lets say a package upgrade across all identical Linux version machines:
while read line; do
sshpass -p 'Your_Password_Goes_here123' ssh username@$line "apt-get update && apt-get upgrade && apt-get dist-upgrade" < /dev/null;
done < all_servers_list.txt
Change the command you like to issue across all machines with the string "apt-get …"
Above command can be used to keep up2date all Debian stable server packages. What you will do on servers is up to your imaginations, very common use of above line would be if you want to see uptime /netstat command output across all your network servers.
while read line; do
sshpass -p 'Your_Password_Goes_here123' ssh username@$line "uptime; who; netstat -tunlp; " < /dev/null;
done < all_servers_list.txt
As you can guess SshPass is swiss army knife tool for admins whoneed to automate things with scripts simultaneously across number of servers.
Happy SSH-ing 🙂
Tags: authentication, command, description, forest, Install, line, Linux, network servers, official, password, rpm, script, server, server packages, username, www
Posted in Everyday Life, Linux, Programming, System Administration, Various | No Comments »
Monday, February 3rd, 2014
In this small article I will try to clear it up the general types of Web Server Load Balancers available. Whether one choose a Load Balancer he has the option to use a software LB or a hardware LB one there are plenty of software load balancer scripts out there. In this pos t I will mention just what choice is available in hardware load balancer interface BigIP LTM F5 standard. Generally BigIP LTM Load Balancers can be grouped in Static, Dynamic and Additional. One or more Load Balancers can be configured in front of group or farm of appplication servers. When more than one load balancer is used in front of application Load Balancer could be Active Load Balancer and Passive Load Balancer.
Below information will hopefully be useful to Web and Middleware working sys admins and anybody involved in frequent and large web systems integration.
Static Load Balancing

Round Robin Load Balancing
This is the default load balancing method. Round Robin mode passes each new connection request to the next server in line, eventually distributing connections evenly across the array of machines being load balanced.
Round Robin mode works well in most configurations, especially if the equipment that you are load balancing is roughly equal in processing speed and memory.

Ratio (member) / Ratio (node) Load Balancer
The Ratio (member) system distributes connections among pool members or nodes in a static rotation according to ratio weights that you define. In this case, the number of connections that each system receives over time is proportionate to the ratio weight you defined for each pool member or node. You set a ratio weight when you create each pool member or node.
These are static load balancing methods, basing distribution on user-specified ratio weights that are proportional to the capacity of the servers.
Dynamic Load Balancers
Dynamic Ratio (member) Dynamic Ratio (node) LB
The Dynamic Ratio load balancing select a server based on various aspects of real-time server performance analysis. These methods are similar to the Ratio methods, except that with Dynamic Ratio methods, the ratio weights are system-generated, and the values of the ratio weights are not static. These methods are based on continuous monitoring of the servers, and the ratio weights are therefore continually changing.
The Dynamic Ratio LBs are used specifically for load balancing traffic to RealNetworks® RealSystem® Server platforms, Windows® platforms equipped with Windows Management Instrumentation (WMI), or any server equipped with an SNMP agent such as the UC Davis SNMP agent or Windows 2000 Server SNMP agent.

Fastest (node) /Fastest (application) LB
The Fastest methods select a server based on the least number of current sessions. The following rules apply to the Fastest load balancing methods:
These LB require that you assign both a Layer 7 and a TCP type of profile to the virtual server interface where LB IP is binded.
If a Layer 7 profile is not configured, the virtual server falls back to Least Connections load balancing mode.
Note: If the OneConnect feature is enabled, the Least Connections methods do not include idle connections in the calculations when selecting a pool member or node. The Least Connections balancing use only active connections in their calculations.
Fastest node load balancing is useful in environments where nodes are distributed across separate logical networks.
Least Connections (member) / Least Connections (node) LB
The Least Connections method are relatively simple in that the system passes a new connection to the pool member or node that has the least number of active connections.
Note: If the OneConnect feature is enabled, the Least Connections methods do not include idle connections in the calculations when selecting a pool member or node. The Least Connections methods use only active connections in their calculations.
The Least Connections balancing function best in environments where the servers have similar capabilities. Otherwise, some amount of latency can occur.
For example, consider the case where a pool has two servers of differing capacities, A and B. Server A has 95 active connections with a connection limit of 100, while server B has 96 active connections with a much larger connection limit of 500. In this case, the Least Connections method selects server A, the server with the lowest number of active connections, even though the server is close to reaching capacity.
If you have servers with varying capacities, consider using the Weighted Least Connections load balancing instead.
Weighted Least Connections (member) / Weighted Least Connections (node)
Like Least Connections, these load balancing methods select pool members or nodes based on the number of active connections. However, the Weighted Least Connections methods also base their selections on server capacity.
The Weighted Least Connections (member) method specifies that the system uses the value you specify in Connection Limit to establish a proportional algorithm for each pool member. The system bases the load balancing decision on that proportion and the number of current connections to that pool member. Example is member_a has 40 connections and its connection limit is 200, so it is at 20% of capacity. Similarly, member_b has 40 connections and its connection limit is 400, so it is at 10% of capacity. In this case, the system select selects member_b. This algorithm requires all pool members to have a non-zero connection limit specified.
The Weighted Least Connections (node) method specifies that the system uses the value you specify in the node's Connection Limit setting and the number of current connections to a node to establish a proportional algorithm. This algorithm requires all nodes used by pool members to have a non-zero connection limit specified.
If all servers have equal capacity, these load balancing behave in the same way as the Least Connections methods.
Note: If the OneConnect feature is enabled, the Weighted Least Connections methods do not include idle connections in the calculations when selecting a pool member or node. The Weighted Least Connections use only active connections in their calculations.
Weighted Least Connections methods work best in environments where the servers have differing capacities.
For example, if two servers have the same number of active connections but one server has more capacity than the other, the BIG-IP system calculates the percentage of capacity being used on each server and uses that percentage in its calculations.
Observed (member) / Observed (node)
With the Observed methods, nodes are ranked based on the number of connections. The Observed methods track the number of Layer 4 connections to each node over time and creates a ratio for load balancing.
The need for the Observered methods is rare, and they are not recommended for large pools.
Predictive (member) / Predictive (node)
The Predictive methods use the ranking methods used by the Observed methods, where servers are rated according to the number of current connections. However, with the Predictive methods, the BIG-IP system analyzes the trend of the ranking over time, determining whether a nodes performance is currently improving or declining. The servers with performance rankings that are currently improving, rather than declining, receive a higher proportion of the connections.
The need for the Predictive methods is rare, and they are not recommend for large pools.
Least Sessions LB type
The Least Sessions method selects the server that currently has the least number of entries in the persistence table. Use of this load balancing method requires that the virtual server reference a type of profile that tracks persistence connections, such as the Source Address Affinity or Universal profile type.
Note: The Least Sessions methods are incompatible with cookie persistence.
The Least Sessions method works best in environments where the servers or other equipment that you are load balancing have similar capabilities.
L3 Address
L3 Address is same LB type as Least Connections methods.
Tags: description, Dynamic Load Balancers, kind, L3 Address, Least Connections, load balancer, load balancing, node, number, pool, Round Robin, Round Robin Load Balancing, server, servers, Static Load Balancing, use, Weighted Least Connections, Windows
Posted in Various, Web and CMS | No Comments »
Tuesday, May 22nd, 2012
To continue with my lately ASCII centered articles I found hasciicam
hasciicam is a program to stream ASCII video over the network on Linux and probably can be easily made working on FreeBSDtoo.
The project concept is interesting in a matter of fun (play) point of view, however not too usable as we all know ASCII character looking faces doesn't look too pretty.
Below is the Debian (Squeeze) package description:
noah:~# apt-cache show hasciicam|grep -i description -A 7
Description: (h)ascii for the masses: live video as text
Hasciicam makes it possible to have live ASCII video on the web. It
captures video from a tv card and renders it into ascii, formatting the
output into an html page with a refresh tag or in a live ASCII window or
in a simple text file as well, giving the possibility to anybody that has a
bttv card, a Linux box and a cheap modem line to show a live ASCII video
feed that can be browsable without any need for plugin, java etc.
Homepage: http://ascii.dyne.org/
On hasciicam Project webpage is it is stated as a hardware you need to have:
"As hardware you need to have a webcam or a videocard supported by "video 4 linux", most of the gear you can buy around should work well."
To install and test it I run:
noah:~# apt-get --yes install hasciicam
Though it is stated on the project website supposed to work display video fine with most 'linux ready' webcams, it didn't with this very standard one.
Here is the exact WebCamera model as identified to the kernel:
noah:~# dmesg|grep -i camera
[ 1.433661] usb 2-2: Product: USB2.0 Camera
[ 10.107840] uvcvideo: Found UVC 1.00 device USB2.0 Camera (1e4e:0102)
[ 10.110660] input: USB2.0 Camera as /devices/pci0000:00/0000:00:1d.7/usb2/2-2/2-2:1.0/input/input11
By the way, I use the very same CAM daily on for Skype video calls as well as the Camera is working with no problems to save video or pictures inside Cheese
Here is the exact WebCamera model as identified to the kernel:
noah:~# dmesg|grep -i camera
[ 1.433661] usb 2-2: Product: USB2.0 Camera
[ 10.107840] uvcvideo: Found UVC 1.00 device USB2.0 Camera (1e4e:0102)
[ 10.110660] input: USB2.0 Camera as /devices/pci0000:00/0000:00:1d.7/usb2/2-2/2-2:1.0/input/input11
The just installed deb has one binary file only /usr/bin/hasciicam. To test it with the camera I issued:
noah:~# hasciicam -d /dev/video0
HasciiCam 1.0 - (h)ascii 4 the masses! - http://ascii.dyne.org
(c)2000-2006 Denis Roio < jaromil @ dyne.org >
watch out for the (h)ASCII ROOTS
Device detected is /dev/video0
USB2.0 Camera
1 channels detected
max size w[640] h[480] - min size w[48] h[32]
Video capabilities:
VID_TYPE_CAPTURE can capture to memory
!! error in ioctl VIDIOCGMBUF: : Invalid argument
Unfortunately as you see from the output, it failed to detect the web camera model.
The exact camera besides its kernel detection naminf is a cheap external USB 2.0 (fake brand / nonanem) "universal" Web PC Camera (SUPER .3mega pixel)
For those who have a further interest in building and installing hasciicam on other Linux platforms than Debian and Ubuntu or whoever wants to look in the code check check Project webpage is. For those who are less of programmers (like me) the project is written in C programming language and uses aa-lib in order to render the video to ASCII.
On the site you will notice two totally schizophrenic looking pictures of presumably the project head developer …

As I read in man hasciicam manual page it's said to be able to generate ascii plain text and html files as well as directly to write the output to console, which later probably can be streamed via the network.
Pitily as it didn't detect my camera I couldn't make some testing of its network capabilities.
A Streaming of ASCII couuld be done through pushing the .html output to a webserver and setting a php or javascript to loop through and refresh the browser over the uploaded files every sec or so.
Also I assume the ASCII video output saved in plain console could be streamed via netcat or some tiny scripted perl or bash script and directly observed via a telnet or ssh connection.
One playful way I can think of checking a stored video without the use of FTP is to login via ssh and do:
$ ssh someuser@somehost
$ watch -n 1 "cat video-ascii.html"
🙂
Well something disturbing about hasciicam from a (purely Christian point of view) is it was developed by some kind of non profit organization called RastaSoft on the project website, some of its authors has written JAH BLESS.
As I didn't succeeded seeing it working, I'll be interested to hear if someone who red this article and give it a try can report the web camera model used.
Tags: ascii character, Auto, card, description, dmesg, doesn, Draft, dyne, file, formatting, fun, fun play, gnu linux, HasciiCAM, html page, kernel, linux box, modem line, noah, package, package description, page, pci, plugin java, possibility, Product, project webpage, quot, refresh, show, squeeze, ssh, tag, text, tv card, video, video feed, video on the web, videocard
Posted in Entertainment, System Administration, Various | No Comments »
Saturday, May 19th, 2012I'm a guy fascinated by ASCII art, since the very early days I saw a piece of this awesome digital art.
As time passed and computers went to be used mostly graphics resolution, ASCII art loose its huge popularity from the early DOS and BBS (internet primordial days).
However, this kind of art is still higly valued by true computer geeks.
In that manner of thoughts, lately I'm researching widely on ASCII art tools and ASCII art open source tools available for Linux.
Last time I check what is available for 'ASCII job' was before 5 years time. Recently I decided to review once again and see if there are new software for doing ascii manipulations on Linux and this is how this article got born.
My attention was caught by aewan (ASCII-art Editor Without A Name), while searching for ASCII keyword description packages with:
apt-cache search ascii
Aewan project official website is on sourceforge check it out here
Here is the complete description of the Debian package:
hipo@noah:~$ apt-cache show aewan|grep -i description -A 5
Description: ASCII-art Editor Without A Name
aewan is an ASCII art editor with support for multiple layers that can be
edited individually, colors, rectangular copy and paste, and intelligent
horizontal and vertical flipping (converts '\' to '/', etc). It produces
both stand-alone art files and an easy-to-parse format for integration
into your terminal applications.
I installed it to give it a try:
noah:~# apt-get --yes install aewan
Selecting previously deselected package aewan.
(Reading database ... 388522 files and directories currently installed.)
Unpacking aewan (from .../aewan_1.0.01-3_amd64.deb) ...
Processing triggers for man-db ...
Setting up aewan (1.0.01-3) ...
aewan package provides three executable binaries:
noah:~# dpkg -L aewan|grep -i /bin/ /usr/bin/aecat
/usr/bin/aewan
/usr/bin/aemakeflic
1. aewan binary is the ascii-art editor itself
2. aecat is utility to display an aewan documents (aewan format saved files)3. aemakeflic – tool to produce an animation from an aewan document
Next I ran it in plain console tty to check how it is like:
hipo@noah:~$ aewan
Below are screenshots to give you an idea how powerful aewan ASCII art editor is:

Aewan immediate entry screen after start up

Aewan ASCII art editor – all of the supported tool functions
As you can see from the shot the editor is very feature rich. I was stunned to find out it even supports layers (in ASCII!!) (w0w!).
It even has a Layers Manager (like GIMP) 🙂
To create my first ASCII art I used the:
New
menu.
This however didn't immediately show the prompt, where I can type the ascii characters to draw my picture. In order to be able to draw inside the editor, its necessary to open at least one layer, through using the menu:
Add Layer (defaults)
then the interactive ASCII art editor appeared.
While an ASCII art is created with the editor you can select the color of the input characters by using Drawing Color menu seen in the above screenshot.

I've played few minutes and created a sample ascii art, just to test the color and editor "look & feel", my conclusions are the editor chars drawing is awesome.

All the commands available via menus are also accessible via a shortcut key combinations:

aewan controls are just great and definitely over-shadows every other text editor I used to draw an ASCII art so far.
Once saved the ASCII art, are by default saved in a plain gzipped ascii text. You can therefore simply zcat the the saves;
Don't expect zcat to show you the ascii as they're displayed in aewan, zcat-ing it will instead display just the stored meta data; the meta data is interpreted and displayed properly only with aecat command.

I've checked online for rpm builds too and such are available, so installing on Fedora, CentOS, SuSE etc. is up to downloading the right distro / hardware architecture rpm package and running:
# rpm -ivh aewan*.rpm
On the official website, there are also instructions to compile from source, Slackware users and users of other distros which doesn't have a package build should compile manually with the usual:
$ tar -zxf aewan-1.0.01.tar.gz
$ cd aewan-1.0.01
$ ./configure
$ make
$ su -c "make install"
For those inrested to make animations with aemakeflic you need to first save a multiple layers of pictures. The idea of creating ASCII art video is pretty much like the old school way to make animation "draw every scene" and movie it. Once all different scene layers of the ASCII art animation are prepared one could use aemakeflic to export all the ASCII layers as common video.
aemakeflic has the ability to export the ASCII animation in a runnable shell script to display the animation. The other way aemakeflic can be used is to produce a picture in kind of text format showing the video whether seen with less cmd.
Making ASCII animation takes a lot of time and effort. Since i'm too lazy and I lack the time I haven't tested this functionality. Anyways I've seen some ascii videos on telnet to remote hosts (some past time); therefore I guess they were made using aewan and later animated with aemakeflic.
I will close this post with a nice colorful ASCII art, made with aewan (picture is taken from the project page):

Tags: aecat, animation, ars, art, art editor, art files, art tools, ascii art, ascii keyword, Auto, BBS, bbs internet, computer geeks, converts, copy, copy and paste, deb, debian linux, debian package, description, documenti, dos days, dpkg, Draft, executable binaries, hipo, keyword description, manipulations, menu, nbsp, new software, noah, open source tools, package, piece, quot, reading database, related tools, revolution, rpm, Search, show, software, support, terminal, terminal applications, text, time, tool, true computer, zcat
Posted in Entertainment, Everyday Life, Various | No Comments »
Thursday, May 17th, 2012
Probably, many don't know that it is possible to view normal graphical pictures (JPG, PNG, GIF, BMP) etc. in plain console tty.
Being able to view pictures in ASCII is something really nice especially for console geeks like me.
The images produced sometimes are a bit unreadable, if compared to the original graphics, but anyways most of the pictures looks pretty decent 🙂
Viewing in console / terminal images on GNU / Linux is possible thanks to a library called libcaca, caca labs libcaca project official website here.
Below is a shot description of libcaca:
hipo@noah:~$ apt-cache show libcaca0|grep 'Description' -A 4
Description: colour ASCII art library
libcaca is the Colour AsCii Art library. It provides high level functions
for colour text drawing, simple primitives for line, polygon and ellipse
drawing, as well as powerful image to text conversion routines.
In Debian, Ubuntu and other deb Linux distros viewing GUI images with no need for Xserver or any kind of window manager in plain ASCII is possible with cacaview.
cacaview is part of a package called caca-utils. caca-utils is providing few other great utilities for ASCII freaks 🙂 along with cacaview console ascii viewer prog.
The package> is available for Debian distributins since many years, so even on a very old Debians like Debian – (Potato, Woody, Sarge) the package is available in default free package repositories ready to install via apt
To install apt-get it as usual:
noah:~# apt-get --yes install caca-utils
Here is a list of the binaries the package provides:
hipo@noah:~$ dpkg -L caca-utils|grep -i /usr/bin/
/usr/bin/cacaserver
/usr/bin/cacaplay
/usr/bin/cacafire
/usr/bin/cacademo
/usr/bin/cacaview
/usr/bin/img2txt
1. cacaserver a tiny program allowing network streaming of applications written in caca
Belkow is a chop, from man cacaserver
cacaserver reads libcaca animation files in its standard input and
serves them as ANSI art on network port 51914. These animations can be
created by any libcaca program by setting the CACA_DRIVER environment
variable to raw and piping the program's standard output to cacaserver.
Clients can then connect to port 51914 using telnet or netcat to see
the output.
The example section of the manual points 1 example use of cacaserver to stream the console output from cacademo.
cacademo binary is a short presentation ASCII DEMO in the spirit of the old school assembly demos (demoscene) .
To run it to bind on port 51914 one has to type in bash shell:
hipo@noah:~$ CACA_DRIVER=raw cacademo | cacaserver
initialised network, listening on port 51914
Then to check out how the demo looks, open telnet connection to the cacaserver host; In my case the cacaserver is binded and streamed over IP 192.168.0.2:
hipo@debian:~$ telnet 192.168.0.2 51914
Immediately you got the demo shining; Below are two screenshots of the demo played after succesful telnet connection:

cacademo running over telnet network connection – Matrix

Blur spots cacademo shot of cacademo streamed via network
You see the demo looks quite awesome 🙂
2. Running cacafire to stream over network
Another possible example use of cacaserver is in conjunction with cacafire libcaca test application:
noah:~# CACA_DRIVER=raw cacafire | cacaserver
initialised network, listening on port 51914
cacafire is a short application written to render ASCII via libcaca and is just displaying a screen with ASCII (moving) burning fire.
It is quite spectacular if you, ask an unexpecting friend to connect to your host to 51914 🙂

Besides that bored sys admins, could run cacafire in console to hypnotize themselves watching dumb the burning fire screen for few hoursor just use it as a screensaver 😉
3. cacaview a program to display a graphic images in console using ASCII art
cacaview takes just one argument – the picture to be displayed.
Below is a screenshot of cacaview ran from my gnome-terminal displaying a ASCII text version of the MySQL server logo
hipo@noah:~$ cd /disk/pictures
hipo@noah:/disk/pictures$ cacaview mysql_logo.png

Whether cacaview is invoked in GUI, the libcaca X support is used, so the text image is visualized in new window with graphics, if however it is invoked in plain let's say tty1 libcaca displays the graphics pictures drawing it with only text characters.
Here is also a screenshot, I've made while viewing a GIF website logo in ASCII in plain tty console:
hipo@noah:~$ cacaview /disk/pictures/logo.gif

The logo is in cyrillic, so for latin speaking people some of the characters in the two words seen will be unreadable 🙂
cacaview even supports viewing, the next and previous picture in line, like in any modern graphics image viewer program.
To view a bunch of graphic pictures in ASCII with cacaview pass it *.*:
hipo@noah:~$ cacaview /disk/pictures/*.*
For simplicity the common unix * is also supported, so I find it quicker to do:
hipo@noah:~$ cacaview /disk/pictures/*
Showing pictures forward and backward (Previous / Next) picture is done with n and p kbd keys, whether;
n - next;
p - previous
cacaview doesn't crash or stop but skip unknown file formats – if for instance encounters filenames which are not images; lets say you have *.rar archive files along with other pictures.
The complete list of keys cacaview supports are:
br />
KEYS
? show the help screen
n, p switch to next image, previous image
Left, Right, Up, Down or h, l, k, j
scroll the image around
+, – zoom in and out
z reset the zoom level to normal
f switch fullscreen mode (hide/show menu and status bars)
d toggle the dithering mode (no dithering, 4×4 ordered dithering, 8×8 ordered dithering and random dithering)
q exit the program
4. Converting graphics images to ASCII art like (plain text pictures)
The tool that does "the trick" is img2txt. img2txt has a bit more options while compared to the rest of the aforementioned tools.The following list of arguments are recognized:
- the size (font, height)
- brightness
- contrast
- gamma and dither
- format type of out the output pic
Anyways I found that the basic just in / out arguments passed are enough to produce pretty good results:
hipo@noah:~$ img2txt hipo_avatar.gif >hipo_avatar_pic.txt
The original hipo_avatar.gif file looks like so:

After above img2txt command is run and hipo_avatar_pic.txt to see the colorful output ASCII art img2txt produces, cat it:
hipo@noah:~$ cat hipo_avatar_pic.txt
The image result if screenshot looks quite beautiful and even, can be considered or used as an ART effect image (filter) 🙂

The picture colors are plain ANSI color, so in order to display properly the picture with colors on another computers or Operating System you will need at least basic support for ANSI colors.
Plenty of output file formats are supported by img2txt
Here is the complete list of supported output formats:
ansi : coloured ANSI
caca : internal libcaca format
utf8 : UTF8 with CR
utf8 : UTF8 with CRLF (MS Windows)
html : HTML with CSS and DIV support
html3 : Pure HTML3 with tables
irc : IRC with ctrl-k codes
bbfr : BBCode (French)
ps : Postscript
svg : Scalable Vector Graphics
tga : Targa Image
libcaca is available for FreeBSD too, but the caca-utils is not available as a port yet, though probably the deb or rpm packages can easily be ported to BSD.
Well that's all, Enjoy.
Tags: animation files, art, ascii art library, Auto, caca, colour, colour text, connection, conversion routines, demo, description, Disk, dpkg, Draft, ellipse, gnu linux, graphics utilities, gui images, hipo, host, JPG, level, level functions, libcaca, linux distros, nbsp, noah, original graphics, package, plain ascii, png, polygon, primitives, screen, screenshot, shot, shot description, show, something, support, terminal, text, text conversion, text mode, tiny program, xserver
Posted in Everyday Life, Linux, System Administration, Various | 1 Comment »
Wednesday, April 25th, 2012Debian has a package language-env. I haven't used my Linux console for a long time. So I couldn't exactly remember how I used to be making the Linux console to support cyrillic language (CP1251, bg_BG.UTF-8) etc.
I've figured out for the language-env existence in Debian Book on hosted on OpenFMI – Bulgarian Faculty of Mathematics and Informatics website.
The package info with apt-cache show displays like that:
hipo@noah:~/Desktop$ apt-cache show language-env|grep -i -A 3 description
Description: simple configuration tool for native language environment
This tool adds basic settings for natural language environment such as
LANG variable, font specifications, input methods, and so on into
user's several dot-files such as .bashrc and .emacs.
What is really strange, is the package maintainer is not Bulgarian, Russian or Ukrainian but Japanese.
As you see the developer is weirdly not Bulgarian but Japanese Kenshi Muto. What is even more interesting is that it is another japanese that has actually written the script set-language-env contained within the package. Checking the script in the header one can see him, Tomohiro KUBOTA
Before I've found about the language-env existence, I knew I needed to have the respective locales installed on the system with:
# dpkg-reconfigure locales
So I run dpkg-reconfigure to check I have existing the locales for adding the Bulgarian language support.
Checking if the bulgarian locale is installed is also possible with /bin/ls:
# ls -al /usr/share/i18n/locales/*|grep -i bg
-rw-r--r-- 1 root root 8614 Feb 12 21:10 /usr/share/i18n/locales/bg_BG
The language-env contains a perl script called set-language-env which is doing the actual Debian Bulgarization / cyrillization. The set-language-env author is another Japanese and again not Slavonic person.
Actually set-language-env script is not doing the Bulgariazation but is a wrapper script that uses a number of "hacks" to make the console support cyrillic.
Further on to make the console support cyrillic, execute:
hipo@noah:~$ set-language-env
Setting up users' native language environment
by modifying their dot-files.
Type "set-language-env -h" for help.
1 : be (Bielaruskaja,Belarusian)
2 : bg (Bulgarian)
3 : ca (Catala,Catalan)
4 : da (Dansk,Danish)
5 : de (Deutsch,German)
6 : es (Espanol,Spanish)
7 : fr (Francais,French)
8 : ja (Nihongo,Japanese)
9 : ko (Hangul,Korean)
10 : lt (Lietuviu,Lithuanian)
11 : mk (Makedonski,Macedonian)
12 : pl (Polski,Polish)
13 : ru (Russkii,Russian)
14 : sr (Srpski,Serbian)
15 : th (Thai)
16 : tr (Turkce,Turkish)
17 : uk (Ukrajins'ka,Ukrainian)
Input number > 2
There are many questions in cyrillic list necessery to be answered to exactly define if you need cyrillic language support for GNOME, pine, mutt, console etcetera.
The script will create or append commands to a number of files on the system like ~/.bash_profile
The script uses the cyr command part of the Debian console-cyrillic package for the actual Bulgarian Linux localization.
As said it was supposed to also do a localization in the past of many Graphical environment programs, as well as include Bulgarian support for GNOME desktop environment. Since GNOME nowdays is already almost completely translated through its native language files, its preferrable that localization to be done on Linux install time by selecting a country language instead of later doing it with set-language-env. If you failed to set the GNOME language during Linux install, then using set-language-env will still work. I've tested it and even though a lot of time passed since set-language-env was heavily used for bulgarization still the GUI env bulgarization works.
If set-language-env is run in gnome-terminal the result, the whole set of question dialogs will pop-up in new xterm and due to a bug, questions imposed will be unreadable as you can see in below screenshot:

If you want to remove the bulgarization, later at certain point, lets you don't want to have the cyrillic console or programs support use:
# set-language-env -r
Setting up users native language environment'
For anyone who wish to know more in depth, how set-language-env works check the README files in /usr/share/doc/language-env/ one readme written by the author of the Bulgarian localization part of the package Anton Zinoviev is /usr/share/doc/language-env/README.be-bg-mk-sr-uk
Tags: Auto, bashrc, bulgarian language, configuration tool, consol, debian gnu, description, description description, Desktop, dot files, Draft, existence, Faculty, font, font specifications, Gnome, hipo, info, Informatics, input methods, language support, localization, muto, native language, natural language environment, noah, OpenFMI, package, package maintainer, perl script, quot, root, root root, Russian, russian language, set language, show, show displays, support, time, Tomohiro, tool, UTF, utf 8, wrapper script
Posted in System Administration | 4 Comments »
Friday, April 13th, 20121. Dump all installed server packages from Debian Linux server1
First it is necessery to dump a list of all installed packages on the server from which the intalled deb packages 'selection' will be replicated.
debian-server1:~# dpkg --get-selections \* > packages.txt
The format of the produced packages.txt file will have only two columns, in column1 there will be the package (name) installed and in column 2, the status of the package e.g.: install or deinstall
Note that you can only use the –get-selections as root superuser, trying to run it with non-privileged user I got:
hipo@server1:~$ dpkg --set-selections > packages.txt
dpkg: operation requires read/write access to dpkg status area
2. Copy packages.txt file containing the installed deb packages from server1 to server2
There is many way to copy the packages.txt package description file, one can use ftp, sftp, scp, rsync … lftp or even copy it via wget if placed in some Apache directory on server1.
A quick and convenient way to copy the file from Debian server1 to server2 is with scp as it can also be used easily for an automated script to do the packages.txt file copying (if for instance you have to implement package cloning on multiple Debian Linux servers).
root@debian-server1:~# scp ./packages.txt hipo@server-hostname2:~/packages.txt
The authenticity of host '83.170.97.153 (83.170.97.153)' can't be established. RSA key fingerprint is 38:da:2a:79:ad:38:5b:64:9e:8b:b4:81:09:cd:94:d4. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '83.170.97.153' (RSA) to the list of known hosts. hipo@83.170.97.153's password:
packages.txt
As this is the first time I make connection to server2 from server1, I'm prompted to accept the host RSA unique fingerprint.
3. Install the copied selection from server1 on server2 with apt-get or dselect
debian-server2:/home/hipo# apt-get update
...
debian-server2:/home/hipo# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
debian-server2:/home/hipo# dpkg --set-selections < packages.txt
debian-server2:/home/hipo# apt-get -u dselect-upgrade --yes
The first apt-get update command assures the server will have the latest version of the packages currently installed, this will save you from running an outdated versions of the installed packages on debian-server2
Bear in mind that using apt-get sometimes, might create dependency issues. This is depending on the exact package names, being replicated in between the servers
Therefore it is better to use another approach with bash for loop to "replicate" installed packages between two servers, like so:
debian-server2:/home/hipo# for i in $(cat packages.txt |awk '{ print $1 }'); do aptitude install $i; done
If you want to automate the questioning about aptitude operations pass on the -y
debian-server2:/home/hipo# for i in $(cat packages.txt |awk '{ print $1 }'); do aptitude -y install $i; done
Be cautious if the -y is passed as sometimes some packages might be removed from the server to resolve dependency issues, if you need this packages you will have to again install them manually.
4. Mirroring package selection from server1 to server2 using one liner
A quick one liner, that does replicate a set of preselected packages from server1 to server2 is also possible with either a combination of apt, ssh, awk and dpkg or with ssh + dpkg + dselect :
a) One-liner code with apt-get unifying the installed packages between 2 or more servers
debian-server2:~# apt-get --yes install `ssh root@debian-server1 "dpkg -l | grep -E ^ii" | awk '{print $2}'`
...
If it is necessery to install on more than just debian-server2, copy paste the above code to all servers you want to have identical installed packages as with debian-server1 or use a shor for loop to run the commands for each and every host of multiple servers group.
In some cases it might be better to use dselect instead as in some situations using apt-get might not correctly solve the package dependencies, if encountering problems with dependencies better run:
debian-server2:/home/hipo# ssh root@debian-server1 'dpkg --get-selections' | dpkg --set-selections && dselect install
As you can see using this second dselect installed "package" mirroring is also way easier to read and understand than the prior "cryptic" method with apt-get, hence I personally think using dselect method is a better.
Well that's basically it. If you need to synchronize also configurations, either an rsync/scp shell script, should be used with all defined server1 config files or in case if a cloning of packages between identical server machines is necessery dd or some other tool like Norton Ghost could be used.
Hope this helps, someone.
Tags: apache, aptitude, authenticity, b4, clone, cloning, copying, deb packages, debian linux, deinstall, dependency, description, dpkg, dump, file, fingerprint, hosts, instance, lftp, Linux, linux servers, Mirroring, necessery, operation, package, package description, Permanently, privileged user, quot, root, rsync, scp, server packages, server1, server2, sftp, ssh, wget
Posted in Linux, System Administration | No Comments »
Tuesday, April 3rd, 2012One of the companies, where I'm doing a part time job, as an IT Consultant, System Administrator and Web developer, a e-marketing specialist and business consultant (the list goes on ;)) … planned to integrate a Newsletter support in their WordPress based websites.
As this fits my "job description" ,I took the task and implemented a simple but functional Newsletter support to their 4 WP based sites. In this article I will in short describe, my experience with placing the Newsletter subscription.:
Earlier I've done something similar as, I've added a subscipriotion (form) box to WordPress to use Google Feedburner RSS . What I needed this time, however was a bit different. The company required the newsletter to be a separate one and don't relay on Google Feedburner (RSS) to deal with the subscriptions .
It took me a while until I came with a working version of a Newsletter and I actually tested all in all 4 newsletter wordpress plugins before, I had a well working one. Here in short, In this article I will shortly take a look at the 4 WP newsletter plugins:
1. A wordpress plugin called simply Newsletter
As of time of writting this is the most popular wordpress plugin, when I looked through:
- http://wordpress.org/extend/plugins/
Wordpress Newsletter plugin can be obtained via http://wordpress.org/extend/plugins/newsletter/
Its really Advanced, probably the best free newsletter for WP available as of time of writting. The plugin supports email subscriber user confirmation (double opt-in), as well as can be accustomized to work with single opt-in.
For all those who don't know Double Opt-In is the technical term for a once requested user email (single opt-in), for subscription which is later confirmed by following an email box sent link pointing to confirmation URL.
Double Opt-In is almost a standard and "must" as otherwise, many spam bots will fill in randomly email addresses and your subscribers list will be mostly containing spammer email addresses.
1. Install WordPress Newsletter Plugin To install Newsletter plugin;
a) download and put into wp-content/plugins/ and unzip
server:~# cd /var/www/blog/wp-content/plugins
server:/var/www/blog/wp-content/plugins# wget -q http://downloads.wordpress.org/plugin/newsletter.zip
server:/var/www/blog/wp-content/plugins# unzip newsletter.zip
b) Enable in Plugins:
Plugins -> Newsletter (Activate)
c) Configure Newsletter
A new menu will appear in the left WP control panel, like you see in below screenshot:

Newsletter plugin is very configurable but it takes a bit of longer time until it is confingured to work well. So be patient with it.
d) Make Newsletter field appear on a wordpress home page.
In order to enable just configure Newsletter plugin (text and subscription form) to appear on the wordpress pages, you need to add the plugin as a widget. To do so go to:
Appearance -> Widgets

Drag and drop the Newsletter plugin widget to the widget right pane. Put it on the exact place you would like it to appear.
Once the widget is placed, you will see it appear to the respective location on WP pages, you should have something like:

If while you enable the plugin and put the Newsletter widget doesn't appear on WordPress, this is probably due to some Cache left from some enabled WP caching pugin like W3 Total Cache
In any case if Newsletter form subscription, is not appearing on your pages, delete the cache/ directory:
# rm -rf /var/www/wordpress-site/wp-content/cache/
I've experienced, this caching problems and it was quite a riddle, until I found out that the Newsletter plugin is not appearing on the WP pages because of the old cache. I've checked bacicly everything (error.log , apache php_error.log) etc.. Therein, there was no error or anything, so after a long 1 hour or so poundering I figured out this kind of caching done by W3 Cache.
My guess is, the same newsletter "not working" issue is probably observable also on WP installs with other caching plugins like WP Hyper Cache or WP Db Cache
2. ALO EasyMail Newsletter WordPress plugin
I don't know, why but this plugin didn't work properly on the wordpress install, I've tested it. Its true the wordpress version where I give it a try was not running, the latest stable wordpress so I assume this might be the reason for the empty pages returned when I enabled the plugin.
According to wordpress's plugin – http://wordpress.org/extend/plugins/alo-easymail/, the plugin is marked as Works, however in my case it didn't.
3. Adding WordPress Newsletter through Email newsletter
This plugin was a real piece of cake, compared to all of the rest, tested this one was the easiest one to install and configure on WordPress.
Just like with Newsletter and ALO EasyMail Newsletter once the user is subscribed, from the admin there is possibility to sent crafted messages to all subscribers.
The plugin is a great, choice for anyone who is looking for quick install of Newsletter on WordPress without extra "config" complications.
Below is a quote describing email newsletter, taken from the plugin author webpage;
Advantage of this plugin
- Simple no coding required.
- Easy installation .
- Using this plug-in we can send email to all registered folks.
- Using this plug-in we can send email to all comment posted folks.
- Email subscribe box for front end
- Check box option available to select/unselect emails from the send mail list.
- Integrated the email newsletter plugin & simple contact form plugin
– Enabling the plugin is done via admin menus:
Plugins -> Inactive -> Email Newsletter (enable)
Afterwards, the plugin requires a quick configuration from wp-admin:
Email Newsletter -> Subscriber form setting

You see in the screenshot, the config where to place the plugin is trivial.
To make Email Newsletter appear on the pages, you will have to add the Email Newsletter widget from:
Appearance -> Widgets
The widget looks like the one in below screenshot:

Drag and drop the widget to the widgets pane. Onwards on the wordpress pages, should appear an email subsciption box:

Though Email Newsletter is great, it has one serious drawback, as it doesn't support Double Opt-In. Therefore people subscribing through it are not mailed with a request to confirm their email subscription request.
As a result, its very likely many spam-bots submit fake emails in the newsletter subscribe form and in 1 year time your newsletter email list might get full with tens of thousands unexistent emails. If you end up with this bad scenario, once newsletter emails are sent to (regular) exitent subscribers, many of the bulk emails in the list will never reach their senders, but will just fill-up the mail server queue and take up server resources for nothing for one week or so (depending on the email configuration keep undelivered mail setting).
Anyways, since the basis of this plugin works fine, I'm sure if the author modifies it to include a simple Captcha instead of double-opt functionality, the plugin can become top plugin.
Tags: administrator, ALO, Auto, bit, blog, business consultant, Cache, confirmation, confirmation url, description, download, Draft, e mail, email addresses, Feedburner, form, free newsletter, google, Install, job, job description, mail newsletter, marketing, newsletter, newsletter subscription, newsletter support, NewsletterAs, Opt, part time job, plugin, Plugins, quot, relay, something, spammer, specialist, subscriber, subscribers, subscriptions, support, system administrator, time, web developer, Wordpress, wp newsletter, writting
Posted in System Administration, Web and CMS, Wordpress | 3 Comments »
Tuesday, March 27th, 2012
I've earlier wrote an article How to find which processes are causing hard disk i/o overhead on Linux there I explained very rawly few tools which can be used to benchmark hard disk read / write operations. My prior article accent was on iotop and dstat and it just mentioned of iostat. Therefore I've wrote this short article in attempt to explain a bit more thoroughfully on how iostat can be used to track problems with excessive server I/O read/writes.
Here is the command man page description;
iostat – Report Central Processing Unit (CPU) statistics and input/output statistics for devices, partitions and network filesystems
I will further proceed with few words on how iostat can be installed on various Linux distros, then point at few most common scenarious of use and a short explanation on the meaning of each of the command outputs.
1. Installing iostat on Linux
iostat is a swiss army knife of finding a server hard disk bottlenecks. Though it is a must have tool in the admin outfut, most of Linux distributions will not have iostat installed by default.
To have it on your server, you will need to install sysstat package:
a) On Debian / Ubuntu and other Debian GNU / Linux derivatives to install sysstat:
debian:~# apt-get --yes install sysstat
b) On Fedora, CentOS, RHEL etc. install is with yum:
[root@centos ~]# yum -y install sysstat
c) On Slackware Linux sysstat package which contains iostat is installed by default.
d) In FreeBSD, there is no need for installation of any external package as iostat is part of the BSD world (bundle commands).
I should mention bsd iostat and Linux's iostat commands are not the same and hence there use to track down hard disk bottlenecks differs a bit, however the general logic of use is very similar as with most tools in BSD and Linux.
2. Checking a server hard disk for i/o disk bottlenecks on G* / Linux
Once having the sysstat installed on G* / Linux systems, the iostat command will be added in /usr/bin/iostat
a) To check what is the hard disk read writes per second (in megabytes) use:
debian:~# /usr/bin/iostat -m
Linux 2.6.32-5-amd64 (debian) 03/27/2012 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
15.34 0.36 2.76 2.66 0.00 78.88
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 63.89 0.48 8.20 6730223 115541235
sdb 64.12 0.44 8.23 6244683 116039483
md0 2118.70 0.22 8.19 3041643 115528074
In the above output the server, where I issue the command is using sda and sdb configured in software RAID 1 array visible in the output as (md0)
The output of iostat should already be easily to read, for anyone who didn't used the tool here is a few lines explanation of the columns:
The %user 15.34 meaning is that 15.34 out of 100% possible i/o load is generad by system level read/write operations.
%nice – >Show the percentage of CPU utilization that occurred while executing at the user level with nice priority.
%iowait – just like the top command idle it shows the idle time when the system didn't have an outstanding disk I/O requests.
%steal – show percentage in time spent in time wait of CPU or virtual CPUs to service another virtual processor (high numbers of disk is sure sign for i/o problem).
%idle – almost the same as meaning to %iowait
tps – HDD transactions per second
MB_read/s (column) – shows the actual Disk reads in Mbytes at the time of issuing iostat
MB_wrtn/s – displays the writes p/s at the time of iostat invocation
MB_read – shows the hard disk read operations in megabytes, since the server boot 'till moment of invocation of iostat
MB_wrtn – gives the number of Megabytes written on HDD since the last server boot filesystem mount
The reason why the Read / Write values for sda and sdb are similar in this example output is because my disks are configured in software RAID1 (mirror)
The above iostat output reveals in my specific case the server is experiencing mostly Disk writes (observable in the high MB_wrtn/s 8.19 md0 in the above sample output).
It also reveals, the I/O reads experienced on that server hard disk are mostly generated as a system (user level load) – see (%user 15.34 and md0 2118.70).
For all those not familiar with system also called user / level load, this is all kind of load which is generated by running programs on the server – (any kind of load not generated by the Linux kernel or loaded kernel modules).
b) To periodically keep an eye on HDD i/o operations with iostat, there are two ways:
– Use watch in conjunction with iostat;
[root@centos ~]# watch "/usr/bin/iostat -m"
Every 2.0s: iostat -m Tue Mar 27 11:00:30 2012
Linux 2.6.32-5-amd64 (centos) 03/27/2012 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
15.34 0.36 2.76 2.66 0.00 78.88
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 63.89 0.48 8.20 6730255 115574152
sdb 64.12 0.44 8.23 6244718 116072400
md0 2118.94 0.22 8.20 3041710 115560990
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 55.00 0.01 25.75 0 51
sdb 52.50 0.00 24.75 0 49
md0 34661.00 0.01 135.38 0 270
Even though watch use and -d might appear like identical, they're not watch does refresh the screen, executing instruction similar to the clear command which clears screen on every 2 seconds, so the output looks like the top command refresh, while passing the -d 2 will output the iostat command output on every 2 secs in a row so all the data is visualized on the screen. Hence -d 2 in cases, where more thorough debug is necessery is better. However for a quick routine view watch + iostat is great too.
c) Outputting extra information for HDD input/output operations;
root@debian:~# iostat -x
Linux 2.6.32-5-amd64 (debian) 03/27/2012 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
15.34 0.36 2.76 2.66 0.00 78.88
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 4.22 2047.33 12.01 51.88 977.44 16785.96 278.03 0.28 4.35 3.87 24.72
sdb 3.80 2047.61 11.97 52.15 906.93 16858.32 277.05 0.03 5.25 3.87 24.84
md0 0.00 0.00 20.72 2098.28 441.75 16784.05 8.13 0.00 0.00 0.00 0.00
This command will output extended useful Hard Disk info like;
r/s – number of read requests issued per second
w/s – number of write requests issued per second
rsec/s – numbers of sector reads per second
b>wsec/s – number of sectors wrote per second
etc. etc.
Most of ppl will never need to use this, but it is good to know it exists.
3. Tracking read / write (i/o) hard disk bottlenecks on FreeBSD
BSD's iostat is a bit different in terms of output and arguments.
a) Here is most basic use:
freebsd# /usr/sbin/iostat
tty ad0 cpu
tin tout KB/t tps MB/s us ni sy in id
1 561 45.18 44 1.95 14 0 5 0 82
b) Periodic watch of hdd i/o operations;
freebsd# iostat -c 10
tty ad0 cpu
tin tout KB/t tps MB/s us ni sy in id
1 562 45.19 44 1.95 14 0 5 0 82
0 307 51.96 113 5.73 44 0 24 0 32
0 234 58.12 98 5.56 16 0 7 0 77
0 43 0.00 0 0.00 1 0 0 0 99
0 485 0.00 0 0.00 2 0 0 0 98
0 43 0.00 0 0.00 0 0 1 0 99
0 43 0.00 0 0.00 0 0 0 0 100
...
As you see in the output, there is information like in the columns tty, tin, tout which is a bit hard to comprehend.
Thanksfully the tool has an option to print out only more essential i/o information:
freebsd# iostat -d -c 10
ad0
KB/t tps MB/s
45.19 44 1.95
58.12 97 5.52
54.81 108 5.78
0.00 0 0.00
0.00 0 0.00
0.00 0 0.00
20.48 25 0.50
The output info is quite self-explanatory.
Displaying a number of iostat values for hard disk reads can be also achieved by omitting -c option with:
freebsd# iostat -d 1 10
...
Tracking a specific hard disk partiotion with iostat is done with:
freebsd# iostat -n /dev/ad0s1a
tty cpu
tin tout us ni sy in id
1 577 14 0 5 0 81
c) Getting Hard disk read/write information with gstat
gstat is a FreeBSD tool to print statistics for GEOM disks. Its default behaviour is to refresh the screen in a similar fashion like top command, so its great for people who would like to periodically check all attached system hard disk and storage devices:
freebsd# gstat
dT: 1.002s w: 1.000s
L(q) ops/s r/s kBps ms/r w/s kBps ms/w %busy Name
0 10 0 0 0.0 10 260 2.6 15.6| ad0
0 10 0 0 0.0 10 260 2.6 11.4| ad0s1
0 10 0 0 0.0 10 260 2.8 12.5| ad0s1a
0 0 0 0 0.0 0 0 0.0 20.0| ad0s1b
0 0 0 0 0.0 0 0 0.0 0.0| ad0s1c
0 0 0 0 0.0 0 0 0.0 0.0| ad0s1d
0 0 0 0 0.0 0 0 0.0 0.0| ad0s1e
0 0 0 0 0.0 0 0 0.0 0.0| acd0
It even has colors if your tty supports colors 🙂
Another useful tool in debugging the culprit of excessive hdd I/O operations is procstat command:
Here is a sample procstat run to track (httpd) one of my processes imposing i/o hdd load:
freebsd# procstat -f 50404
PID COMM FD T V FLAGS REF OFFSET PRO NAME
50404 httpd cwd v d -------- - - - /
50404 httpd root v d -------- - - - /
50404 httpd 0 v c r------- 56 0 - -
50404 httpd 1 v c -w------ 56 0 - -
50404 httpd 2 v r -wa----- 56 75581 - /var/log/httpd-error.log
50404 httpd 3 s - rw------ 105 0 TCP ::.80 ::.0
50404 httpd 4 p - rw---n-- 56 0 - -
50404 httpd 5 p - rw------ 56 0 - -
50404 httpd 6 v r -wa----- 56 25161132 - /var/log/httpd-access.log
50404 httpd 7 v r rw------ 56 0 - /tmp/apr8QUOUW
50404 httpd 8 v r -w------ 56 0 - /var/run/accept.lock.49588
50404 httpd 9 v r -w------ 1 0 - /var/run/accept.lock.49588
50404 httpd 10 v r -w------ 1 0 - /tmp/apr8QUOUW
50404 httpd 11 ? - -------- 2 0 - -
Btw fstat is sometimes helpful in identifying the number of open files and trying to estimate which ones are putting the hdd load.
Hope this info helps someone. If you know better ways to track hdd excessive loads on Linux / BSD pls share 'em pls.
Tags: Auto, benchmark hard disk, bottleneck, BSD, bsd world, central processing unit, central processing unit cpu, cke, command man, command outputs, debian gnu, description, Disk, Draft, explanation, few words, filesystemsI, gnu linux, hard server, hdd, images hard disk, img src, info, input output, invocation, iostat, iostat commands, iowait, Knife, level, linux distributions, linux systems, man page, megabytes, network filesystems, operations lt, option, outfut, output statistics, overhead, package, page, page description, priority, processor, quot, quot quot, reason, refresh, root, rsec, screen, sda, sdb, second, server bottlenecks, show, software, swiss army knife, sysstat, time, tin, tool, wait, yum
Posted in FreeBSD, Linux, System Administration | 1 Comment »
Thursday, January 12th, 2012
Christmas has just passed away. As a Christian I was curious what is the reason in so many Christian countries, we decorate Pine trees and I did a quick research on the topic. In this small article, I'll present my findings.
Observing the Christmas Pine Tree tradition has been quite ancient and probably according to many sources dates back to the XIIth century.
The first written records of a Christmas tree are of an anonymous Frenchman who visited Strasbourg, Germany in 1601. His description of the decoratd pine tree says like "wafers and golden sugar-twists (Barley sugar), roses cut out of many-colored paper, apples, gold foil and sweets."
Later in the 1800s, the local German Christmas pine tree tradition was spread across America by German emmigrants.
In UK the Pine tree decorating tradition appeard in 1841, where a royalty (Prince Albert) decorated his castle (Winston Castle).
A little later after the Queen Victoria adopted the pine tree, United Kingdom citizens started to decorate pine trees for themselves, folliwng the highly regarded Queen.
Usually the pine tree has historically been decorated with gifts as well as an Bright star is put atop.
One of the Christian interpretations for the Christmas tree is that it represents the same Cross (tree) on which Christ was crucifixed. Then after Christ's resurrection because of (or through that) tree, the humanity received the Lord big spiritual blessings. These blessings are represented by the gifts decorated on the Fir tree. The pine tree itself is in Christianity a reference for the symbol of Salvation that we received came from the Holy Cross, where our saviour was crucified.
The Fir is decorated with lights to represent the joy and the lights of Christmas (that burns in our hearts), the star atop the tree is a reminder of the Star that rised in the East during the night of Christ's birth as we read in the gospels.

Decorating Pine trees is commonly observed mostly in Roman Catholic Church and often followed by some protestant denominations and less used in Orthodox Church (though this is changing nowdays).
In Eastern Europe, the Christmas tree appeared quite
late and the whole concept was unknown in the Orthodox Christian countries, just until the end of the 19th century.
With the recent severe globalization the pine tree was silenty adopted in almost all parts of the world, including even communist countries and even sometimes in muslim ones.

Unfortunately, the relation between the Fir tree and our Christian faith is little known today and with the years to come it will be less and less associated with Christianity.
Here are few interesting legends which I found explaining, some of the possible roots of the Christmas tree decoration:

1. Legend of the Pine Tree Saving the Holy Family
When the Holy family was pursued by Herod's soldiers, many plants offered to provide them with shelter.
One such plant was the Pine tree. With Mary too weary to travel any longer, the family stopped at the edge of a forest to rest.
A gnarled old Pine which had grown hollow with the years invited them to rest within its trunk.
Then, it closed its branches down upon them, keeping the family safe until the soldiers had passed.
Upon leaving, the Christ Child blessed the Pine and the imprint of his tiny hand was left forever in the tree's fruit… the Pine cone.
If a cone is cut lengthwise, the hand may still be seen.
2. Pine tree and Easter Legend

There is a legend that pine trees "know" when it's Easter.
The pine trees start their new growth in the weeks before Easter.
If you look at the tops of the pine trees two weeks before Easter you'll see the yellow shoots.
As the days get closer to Easter Sunday, the tallest shoot will branch off and form a cross.
By the time Easter Sunday comes around, you will see that most of the pine trees will have small yellow crosses on all of the tallest shoots.
This really happens we live where there are lots of pines,
and each year this actually happens, it is amazing to watch,
and the process of the new growth appears as crosses on the ends
of each branch.
I've not personally observed that, but according to people who live in pine tree forest areas this is a fact.
3. Legend about M. Luther and the Pine tree
Martin Luther, founder of the Protestant religion, was taking a stroll through the woods late one night.
The sky was clear and many stars were shining through the branches of the trees,
giving the impression of twinkling lights.
Luther was so captivated and inspired by the beautiful brilliance of the sight
that he cut down a small evergreen and brought it home.
He recreated the stars by placing candles upon the tree's branches to imitate
their radiance and presented it to his children.
This story explains why, the pine tree become so wide spread initially in the "western world", as it gives some connection between the Pine tree and Protestant Christianity.
4. The Children Legend of the Fir Tree (Kids Story)
On the night of the Christ Child's birth, all living creatures, both flora and fauna, traveled to Bethlehem bearing gifts.
The Olive tree, for example, brought its fruit and the Palm tree its dates.
But the little Fir tree had no gift and was so tired that it was unable to resist when the larger trees pushed it into the background and hid it from view.
But then, a nearby Angel took pity and commanded a cluster of stars to descend and rest upon its delicate boughs.
When the Baby Jesus beheld this lovely lighted tree, he smiled and blessed it,
declaring henceforth that Fir trees should always be filled with lights at
Christmastime to please little children.
When Christianity first came to Northern Europe, three personages representing
virtues were dispatched from Heaven to place lights on the original Christmas tree.
These personages were Faith, Hope and Charity.
Their search was long, since they were required to find a tree as high as hope, as great as love and as sweet as charity.
In addition, the tree had to bear the sign of the cross on every bough.
Their search finally ended in the forests of the North where they found the Fir.
Lit by the radiance of the stars, it became the first Christmas tree.
The triangular design of the Fir has also been usedto describe the Holy Trinity of God the Father, The Son and The Holy Spirit.
Eventually, converts began to revere the Fir as God's Tree…as they had once revered the Oak.
By the Twelfth Century it was being hung, upside-down, from ceilings at Christmastime
in Central Europe, as a symbol of Christianity.
5. The Paradise Tree Legend
A very old and delightful European custom centers around decorating a Fir tree with apples and small white wafers which represents the Holy Eucharist.
These wafers were later replaced by small pieces of pastry cut into the shapes of stars, angels, hearts, flowers and bells.
Eventually additional pastries were introduced bearing the shapes of men, birds, roosters and other animals.
During the middle Ages, around the Eleventh century, religious theater was born.
One of the most popular plays …
The German mystery play concerned Adam and Eve and their fall and expulsion from the Garden of Eden, represented by a Fir tree hung with apples.
This tree was symbolic of both the Tree of Life and the Tree of Discernment of Good and Evil, which stood in the center of Paradise.
The play ended with the prophecy of a coming Saviour. For this reason, it was often enacted during Advent.
The one piece of scenery, the "Paradeisbaum" or "Paradise Tree" become a popular object and was often set up in churches.
Eventually it also found its way in private homes and became symbol of the Saviour.
Since the tree was representative not only to Paradise and the fall of man, but also the premise of salvation.
It was hung not merely with apples, but with bread of wafers (Holy Eucharist) and often sweet to represent the sweetness of redemption.
In some areas of Bavaria, fir branches and little trees decorated with lights, apples and tinsel are still called "Paradeis".
According to some other Christian legends, it was a Fir tree that grew as the Tree of Life in the Garden of Eden.
When Eve plucked its fruit, the foliage and flowers shrank to nothing but needles.
Only on the night of Nativity would the Fir tree bloom again a moment marked perhaps by the Christmas tree we Christians use.
Of course these are just legends and as with every legend there is plenty of romantism included.
Nevertheless I consider most legends similar to proverbs contain deep truth and contain truthful facts. Moreover knowing the legends of our forefathers connect us to who and what we are and from antropological point of view is precious knowledge, we should try to sustain and spread to our children.
Tags: Auto, birth, Bright, Catholic, center, Child, Christ, christian countries, christian interpretations, christmas christmas, christmas pine, christmas time, christmas trees, city, Cross, custom, Customs, Decorating, description, Draft, East, emmigrants, fir point, fir tree, foil, forest, german christmas, gold foil, height, Herod, hill, img, imprint, kingdom citizens, legend of the christmas tree, Lord, muslim, nbsp, pine trees, prince albert, protestant, queen victoria, quot, radiance, reason, resurrection, rised, Roman, roman catholic church, Salvation, saviour, Search, shelter, spiritual, spiritual blessings, story, sugar roses, symbol, symbol of salvation, time, topic, tree, tree tradition, XIIth, xiith century
Posted in Christianity, Everyday Life, Various | 1 Comment »