find and awk for httpd owned files (with count and average)

These are not very efficient (two sorts in one line for example) but for my needs work fine (improvements welcomed).

Create a list of “filenames|size in bytes” of all httpd owned files sorted by reverse size:

find "/path/to/examine/" -user httpd -type f -printf '%p|%s\n' | sort -t \| +1 -2 > httpd.usage.txt

results:

/path/to/examine/some/user/files/file0.jpg|99995
/path/to/examine/some/user/files/file7.jpg|99994
/path/to/examine/some/user/files/file1.jpg|99993
/path/to/examine/some/user/files/file2.jpg|99991

Sum, average and count created file

awk -F\| '{ s += $2 } END { print "Sum: ", s,", Avg: ", s/NR, ", No.: ", NR }' httpd.usage.txt

results:

Sum:  10831638685 , Avg:  49539.2 , No.:  218648

Show top10 file counts by user:

cat httpd.usage.txt | awk -F\/ '{print$5}' | sort | uniq -c | sort -nrk 1,1 | head -n 10

results:

  61088 auser123
  35028 auser1435
  13907 auser124
   9952 auser1251
   9225 auser13516
   9181 auser1368
   8608 auser231
   7588 auser479
   6121 auser1338
   5844 auser666

Show bytes owned for a users files of specific user (from existing data):

cat httpd.usage.txt | grep USERNAME | awk -F\| '{print$2}' | awk '{  sum += $1 } END { print sum }'
2802473125

As your directory structures will probably differ from mine you must modify one or more of: +1, -2, $2 or $5

To-Do: Make size calculation automated from top10 list.

Posted in code snippets, geek, servers & tech | Leave a comment

Siemens Gigaset C475 handset <> handset transfer

There seems to be some problems transferring calls between Siemens Gigaset C467 handsets when on the same base station. It’s not a perfect fix but #3 does what we needed.

There are three ways to try transfer inbound calls on the Gigaset C475 handset:

1) Doesn’t work for transfers to/from handsets on same basestation:

options >
external call >
extentension number >
send >
hangup

2) Doesn’t work for transfers to/from handsets on same basestation:

# key >
extension number >
conf >
hangup

3) Does work for transfers to/from handsets on same basestation only:

left menu button >
base station extension >
call >
conf / convereference >
hangup
Posted in geek, servers & tech | Leave a comment

Configure sendmail with saslauthd for SMTP AUTH

Install:

wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
rpm -Uv rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
yum install sendmail sendmail-cf cyrus-sasl-plain
cd /etc/mail
vi sendmail.mc
	change from: DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
	change to:   DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
	add:		 define(`confAUTH_MECHANISMS’, `LOGIN PLAIN’)dnl
	add:		 TRUST_AUTH_MECH(`LOGIN PLAIN')dnl
make sendmail.cf -C /etc/mail
chkconfig sendmail on
chkconfig saslauthd on
/etc/init.d/sendmail start
/etc/init.d/saslauthd start
adduser someusername (the username to allow relay)
passwd someusername (the username to allow relay)
vi /etc/passwd
	change from: someusername:x:500:500::/home/relay170:/sbin/nologin
	change to: someusername:x:500:500::/home/relay170:/home/relay



Telent SMTP AUTH test:

carl@carld630:~$ telnet smtp.hostname.com 25

Trying 123.123.123.123…
Connected to 123.123.123.123.
Escape character is ‘^]’.
220 smtp.hostname.com ESMTP Sendmail 8.13.8/8.13.8; Sat, 15 May 2010 21:01:58 GMT

AUTH LOGIN

334 VXNlcm5hbWU6

base64 encoded username

334 UGFzc3dvcmQ6

base64 encoded password

235 2.0.0 OK Authenticated

mail from: something@adomain.com

250 2.1.0 something@adomain.com… Sender ok

rcpt to: something@adomain.com

250 2.1.5 something@adomain.com… Recipient ok

data

354 Enter mail, end with “.” on a line by itself

Subject: Testing Relay with Auth
Some body
.

250 2.0.0 o4FL1wad003835 Message accepted for delivery

quit



Telnet Relay Denied Test:

telnet 89.248.50.170 25

Trying 123.123.123.123…
Connected to 123.123.123.123.
Escape character is ‘^]’.
220 smtp.hostname.com ESMTP Sendmail 8.13.8/8.13.8; Sat, 15 May 2010 21:03:25 GMT

mail from: something@adomain.com

250 2.1.0 something@adomain.com… Sender ok

rcpt to: something@adomain.com

550 5.7.1 something@adomain.com… Relaying denied. Proper authentication required.

quit
Posted in code snippets, geek, servers & tech | Leave a comment

roundcube add subject to smtp_log

vi program/steps/mail/func.inc

change:

if ($CONFIG['smtp_log']) {
write_log('sendmail', sprintf("User %s [%s]; Message for %s; %s",
$RCMAIL->user->get_username(),
$_SERVER['REMOTE_ADDR'],
$mailto,
!empty($smtp_response) ? join('; ', $smtp_response) : ''));
}

to:

if ($CONFIG['smtp_log']) {
write_log('sendmail', sprintf("User %s [%s]; Message for %s; Subject: %s %s",
$RCMAIL->user->get_username(),
$_SERVER['REMOTE_ADDR'],
$mailto,
$headers['Subject'],
!empty($smtp_response) ? join('; ', $smtp_response) : ''));
}
Posted in code snippets | Leave a comment

Install Dell OpenManage 6.1 / omsa / omreport into Citrix XenServer dom0

UPDATE 17/06/2010: Please also see the comment from David below and blog post about Dells supplemental package for XenServer 5.6 which may be a better method.

A quick guide to getting openmanage installed for RAID monitoring on a Xen node.

OM 6.2 has an error with “Error: Missing Dependency: libxslt.so.1″ which is with the Dell package.

***Use 6.1 if 6.2 doesn’t work for you (R710 for example)***
***UPDATE~***: As pointed out by digibyte in the comments, you may be able to use 6.2 by installing:

wget http://mirror.centos.org/centos-5/5/os/i386/CentOS/libxslt-1.1.17-2.el5_2.2.i386.rpm
rpm -Uvh libxslt-1.1.17-2.el5_2.2.i386.rpm

1. wget -q -O – http://linux.dell.com/repo/hardware/OMSA_6.1/bootstrap.cgi | bash
2. yum install srvadmin-storage.i386
3. srvadmin-services.sh start

Now test:
omreport storage pdisk controller=0

Sending an email on degraded RAID using omreport:

1. wget ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/releases/8/Fedora/i386/os/Packages/mailx-8.1.1-46.fc7.i386.rpm
2. rpm -Uv mailx-8.1.1-46.fc7.i386.rpm
3. mkdir /root/scripts/
4. vi /root/scripts/check.raid.sh

#!/bin/sh
rm /tmp/check.raid.txt
omreport storage pdisk controller=0 | grep State | grep -v Online > /tmp/check.raid.txt
FILESIZE=$(stat -c%s "/tmp/check.raid.txt")
if [ $FILESIZE != 0 ];
then
	omreport storage pdisk controller=0 > /tmp/check.raid.txt
	cat /tmp/check.raid.txt | mail -s 'check RAID on XENxx' some@maildomain.ext
	echo "RAID - FAIL (mail sent)"
else
	echo "RAID - OK"
fi

5. chmod +x /root/scripts/check.raid.sh
6. crontab -e
*/5 * * * * /root/scripts/check.raid.sh >/dev/null 2>&1

7. Test /root/scripts/check.raid.sh

rpm -Uvh
Posted in geek, servers & tech | 4 Comments

Modifications to www.carlheaton.co.uk

I’ve been making a few modifications to *.carlheaton.co.uk like re-introducing the core Carl Heaton index page with a list of projects and other on-going ideas.

I will still post tutorials/dumps here where appropriate for code, server and electronics related things, but I’ll be posting no further ‘random links’ on this Slog because it’s too much of a pain to format and publish them vs. tweeting.

Posted in projects | Leave a comment

Converting 32bit RRD to 64bit RRD (moving cacti between architectures)

While migrating cacti over to a new virtual machine I got “ERROR: This RRD was created on another architecture” in /var/log/httpd/error_log when the crontab ran resulting in blank graphs. Read More »

Posted in code snippets, geek, servers & tech | 1 Comment

Management

A man flying in a hot air balloon suddenly realizes he’s lost. He reduces height and spots a man down below. He lowers the balloon further and shouts to get directions, “Excuse me, can you tell me where I am?”

The man below says: “Yes, you’re in a hot air balloon, hovering 30 feet above this field.”

“You must work in Information Technology,” says the balloonist.

“I do” replies the man. “How did you know?”

“Well,” says the balloonist, “everything you have told me is technically correct, but It’s of no use to anyone.”

The man below replies, “You must work in management.”

“I do” replies the balloonist, “But how’d you know?”

“Well”, says the man, “you don’t know where you are, or where you’re going, you expect me to be able to help. You’re in the same position you were before we met, but now it’s my fault.”

Posted in business, geek, servers & tech | Leave a comment

Mexican Fisherman

An American investment banker was at the pier of a small coastal Mexican village when a small boat with just one fisherman docked.  Inside the small boat were several large yellowfin tuna.  The American complimented the Mexican on the quality of his fish and asked how long it took to catch them.

The Mexican replied, “only a little while.”

The American then asked why didn’t he stay out longer and catch more fish?

The Mexican said he had enough to support his family’s immediate needs.

The American then asked, “but what do you do with the rest of your time?”

The Mexican fisherman said, “I sleep late, fish a little, play with my children, take siestas with my wife, Maria, stroll into the village each evening where I sip wine, and play guitar with my amigos.  I have a full and busy life.”

The American scoffed, “I am a Harvard MBA and could help you.  You should spend more time fishing and with the proceeds, buy a bigger boat.  With the proceeds from the bigger boat, you could buy several boats, eventually you would have a fleet of fishing boats.  Instead of selling your catch to a middleman you would sell directly to the processor, eventually opening your own cannery.  You would control the product, processing, and distribution.  You would need to leave this small coastal fishing village and move to Mexico City, then LA and eventually New York City, where you will run your expanding enterprise.”

The Mexican fisherman asked, “But, how long will this all take?”

To which the American replied, “15 – 20 years.”

“But what then?” Asked the Mexican.

The American laughed and said, “That’s the best part.  When the time is right you would announce an IPO and sell your company stock to the public and become very rich, you would make millions!”

“Millions – then what?”

The American said, “Then you would retire.  Move to a small coastal fishing village where you would sleep late, fish a little, play with your kids, take siestas with your wife, stroll to the village in the evenings where you could sip wine and play your guitar with your amigos.”

Posted in business | Leave a comment

Arduino network support sounder

This project needs properly documenting, but in short it’s a Diecimila with a network module a 6V buzzer and tri-colour LED connected to PWM which provides an audible and visible alert upon the receipt of specific new emails.

I run Ubuntu and Evolution mail on a wireless laptop which has a filter configured to pipe all incoming mail to a bash script. The bash script then passes the email content over to PHP (where I’m most familiar) and parses it for support@ and other references. The PHP script upon triggering a ruleset visits the network connected Arduino using curl, sounds the buzzer for one second and phases the PWM LED through Red and Purple to provide a visual alert before reverting back to buzzer off and blue state. It’s pretty basic but it means I don’t need to be anywhere near the laptop to be able to jump on a support ticket.

Images Broken! Comment if you want them

Posted in geek, servers & tech | Tagged , | Leave a comment