Anecdotes from a Linux Systems Administrator. /root

Home About Books Blog Portfolio Archive

Tag Cloud

Currently Reading

MCA Microsoft Certified Associate Azure Administrator Study Guide: Exam AZ-104
MCA Microsoft Certified Associate Azure Administrator Study Guide: Exam AZ-104
308 / 435 Pages

Latest Book Reviews

Latest Posts

December 30, 2012

Installing Nagios Remote Plugin Executor in Solaris 11

by Alpha01

Install gcc

pkg install pkg://sfe/runtime/gcc pkg://sfe/sfe/developer/gcc

Install system headers (not really sure if all listed were necessary):

pkg install SUNWhea SUNWbinutils SUNWarc SUNWgcc SUNWgccruntime SUNWlibsigsegv SUNWgm4 SUNWgnu-automake-110 SUNWaconf

Update your PATH:

export PATH

Manually create nagios user account, home directory, group, and assigned him a password.

mkdir -p /usr/local/nagios
useradd -d /usr/local/nagios -m nagios
groupadd nagios
usermod -G nagios nagios
passwd nagios

Download, extract, compile and install nrpe.

tar -xvf
cd /opt/nrpe-2.13
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make install
make install-daemon-config
cp src/check_nrpe /usr/local/nagios/libexec

Update permissions.

chown -R nagios:nagios /usr/local/nagios/

Add the following entry to /etc/services

nrpe 5666/tcp # NRPE

Add the following entry to /etc/inetd.conf

nrpe stream tcp nowait nagios /usr/sbin/tcpd /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -i

Convert and add the new legacy inetd entry to SMF.

inetconv -e
Tags: [ nagios solaris ]
December 24, 2012

Creating large files in Solaris for testing purposes

by Alpha01

In the Linux world, I use the dd utility to create files that need to be a certain size. Even though it works perfectly fine, its kind of annoying figuring out the output file’s size of the file. This is because the size is based on the bs (block size) value and the total number of block size count together.

For example, the following dd command creates a 300 mb file called 300mb-test-file. Each block size will be 1000 bytes, and I want of a total of 300,000 blocks. Formula: ( (1000 x 300000) / 1000000 )

[tony@bashninja ~]$ dd if=/dev/zero of=300mb-test-file bs=1000 count=300000
300000+0 records in
300000+0 records out
300000000 bytes (300 MB) copied, 2.0363 s, 147 MB/s

Luckily in the Solaris world this can be easily accomplished using the mkfile tool, without doing any conversion. We can even use this mkfile tool to easily create test disk files to experiment with ZFS!

root@solaris:~# mkfile 300m testdisk1
root@solaris:~# mkfile 300m testdisk2
root@solaris:~# ln -s /root/testdisk1 /dev/dsk/testdisk1
root@solaris:~# ln -s /root/testdisk2 /dev/dsk/testdisk2
root@solaris:~# zpool create tonytestpool mirror testdisk1 testdisk2
root@solaris:~# zpool status tonytestpool
  pool: tonytestpool
 state: ONLINE
  scan: none requested

        NAME           STATE     READ WRITE CKSUM
        tonytestpool   ONLINE       0     0     0
          mirror-0     ONLINE       0     0     0
            testdisk1  ONLINE       0     0     0
            testdisk2  ONLINE       0     0     0

errors: No known data errors
Tags: [ solaris zfs testing ]
December 23, 2012

FreeBSD diskless PXE booting

by Alpha01

After a couple of trial and error tests and lots of caffeine ingested, I finally managed to install FreeBSD 9.1 over my network completely diskless using ISC’s DHCP, PXE, tftpd-hpa, and NFS.

1). Download iso image and copy over all files. (Where the /srv/tftp/freebsd/amd64 directory is the root directory of the iso files)

mount -o loop FreeBSD-9.0-RELEASE-amd64-disc1.iso /mnt
mkdir -p /srv/tftp/freebsd/amd64
cp -a /mnt/* /srv/tftp/freebsd/amd64
cp -a /mnt/.cshrc /srv/tftp/freebsd/amd64
cp -a /mnt/.profile /srv/tftp/freebsd/amd64
cp -a /mnt/.rr_moved /srv/tftp/freebsd/amd64

2). Create the following additional directories:

mkdir /srv/tftp/freebsd/amd64/jails
mkdir -p /srv/tftp/freebsd/amd64/conf/base/jails
mkdir /srv/tftp/freebsd/amd64/conf/default
chmod -R 777 /srv/tftp/freebsd/amd64/conf
chmod -R 777 /srv/tftp/freebsd/amd64/jails

3). Edit /srv/tftp/freebsd/amd64/etc/fstab, comment out the entry in the file:

#/dev/iso9660/FREEBSD_INSTALL / cd9660 ro 0 0

4). Add the following entry to /srv/tftp/freebsd/amd64/etc/rc.conf:


5). NFS configuration:


6). dhcpd configuration (of course, IP may differ depending on your environment):

  • will be the IP that wil be assigned to the new FreeBSD system.
  • is the IP of the TFTP/NFS server where the installation files are stored in.

The filename path is relative to what path you configured with tftpd-hpa.

host freebsdboot {
  hardware ethernet 08:00:27:2b:f9:f8;
  filename "freebsd/amd64/boot/pxeboot";
  option root-path "";

FreeBSD Diskless PXE


Tags: [ freebsd ]
December 22, 2012

PHP memory_limit stress testing

by Alpha01

I wrote this code a couple of years ago that I found it was very useful when I was troubleshooting PHP memory limit settings. The script essentially creates one huge array until it runs out of memory.

ini_set('display_errors', true);
while (1) {
        echo 'Hello' . nl2br("\n");
        $array = array(1,2);
        while(1) {
                $tmp = $array;
                $array = array_merge($array, $tmp);
                echo memory_get_usage() . nl2br("\n");
Tags: [ php apache ]
December 18, 2012

Finding the number of files inside a subdirectory

by Alpha01

for i in `ls .`; do echo $i; ls -laR $i| grep -v ^[.dlt] | grep -v ^$ | wc -l; echo "--------------------" ; done
Tags: [ bash ]