watch runs a command and keeps its output on screen updating it ever X seconds and, optionally, highlighting the differences on the output between executions. It’s an easy way to monitor the output of some command without having to spend several minutes pressing “cursor up - enter”. :-)
watch -n 1 "ps aux | grep apache"
Si te ha interesado, ¿me invitas a una cerveza? / If you liked the post, would you buy me a beer?
One thing I always missed in WordPress is the ability to select the size of the thumbnail that’s generated every time you upload a picture to your blog. The default size is quite small, sometimes you may want it, for example, to be as wide as the page, without needing to scale the original pic down in HTML with width=”xx”.
I’ve found today the imagesControlSize plugin by aNieto2k, that allows you to select the thumbnail’s width when uploading an image (the height is calculated automatically, maintaining the aspect ratio). Works great.
Some days ago, a representative of Redfone Communications got in touch with me because of a HOWTO I wrote some months ago about building Asteirsk clusters with the fonebridge2: they liked it and wanted me to write a Case Study about the cluster I built at my previous job.
The Case Study has just been published and is available here:
At work I have a Dell laptop with a Broadcom BCM94311MCG wireless card:
# lspci
...
0b:00.0 Network controller: Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 01)
...
# lspci -n
...
0b:00.0 0280: 14e4:4311 (rev 01)
...
The drivers that Ubuntu installs by default were giving me lots of headaches depending on the network’s access point: on some of them the card worked OK; on some others I kept loosing the connection every few minutes, or I couldn’t connect at all. I never found out if the problem was the encryption algorithm in use, or the wifi a/b/g/whatever protocol. Bottom line is the driver worked on some networks but didn’t on some others.
A co-worker told me he had the same problem until he switched to the ndiswrapper driver, so reluctantly I tried it. It work great. :)
More info here:
You can work with substrings in bash using the following syntax:
${VARIABLE:START:LENGTH}
Like in:
$ A=abcdefghi
$ echo ${A:3:2}
de

Cluster SSH (cssh) is one of mankind’s greatest achievements. Really. Or at least, from a sysadmin point of view. :-) It’s one of those programs that, once you know it and start using it, you wonder how were you able to survive all those dark years without it.
cssh takes a username and several IP addresses on the command line, and opens a SSH session against each of those servers on an independent xterm window. Then, you can click on any of these windows and work independently with that particular server, or go back to the cssh console and write there, and ssh will retransmit each keypress to every SSH session.
This is a very useful tool when working with server farms, clusters, etc. For example lately I’ve been doing some monitoring and maintenance tasks on a 32-server farm on a major ISP: one by one each config modification would have take hours, with cssh it is a matter of minutes. :) Besides, as it replicates every keypress, it even works with text editors like vi: you can edit a file on every server at the same time, navigate through it, modify it… in parallel on every server. You have to be very careful when doing this, though. ;)
Si te ha interesado, ¿me invitas a una cerveza? / If you liked the post, would you buy me a beer?
A one-liner function that, when piped with the output of another command, prepends each line of that command’s output with a timestamp.
Very useful with commands that output a series of lines periodically but without a timestamp (like vmstat), so that you can’t just send their output to a file and go back to it later without a timeframe.
$ function timestamp { while read l; do d=`date +%H:%M:%S`; echo -e "$d $l"; done; }
$ vmstat 1 | timestamp
12:17:03 procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
12:17:03 r b swpd free buff cache si so bi bo in cs us sy id wa
12:17:03 1 0 4 16740 42816 395164 0 0 6 5 174 11 3 1 96 0
12:17:04 0 0 4 16656 42816 395184 0 0 0 0 393 510 1 1 98 0
12:17:05 0 0 4 16656 42816 395184 0 0 0 0 391 781 2 1 98 0
12:17:06 1 0 4 16656 42824 395176 0 0 0 84 462 976 3 1 95 0
12:17:07 0 0 4 16656 42824 395184 0 0 0 0 433 1545 11 3 86 0
12:17:08 0 0 4 16656 42824 395184 0 0 0 0 356 807 1 2 97 0
I’m almost ashamed to admit I didn’t knew of this command until very recently. :-)
Everybody knows the kill command, and almost everybody knows killall too (like kill using the process’ name instead of its PID). The problem with killall is that it only signals the processes matching the exact name you specify, and sometimes you want to work over a series of related processes that begin with the same word, or have a given word on their command line. pkill does just that:
pkill -9 -f foo
As a side note, what I used before when I wanted to do this was:
kill $SIGNAL $(ps aux | grep $PROG | awk '{print $2}')
Si te ha interesado, ¿me invitas a una cerveza? / If you liked the post, would you buy me a beer?
ifstat is like some kind of vmstat for network interfaces. Every X seconds, it prints two columns per network interface monitoring the input and output bandwidth.
Quite useful when you need to diagnose a slow network, identify bottlenecks, monitor bandwidth consumption, etc. When invoked with the -t parameter it adds a timestamp on each line, very important if you plan to left it running for hours dumping its output to a file.
# ifstat -t
Time eth0 eth1
HH:MM:SS KB/s in KB/s out KB/s in KB/s out
12:40:25 0.05 0.19 0.00 0.00
12:40:26 0.26 0.24 0.00 0.00
12:40:27 6.87 30.14 0.00 0.00
12:40:28 0.17 0.26 0.00 0.00
12:40:29 0.05 0.22 0.00 0.00
12:40:30 0.05 0.14 0.00 0.00
12:40:31 0.05 0.14 0.00 0.00
12:40:32 0.29 0.38 0.00 0.00
12:40:33 0.29 0.38 0.00 0.00
12:40:34 0.13 0.22 0.00 0.00
12:40:35 2.85 8.70 0.00 0.00
12:40:36 9.01 38.84 0.00 0.00
12:40:37 0.55 0.24 0.00 0.00
12:40:38 0.05 0.14 0.00 0.00
Si te ha interesado, ¿me invitas a una cerveza? / If you liked the post, would you buy me a beer?
I start here a new section on my blog, Command Line (feed), where I will comment on UNIX commands (Linux and MacOS X mainly) that I find useful on my daily work. The articles will range from a very obscure command that I didn’t knew of until some day I needed something like it and found it and saved my day, new or creative ways to use old commands, or small shell-scripts that can make your life easier.
Unless otherwise specified, all these commands are just an “aptitude install” away on Debian and derivate distros (on Ubuntu they may be on universe or multiverse). For RedHat, CentOS, etc. there’s a good chance that you’ll find RPM packages on Dag Wieërs’ repository.
So, without further addo, the first command on the next entry. :)
Últimos comentarios
RSS