osTicket Red theme 1.6 RC4
Mar 8, 2009 Linux, Lost+Found, osticket, Software, Windows
Hello there
Based on my old post (http://xux.in/blog/post/osticket-theme-1-6-rc4/), I decided to do more templates for osTicket 1.6 RC4 and RC5, because (and accidentally), the main theme code I did, allows you to integrate new templates in just a few minutes. So I downloaded some free css templates (like 12) and started to play with them and I’ll release 1 post for each template. The first part of the post will contain only the theme’s screenshots and once I fix some the code and test it enough I’ll update the post with the full template translated in english and spanish.
Here is how it looks! ![]()
Download osTicket Red Theme (1734) (Compatible with 1.6 RC5)
* Note: This template is ONLY for the client side, not for the staff/admin area.
osTicket theme 1.6 RC4
Feb 23, 2009 Linux, Lost+Found, osticket, Software, Windows
As you already know osTicket is a support ticket system which is very easy to use and free. Developers from osTicket are back, they fixed a few bugs and cleaned a little bit most of the code.
Features:
- Multilanguage client interface: You can add as many languages as you want for the client side.
- Error messages can be “catched” and identified by a unique MD5 key which you can translate it in your language file.
- You can configure the Ticket ID field to be a password field or just a text field for “security”.
- It comes with 2 cool, light and fully XHTML valid themes which you can easily modify colors and also the HTML because of it’s clean design.
- It has a built-in CAPTCHA module that will protect you from SPAM.
- Search tickets based only on ticket’s subject.
- Easy to install.
- Last but not least, it’s 100% free, but that doesn’t mean you are allowed to remove credits
It has been tested a while now but it’s still on a beta stage, however, you might find some bugs and I’ll be happy to get some feedback from you. I didn’t include the Spanish language file this time, but I’ll do it someday
If you want to translate it to other language feel free to send me your language file and I’ll include it in the next release
Here are some screenshots:
This specific version is a patched one from Nov/30/2010 which includes all the post-install instructions here, spanish translation included and all the patches needed to work with osTicket 1.6.0 (Stable), get it here: Download osTicket CTheme for 1.6.0 (Stable) (1065)
*** This is still very old news, keeping them there just for the archives ***
Are you still reading? Ok, you deserve it… Download osTicket CTheme (2955) (Compatible with 1.6 RC5)
Necesitas el tema en español? Descarga el archivo osTicket CTheme Spanish Language (2079)
When you uncompress the file it will create a directory called “client”, that directory should be copied to osTicket’s root dir and the rest of the installation instructions are in the README file, have fun!
** Post install notes and bug fix:
- The file thankyou.inc.php from this template has a code error in line 10: $ctlang->docatch($msg?) which should be changed for $ctlang->docatch($msg)?
- Inside osTicket’s root dir, edit the index.php and comment (or delete) all the html code in order to see the template display correctly, then you just need to add this line before the footer in included: require(CLIENTINC_DIR.’main.inc.php’);. This bug and others will be fixed in the next release soon.
PHP EditDNS Updater for Linux
Dec 18, 2008 Code, Linux, Software
This is a simple PHP script which will update your dynamic DNS records using EditDNS.
Features:
- You can configure as many records as you want.
- Supports HTTP and HTTPS.
- For PHP 4x and higher compiled with sockets.
- Simple validation.
Here is the code: (editdns.php)
#!/usr/bin/php -q <? $port = 443; // use 80 if you dont wanna use SSL // add as many arrays as you want, first element is the record // and the second is the password // $data[] = array('myrecord1.domain.com','mypass1'); // $data[] = array('myrecord2.domain.com','mypass2'); // ... etc etc etc ;) $data[] = array('somerecord.resolveme.com','blahblah123'); $sleep = 1; // seconds we should sleep before updating another record // main loop if (!is_array($data)) die("Nothing to do\n"); foreach ($data as $v) { echo "Updating $v[0] ... "; if(_send($port,"p=$v[1]&r=$v[0]")) echo "[OK]\n"; sleep($sleep); } function _send($port=443,$args="") { if ($port == 443) $proto = "ssl"; else $proto = "http"; $fp = fsockopen("$proto://dyndns.editdns.net",$port,$errno,$errstr,10); if (!$fp) die("\nCouldn't establish connection\n"); $out = "POST /api/dynLinux.php HTTP/1.0\r\n"; $out .= "Host: dyndns.editdns.net\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; $out .= "Content-Length: ".strlen($args)."\r\n"; $out .= "Connection: Close\r\n\r\n"; $out .= $args; //echo $out; fwrite($fp, $out); while (!feof($fp)) { $res .= fgets($fp,1024); } fclose($fp); $parts = explode("\r\n\r\n",trim($res)); //print_r($parts); // checking output if (preg_match("/record has been updated|record already exists/i",$parts[1])) return 1; // anything else should be an error echo "[ERROR]\n\t$parts[1]\n"; return 0; } ?>
Save it, chmod +x and play with it.
Old sources:
http://forums.nerdie.net/showthread.php?t=616
http://xux.in/blog/post/ip-updater-for-editdnsnet/
ADS!!!
Ensim’s (aka Parallels Pro Control Panel X for Linux) alternative ChangePasswdVirtUser
Nov 24, 2008 Code, Ensim, Linux, Lost+Found, Software
Ensim former Parallels Pro Control Panel X for Linux has a command line interface scripts as you SHOULD know
which allows you to do several administrative tasks without login to the appliance. The other day I started to write an API in order to admin N Ensim servers with only 1 interface which is a lot of work/code but hell, I’ll post some screenshots later
… So one of the biggest problems I had was the script ChangePasswdVirtUser (located in /usr/local/bin), which allows you to change a virtual user’s password asking for the new password 2 times and I didn’t want to ruin my weekend and decided to hack that script and make it work like this: ChangePasswdVirtUser domain.com user newpassword
That’s so insecure! I know and I’ll come later with a more secure alternative don’t worry
in the meantime you can play with it:
File: /usr/local/bin/ChangePasswdVirtUser1
#!/usr/bin/ensim-python # # Usage: # # ChangePasswdVirtUser <domainname> <username> <passwd> # # Example: # # AddVirtUser myco.com joe doe import getopt import getpass import sys import traceback from vh3 import virthost from vh3 import virtutil from vh3.modules import users import string import be_vherrordisp if (len(sys.argv) < 4) or (sys.argv[1] == "--help"): print "usage: ChangePasswdVirtUser1 <domainname> <username> <passwd>" sys.exit(0) else: # checks to see if we are in maintenance mode virthost.checkMaintenance() status = be_vherrordisp.CLIError.SUCCESS status_obj = be_vherrordisp.CLIError() options, args = getopt.getopt(sys.argv[1:],"") siteindex = virthost.get_site_from_anything(string.lower(args[0])) username = string.lower(args[1]) passwd1 = args[2] if not siteindex: print "Domain %s does not exist on this server."% string.lower(args[0]) sys.exit(1) ret = [] try: virthost.edit_user(ret, siteindex, username, None, passwd1, None, None) status = virthost.cli_display_status_list(ret) except: status = be_vherrordisp.CLIError.ERROR print traceback.print_exc() sys.exit(status)
cpanel 535 Incorrect authentication data
Nov 24, 2008 Code, Linux, Lost+Found, Software
I ran into a small issue when migrating some sites to a cPanel server, tried a few “tricks” (/scripts/* –force hehe) without luck till I found a great post which pointed me the solution, and it is as simple as that!
Since I’m a very lazy guy, I wrote a tiny script which does what Jerry (from cPanel forums) said/explained. Copy the code, save it and execute it. By default it won’t do anything but show the directories and files current state and how they should be. If you see something is not as it should be then you should change the $debug var to false in order to allow the script to do the job. After that everything should be fixed and if not don’t blame me, you can always do that manually
#!/usr/bin/php -q <? // file: fix_auth_perms.php // turn it off if you want to fix them // based on http://forums.cpanel.net/showpost.php?p=323248&postcount=3 $debug = true; $maps = file("/etc/domainusers"); if (!is_array($maps)) die("No users found!\n"); foreach ($maps as $map) { list($user,$domain) = explode(": ",trim($map)); if (!$user || !$domain) continue; echo "\nChecking $domain ...\n"; _file_fix("/home/$user/etc",$user,"mail"); _file_fix("/home/$user/etc/$domain",$user,"mail"); _file_fix("/home/$user/etc/$domain/shadow","","mail","0640"); //exit; } // $file = full dir/file path // $nuser = desired user name // $ngroup = desired group name // $perms = desired permissions in octal mode (0640) function _file_fix($file="",$nuser="",$ngroup="",$perms="") { global $debug; $uname_array = posix_getpwuid(fileowner($file)); $gname_array = posix_getgrgid(filegroup($file)); $file_perms = substr(sprintf('%o', fileperms($file)), -4); echo " $file owned by $uname_array[name].$gname_array[name] ($file_perms)\n"; //wrong ownership, fixing it now! if (!$debug) { if ($nuser && $nuser != $uname_array[name]) { if (!chown($file, $uname_array[name])) echo " couldn't change file owner to $nuser\n"; else echo " changed file owner to $nuser\n"; } if ($ngroup && $ngroup != $gname_array[name]) { if (!chgrp($file, $gname_array[name])) echo " couldn't change group owner to $ngroup\n"; else echo " changed group owner to $ngroup\n"; } } if ($perms && $perms != $file_perms) { if (!$debug) { if (!chmod($file,octdec($perms))) echo " couldn't change file mode to $perms\n"; else echo " changed file mode to $perms\n"; } } //making a nice output :P if (!$nuser) $nuser = $uname_array[name]; if (!$ngroup) $ngroup = $gname_array[name]; if (!$perms) $perms = $file_perms; echo " $file should now be owned by $nuser.$ngroup ($perms)\n"; } ?>
Install and setup Samba in Linux
Nov 8, 2008 Ensim, Linux, Lost+Found, Software, Windows
What is Samba? If you don’t know what it is then you shouldn’t be reading this
Samba can do a lot of things and we are only cover a basic configuration that will allow you to share specific folders on a Linux machine in the same way you share forlder in a Windows machine.
This will cover a very quick installation and setup of Samba on any Linux flavor, however in this particular case I’ll cover CentOS 5.2
First you need to install Samba’s binaries using yum
(you can use apt-get or up2date if you want)
yum install samba samba-common
Installation stage has been covered, that was fast
Now we need to do a basic configuration in order to start using it and we need to design a structure… let’s say I want to setup a Linux machine to share a specific folder to everyone with read-only access and a specific folder for only local user with read/write access, so here we go:
cd /etc/samba mv smb.conf smb.conf.backup nano smb.conf
And paste the following configuration on the new smb.conf
[global] netbios name = sambaserver load printers = no path = /home default service = global security = share available = no [share] path = /var/ftp/pub guest ok = yes read only = yes comment = Public Access available = yes [sambademo] path = /home/demo guest ok = no writable = yes valid users = demo comment = User demo home available = yes
So far we have setup a basic global configuration, a public access area and a restricted area for a local user called “demo”. Before we continue you need to make sure the folder /var/ftp/pub exists. Now, before we start our new Samba server, we need to setup the “demo” account and it can be done in 2 ways:
useradd -s /sbin/nologin demo smbpaswd -a demo
If we don’t want to give this user shell access, or…
useradd -s /bin/bash demo passwd demo smbpasswd -a demo
If we want to give this user access to shell and of course we need to set the same password for the system and Samba.
It is time to start our Samba server:
/etc/init.d/smb start
Now let’s try it, on Windows do the following: Start -> Run -> cmd
net use y:\\samba_server_ip\share net use z:\\samba_server_ip\demo /user:demo thepasswordyouset
Hopefully you will see you have 2 new units on your Windows File Explorer, Y which is a read-only folder and Z which is a read/write folder
that’s all!
If you want to do more things with Samba and you are lazy you can always get Webmin and use its module to configure Samba and use its advanced options.
NOTE: This article is for educational purposes and should be treated as it is.
Troubleshooting:
- The network name cannot be found: Check your computer’s firewall or if your ADSL/DSL modem, sometimes by default they block all outgoing connections to Netbios port which is 139.
- Anything else check your log files /var/log/samba/smb.log
Literature: (Thanks to them, this tutorial exists)
Sunny Walia
Joel Barrios Dueñas
Samba
Install Moodle on Ensim
Sep 12, 2008 Ensim, Linux, Software
This tutorial will cover Moodle’s 1.9.2 installation on a server running Ensim 4.x – 10.x / PHP5 / MySQL 4.1 – 5.2 (as root)
“Moodle is a course management system (CMS) – a free, Open Source software package designed using sound pedagogical principles, to help educators create effective online learning communities.” For more info go to Moodle’s official website.
1. First check your server meets the specifications listed. You will need additional packages and can be found here.
2. wget http://download.moodle.org/stable19/moodle-1.9.2.tgz on /home/virtual/siteX/fst/var/www/html/
3. tar zxf moodle-1.9.2.tgz
4. chown -R adminX:adminX moodle
5. mkdir ../moodledata
6. chown -R apache:apache ../moodledata
7. Create a MySQL database for moodle. I.E. domain_com_moodle
8. Go to http://www.domain.com/moodle/install.php , select your language installation and ***WAIT***, check what it’s needed. Everything will look fine and you should only see 2 warnings about PHP low file uploads limit and PHP safe mode.
pico or vi /etc/php.ini and verify the following values are set like this:
safe_mode = Off safe_mode_gid = Off memory_limit = 24M ; Let moodle suck some memory;) upload_max_filesize = 16M ; 8M is the default however is kinda small, set it to whatever you might need
* If you don’t want to mess with global values then edit the php.ini located at /home/virtual/siteX/fst/etc/php.ini
9. Restart HTTPD: service httpd restart
10. Refresh the page http://www.domain.com/moodle/install.php and check everything is fine. If you still see the Safe Mode warning then edit /etc/httpd/conf/httpd20_app.conf and find the line “php_admin_flag safe_mode on”, change it to “php_admin_flag safe_mode off” and restart HTTPD again.
11. Refresh the page http://www.domain.com/moodle/install.php and EVERYTHING now should be fine, if not please go back to http://docs.moodle.org/en/Installing_Moodle and dig more.
12. Now you can continue with the installation process. It should go smooth and it will ask you to copy the config file because the script has no access to write. Just copy the text, create a file “config.php” on the moodle directory and chown adminX:adminX config.php , continue with installation.
13. Once installation is done you can go to http://www.domain.com/moodle and login as admin with password admin, get inside ASAP and change the login and admin password
Now your Moodle is up and running, have fun!
* For some users this mini-howto can be silly but still Ensim makes some applications hard to install because of it’s nature.
* If something goes wrong, don’t blame me, this is only an un-official guide.
Happy Moodlin’
Perl IRC Bot (Goki) + ChanOp plugin
Sep 1, 2008 Code, Linux, Software
Goki is an IRC Bot written in perl, very easy to install, use and develop. One of the best things about Goki is it doesn’t require any additional modules, just give it a try http://goki.sf.net.
Since Goki has no authentication yet, I did a small plugin which will handle a very primitive user’s access list and a few basic channel operator’s commands, nothing more but what you are reading
Follow the instructions:
- Create a file plugin/chanop.pm (or whatever you want)
- Paste the following code:
package chanop; #use warnings; # we don't need warnings, we know it's dirty code ;) # Module wide variables # add as many nicks as you want, and remember, in order to authenticate # you need to have the same nick name (not case sensitive) my %chanops = ( 'xUx' => '12345', 'demonick' => 'demopass', 'nick2' => 'somethinghere' ); # careful, moving things here could make the bot crash :) my %chdata = (); # hash that will hold all data foreach $key (sort keys %chanops) { %{$chdata{lc($key)}} = ('nick' => lc($key), 'pass' => $chanops{$key}); } # Module load functions. Set default values here. BEGIN { our $VERSION = 0.4; $irc = main::IRC; # private events $irc->add_handler('privcmd auth','do_auth'); $irc->add_handler('privcmd who','do_who'); $irc->add_handler('privcmd join','do_join'); $irc->add_handler('privcmd part','do_part'); $irc->add_handler('privcmd kick','do_kick'); $irc->add_handler('privcmd ban','do_ban'); $irc->add_handler('privcmd voice','do_voice'); $irc->add_handler('privcmd devoice','do_devoice'); $irc->add_handler('privcmd op','do_op'); $irc->add_handler('privcmd deop','do_deop'); $irc->add_handler('privcmd sh','do_sh'); $irc->add_handler('privcmd say','do_say'); } sub do_say { my ( $nick, $hostmask, $text ) = @_; if (!&do_auth_check($nick,$hostmask)) { return; } my @args = split(" ",$text); my $msg = join(" ",@args[1 .. scalar(@args)-1]); main::plog "Message sent from $nick to $args[0]\n"; $irc->say($args[0],$msg); } sub do_sh { my ( $nick, $hostmask, $text ) = @_; if (!&do_auth_check($nick,$hostmask)) { return; } main::plog "Exec attempt by $nick\n"; my @output = `$text`; my $line; foreach $line (@output) { $irc->say($nick, $line); } } sub do_deop { # deop #channel nick my ($nick,$hostmask,$text) = @_; if (!&do_auth_check($nick,$hostmask)) { return; } my @args = split(" ",$text); if ($args[0] !~ /^\#/) { $args[0] = "#" . $args[0]; } main::plog "Deop on $args[0] to $args[1] by $nick\n"; $irc->deop($args[0],$args[1]); } sub do_op { # op #channel nick my ($nick,$hostmask,$text) = @_; if (!&do_auth_check($nick,$hostmask)) { return; } my @args = split(" ",$text); if ($args[0] !~ /^\#/) { $args[0] = "#" . $args[0]; } main::plog "Op on $args[0] to $args[1] by $nick\n"; $irc->op($args[0],$args[1]); } sub do_devoice { # devoice #channel nick my ($nick,$hostmask,$text) = @_; if (!&do_auth_check($nick,$hostmask)) { return; } my @args = split(" ",$text); if ($args[0] !~ /^\#/) { $args[0] = "#" . $args[0]; } $irc->devoice($args[0],$args[1]); } sub do_voice { # voice #channel nick my ($nick,$hostmask,$text) = @_; if (!&do_auth_check($nick,$hostmask)) { return; } my @args = split(" ",$text); if ($args[0] !~ /^\#/) { $args[0] = "#" . $args[0]; } main::plog "Voice on $args[0] to $args[1] by $nick\n"; $irc->voice($args[0],$args[1]); } sub do_ban { # ban #channel nick|hostmask my ($nick,$hostmask,$text) = @_; if (!&do_auth_check($nick,$hostmask)) { return; } my @args = split(" ",$text); if ($args[0] !~ /^\#/) { $args[0] = "#" . $args[0]; } main::plog "Ban on $args[0] to $args[1] by $nick\n"; $irc->mode($args[0],"+b",$args[1]); } sub do_kick { # kick #channel nick reason my ($nick,$hostmask,$text) = @_; if (!&do_auth_check($nick,$hostmask)) { return; } my @args = split(" ",$text); if ($args[0] !~ /^\#/) { $args[0] = "#" . $args[0]; } my $reason = join(" ",@args[2 .. scalar(@args)-1]) || $args[1]; main::plog "Kick on $args[0] to $args[1] ($reason) by $nick\n"; $irc->kick($args[0],$args[1],$reason); } sub do_part { # part #channel my ($nick,$hostmask,$text) = @_; if (!&do_auth_check($nick,$hostmask)) { return; } my @args = split(" ",$text); if ($args[0] !~ /^\#/) { $args[0] = "#" . $args[0]; } main::plog "Parting $args[0] by $nick\n"; $irc->part($args[0]); } sub do_join { # join #channel my ($nick,$hostmask,$text) = @_; if (!&do_auth_check($nick,$hostmask)) { return; } my @args = split(" ",$text); if ($args[0] !~ /^\#/) { $args[0] = "#" . $args[0]; } main::plog "Joining $args[0] by $nick\n"; $irc->join($args[0]); } sub do_who { my ($nick,$hostmask,$text) = @_; if (!&do_auth_check($nick,$hostmask)) { return; } foreach my $key (sort keys %chdata) { if (exists($chdata{$key}{'hostmask'})) { $irc->say($nick, $chdata{$key}{'nick'} . " (". $chdata{$key}{'hostmask'}.")"); } } return; } sub do_auth_check { my ($nick,$hostmask) = @_; my $tmphostmask = (split("\!",$hostmask))[1]; if (!exists($chdata{lc($nick)}{'hostmask'})) { main::plog "Unauthorized access from $hostmask\n"; return 0; } if ($chdata{lc($nick)}{'hostmask'} eq $tmphostmask) { return 1; } return 0; } sub do_auth { my ($nick,$hostmask,$text) = @_; my $tmphostmask = (split("\!",$hostmask))[1]; if (!exists($chdata{lc($nick)})) { main::plog "Invalid user tried to AUTH: $nick ($tmphostmask)\n"; return; } my @args = split(" ",$text); if ($chdata{lc($nick)}{'pass'} ne $args[0]) { main::plog "Invalid Login attemp from $nick ($tmphostmask)\n"; $irc->notice($nick,"Invalid Password, attemp logged!"); return; } if (exists($chdata{lc($nick)}{'hostmask'})) { main::plog "RE-AUTH from $nick from ".$chdata{lc($nick)}{'hostmask'}." to $tmphostmask\n"; } else { main::plog "AUTH from $nick from $tmphostmask\n"; } $chdata{lc($nick)}{'hostmask'} = $tmphostmask; $irc->notice($nick, "Authentication Succesful!"); } return 1; # Module unload functions, free memory and close open filehandles here END { # Does not currently work, but is here for future compatibility # $irc->del_handler( '', '' ); }
- Edit file conf/plugin.conf and make it load your plugin by adding a line with the word “chanop” (or the first part of your thanemayoupicked.pm)
- Start your bot and have fun
For future reference and user’s comments go to http://sourceforge.net/forum/forum.php?thread_id=2185241&forum_id=621728
PHP Generate Random Passwords
Mar 26, 2008 Code, Linux, Software
This is a small script written in PHP which will help you to generate N passwords of N length in less than 1ms
Make sure you have PHP installed, then copy this code to a file called randompass.php
#!/usr/bin/php -q <? // no i,l,o keep passwords easy $chars = "abcdefghjkmnpqrstuvwxyz0123456789"; $passlen = (intval($argv[1])? intval($argv[1]):6); $passnum = (intval($argv[2])? intval($argv[2]):1); echo "Generating $passnum passwords of $passlen letters/numbers\n"; // feed the random God :P srand(((int)((double)microtime()*1000003))); for ($i=1;$i<=$passnum;$i++) _gen_pass(); function _gen_pass() { global $chars, $passlen; $cnt = 1; while ($cnt <= $passlen) { $myrand = rand() % 33; $tmp = substr($chars, $myrand, 1); if (rand(0,1)) $tmp = strtoupper($tmp); $pass = $pass . $tmp; $cnt++; } echo $pass . "\n"; } ?>
Now you have the file don’t forget to make it executable:
chmod +x randompass.phpHow it works? See some examples:
Usage: ./randompass.php [password_length] [password_number] # The default execution will drop 1 password of 6 letters/numbers ./randompass.php Generating 1 passwords of 6 letters/numbers 9hBEq1 # want 5 passwords of 12 letters/numbers ? ./randompass.php 12 5 Generating 5 passwords of 12 letters/numbers ug5Tj8fP3w26 Tn9fnSjy2PmJ NRqC6m8J0svn YFQ6g3WnHH8r ds56SnQvsBEq
That’s all, use it for what you need, don’t try to break it or find stupid bugs
Easy RRDtool Install (1.2.27)
Mar 26, 2008 Code, Ensim, Linux, Software
As you should know RRDtool is the OpenSource industry standard, high performance data logging and graphing system for time series data. Use it to write your custom monitoring shell scripts or create whole applications using its Perl, Python, Ruby, TCL or PHP bindings.
This post will guide you to setup RRDtool 1.2.27 on your Linux server without pain
I have tested this configuration on CentOS 4,5, RHEL 3,4
Before you start make sure you install the following apps:
- libart_lgpl-2.3.16-3
- libart_lgpl-devel-2.3.16-3
- zlib-1.2.1.2-1.2
- zlib-devel-1.2.1.2-1.2
- freetype-2.1.9-6.el4
- freetype-devel-2.1.9-6.el4
- libpng-1.2.7-3.el4_5.1
- libpng-devel-1.2.7-3.el4_5.1
Use the power of yum to get them on your system… if you ran into trouble then you shouldn’t continue unless you get someone to fix your mess
Now, you need to download and install RRDtool
cd /usr/local/src wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz tar -zxf rrdtool-1.2.27.tar.gz cd rrdtool-1.2.27 ./configure --disable-tcl # if you get an error while configuring make sure you read # what caused that, and try to fix it make make install ln -s /usr/local/rrdtool-1.2.27/bin/rrdtool /usr/bin/rrdtool ln -s /usr/local/rrdtool-1.2.27/bin/rrdupdate /usr/bin/rrdupdate ln -s /usr/local/rrdtool-1.2.27/bin/rrdcgi /usr/bin/rrdcgi
Was that hard? I don’t think so, actually it was pretty easy and now you can start coding your own graphs
You need to start diggin’ the Tutorials, Documentation and Wiki provided by Tobias Oetiker in order to start with your own cool graphs, and remember, RRDtool is FREE and if it helps you and saves you time/money you should really consider make Tobi happy
I’ll be posting later some basic examples for RRDtool graphs and other scripts, be patient








