Disable service startup in linux

My eTrayz NAS starts up with lots of services that I don’t need, like iTunes-server (mt-daapd), MiniDLNA, etc.
I put together this little script do easily check the current runlevel services and to disable them. Nothing spectacular but still 🙂

#!/bin/sh
chkconfig --list | grep "3:on"

echo "Enter service name:"
read service

echo "Removing $service"
chkconfig --del $service
for i in 1 2 3 4 5 6; do
chkconfig --level $i $service off
echo "Service $service in runlevel $i turned off."
done
chkconfig --list | grep -i $service

Getting gcc on my eTRAYz


feed=http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/
ipk_name=$(wget -qO- $feed/Packages | awk '/^Filename: ipkg-opt/ {print $2}')
wget $feed/$ipk_name
tar -xOvzf $ipk_name ./data.tar.gz | tar -C / -xzvf -
mkdir -p /opt/etc/ipkg
echo "src armel http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/" > /opt/etc/ipkg/armel-feed.conf
wget http://mybookworld.wikidot.com/local--files/optware/sort_dirname.tar.gz
tar xvfz sort_dirname.tar.gz -C /
export PATH=$PATH:/opt/bin:.
ipkg update
ipkg install gcc

MRTG and SNMP on an eTRAYZ

ANd the next eTRAYZ mod: MRTG.

1. Install net-snmp
ipkg install net-snmp

2. Install mrtg
ipkg install mrtg

3. Change config snmpd.conf in /opt/etc/snmpd.conf to reflect these changes:
# rocommunity: a SNMPv1/SNMPv2c read-only access community name
# arguments: community [default|hostname|network/bits] [oid]

rocommunity public

# rwcommunity: a SNMPv1/SNMPv2c read-write access community name
# arguments: community [default|hostname|network/bits] [oid]

#rwcommunity SNMPv1_RW

4. Restart snmpd daemon with
/opt/etc/init.d/S70net-snmp restart

5. Make mrtg folder with
mkdir /opt/etc/mrtg

6. Create mrtg profile for localhost with
cfgmaker public@localhost >> /opt/etc/mrtg/mrtg.cfg

7. Make mrtg WorkDir with
mkdir /home/sysadmin/WWW/mrtg

8. Reflect this folder as WorkDir in
vi /opt/etc/mrtg/mrtg.conf

9. Make HTML file with
indexmaker --output=/home/sysadmin/WWW/mrtg/index.html /opt/etc/mrtg/mrtg.cfg

10. Make crontab entry with crontab -e and add
*/5 * * * * root cd /opt/bin/ && ./mrtg /opt/etc/mrtg/mrtg.cfg --logging /var/log/mrtg.log

11. Restart cron with
crond restart

12. To be sure, reset permissions:
chown -R sysadmin:etrayz /home/sysadmin/WWW/mrtg/

13. Browse to http://etrayz/mrtg/index.html and enjoy.

vnstat Network stats on your eTRAYZ

I want to monitor the network usage on my eTRAYZ. So I installed vnstat and a php frontend.
Here’s a guide.

1. Install vnstat using ipkg.

ipkg update
ipkg install vnstat

2. Create vnstat database.
vnstat -u -i eth0

3. Change to the web folder and download the PHP frontend

cd /home/sysadmin/WWW
wget http://www.sqweek.com/sqweek/files/vnstat_php_frontend-1.4.tar.gz

4. Expand the archive, delete it and rename the folder
tar xvzf vnstat_php_frontend-1.4.tar.gz
rm vnstat_php_frontend-1.4.tar.gz
mv vnstat_php_frontend-1.4 vnstat

5. Change to the new directory and edit config.php using command

cd vnstat
vi config.php

and change the variable $iface_list so that the line reads
$iface_list = array('eth0');

6. Delete these two lines:
$iface_title['eth1'] = 'Internet';
$iface_title['sixxs'] = 'SixXS IPv6';

If you want you can change the friendly name for $iface_title[‘eth0’]. Do not change the definition of variable $vnstat_bin, this must be left blank because the php script that calls vnstat uses a “\” which is not allowed by the php service in safe mode. Safe and quit vi.

7. Consequently we have to set up a cronjob to dump the vnstat data in to the “dumps” directory defined in variable $data_dir. Make the directory dumps:
mkdir dumps

8. Now we need to make a script and cronjob to update the nvstat data and create the dumpfile. Make a folder for your scripts
mkdir /home/sysadmin/my_scripts

9. Create a script file for cronjob to run
vi /home/sysadmin/my_scripts/vnstatdump.sh
…and paste the following lines into it

#!/bin/bash
/opt/bin/vnstat -u
sleep 10
/opt/bin/vnstat --dumpdb -i eth0 >> /home/sysadmin/WWW/vnstat/dumps/vnstat_dump_eth0

10. Make the script executable by doing:

chmod +x /home/sysadmin/my_scripts/vnstatdump.sh

and test the script by running it
sh /home/sysadmin/my_scripts/vnstatdump.shvnstatdump.sh

There shouldn’t be any error messages.

11. Create the cronjob schedule

vi /etc/crontab

… and enter new lines for however frequently you want the web page data to be updated. For instance to have it updated every hour at 1 minute past the hour enter a line like
1 * * * * root /home/sysadmin/my_scripts/vnstatdump.sh

12. Restart crond, i.e. “crond restart”
Use your internet browser and open the index.php page: http://etrayz/vnstat/index.php. Done.

Installing SABnzbd 0.5 beta RC3 on your eTRAYz

Update: changed version beta 5 to RC3

A little how-to for installing SABnzbd 0.5 on your Xtreamer eTRAYZ. I’m not explaining how to SSH to your box ecc, you should all know that before doing this. Newzbin is working well in version 0.5 on my eTRAYz.

Follow the guide on mavvy.net to install version 0.4.x on your box, to get the base system running. Try this before using this guide to update SABnzbd to version 0.5 RC3.

1. SSH to your box and goto the /opt/share folder.
2. Get the source from the SABnzbd site:

wget http://downloads.sourceforge.net/project/sabnzbdplus/sabnzbdplus-beta/0.5.0RC3/SABnzbd-0.5.0RC3-src.tar.gz?use_mirror=mesh

3. Expand the folder

tar zxvf SABnzbd-0.5.0RC3-src.tar.gz

4. Stop SABnzbd, rename the existing SABnzbd folder to oldSABnzbd and the 0.5 version to SABnzbd

/etc/init.d/sabnzbd stop
mv SABnzbd oldSABnzbd
mv SABnzbd-0.5.0Beta5-src.tar.gz SABnzbd

5. Reset owner

chown -R sysadmin:etrayz SABnzbd

6. Install support system

ipkg update
ipkg install py25-cheetah

7. Copy the SABnzbd.sh file from the old folder to the new one and edit it with VI

cp /opt/share/oldSABnzbd/SABnzbd.sh /opt/share/SABnzbd/
vi /opt/share/SABnzbd/SABnzbd.sh

8. This is the main trick to get 0.5 working! Edit the start commando as follows:

nice -n 20 python2.5 /opt/share/SABnzbd/SABnzbd.py -s $IP:8888 &

I’ve added the nice -n option to give more importance to other processes on the box and, more importantly, forced SABnzbd to use python 2.5, otherwise the Cheetah module won’t work. Test this by starting python and python2.5 for the command line and by typing:

import Cheetah

Version 2.4 or 2.6 will return this error:

[1:~]$ python
Python 2.6.4 (r264:75706, Nov 11 2009, 00:14:30)
>>> import Cheetah
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named Cheetah

While version 2.5 returns:

[2:~]$ python2.5
Python 2.5.4 (r254:67916, Jun 1 2009, 22:35:31)
[GCC 3.4.3 (release) (CodeSourcery ARM Q1B 2005)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Cheetah
>>>

… nothing! Therefor it works and so will SABnzbd 0.5!

If you use the iphone interface in 0.4, please rename this to Mobile in your sabnzbd.ini.