2-Cent Tips
Two-cent Tip: executing two different consecutive commands with same set of parameter
Mulyadi Santosa [mulyadi.santosa at gmail.com]
Sat, 6 Dec 2008 10:34:42 +0700
Bash has feature called "word designators". I find it useful if you want to execute a command following the previous one with same set of parameters.
For example, instead of:
# ls -l /boot/vmlinuz-2.6.22-14-generic # stat /boot/vmlinuz-2.6.22-14-generic
I could simply type:
# ls -l /boot/vmlinuz-2.6.22-14-generic # stat !$
It would recall the last parameter of "ls"
Another variation. Let's say first you want to do:
# cat text-1.txt text-2.txtbut then you realize the text are too long, so you turn into "tail":
# tail text-1.txt text-2.txt OR # tail !*It would recall all the parameters except the first one (technically, the zeroth one actually).
regards,
Mulyadi.
2-cent Tip: Temporary kill files
Ben Okopnik [ben at linuxgazette.net]
Tue, 30 Dec 2008 20:31:41 -0500
Occasionally, there are times that I don't feel like seeing someone's email in my inbox for a while - for whatever reason. At those times, "procmail" is very useful.
First, you need to calculate the "timeout" interval in seconds and add it to the current date and time. Fortunately, the 'date' command makes this easy:
# There are 86400 seconds in a day ben@Tyr:~$ days=3; echo $(($(date +%s) + 86400 * $days)) 1230944808
You can now use that value to determine whether that interval has elapsed - i.e., you can create a filter within your "~/.procmailrc" file based on that test:
:0: ##### Specify the 'From' or 'From:' address * ^From.*joe@rant\.org ##### You can also narrow it down by subject if desired * ^Subject.*Cut\ the\ crap * ? test $((1230944808 - $(date +%s))) -gt 0 ##### If all of the above criteria match and the difference between the ##### current date and the end date is greater than 0, discard the email /dev/null
May everyone's holidays be merry, bright, and peaceful.
-- * Ben Okopnik * Editor-in-Chief, Linux Gazette * http://LinuxGazette.NET *
2-cent Tip: audio ping
Ben Okopnik [ben at linuxgazette.net]
Sun, 30 Nov 2008 14:40:40 -0500
If you occasionally can't ping a host on your network, and suspect that a wonky connection is to blame, troubleshooting can be a pain: watching the output of "ping hostname" while crawling around in the dust under a desk is, to put it mildly, a challenge. Enter the "-a" option to 'ping', added by one of the people on the "iputils" team, Patrik Schilt: when there's no connection, "ping -a hostname" simply sits and waits, but as soon as one appears, it starts emitting audio beeps. That's a wonderful "wishlist" feature, and should significantly improve the life of any sysadmin who has ever groveled amongst the dropped corn chips and the roach poop.
-- * Ben Okopnik * Editor-in-Chief, Linux Gazette * http://LinuxGazette.NET *
[ Thread continues here (25 messages/35.92kB) ]
2-cent Tip: 'hostwatch'
Ben Okopnik [ben at linuxgazette.net]
Sun, 30 Nov 2008 16:26:57 -0500
While I was writing my last tip (about audible ping), my wife said "you know, what would be really useful is something that would start pinging when the connection went down!" An easy sentiment to understand, since we connect our laptops via a pair of cables with a cranky old connector (and my laptop's Ethernet port's retainer is broken, meaning that cables won't stay in it for long.) So, I cranked out this useful little script, "hostwatch". It takes a hostname or IP as an argument, tells you that it's watching the specified host, starts audibly pinging when a connection goes down, and stops pinging (resets itself back to watch status) when the connection comes back up. All in all, a very useful gadget for the Okopnik family network.
#!/bin/bash # Created by Ben Okopnik on Sun Nov 30 15:41:06 EST 2008 [ -z "$1" ] && { printf "Usage: ${0##*/} <hostname> \n"; exit; } echo "Watching host '$1' - press 'Ctrl-C' to interrupt..." while : do while fping -c 1 "$1">/dev/null 2>&1 do sleep 1 done until fping -c 1 "$1">/dev/null 2>&1 do echo -e "\007Connection to '$1' is DOWN." sleep 1 done echo "Connection to '$1' is UP again." done
Note that this script requires "fping" rather than just "ping".
-- * Ben Okopnik * Editor-in-Chief, Linux Gazette * http://LinuxGazette.NET *