Syed Jahanzaib Personal Blog to Share Knowledge !

November 16, 2011

MySQL DB & HTML files Backup Script

backup using bashs cript


Following is a customized backup script [Tested with Ubuntu 12/16] to create backup of your mysql DB and HTML files in local storage & on cloud using DROPBOX (make sure you have dropbox running),

This script will EXCLUDE data in radacct and radacct_archive tables. It will only export table structure without data. to reduce database size, you can modify this function.

NOTE: Using S.S.D disk (or raid) are highly recommended as there are less chances of  media failure, and above all read/write rates is incredibly fast. Plus If you have configured RAID , then it will provide redundancy as well.

Modify the script as per your requirements …

  • I am using KANNEL as sms gateway & sendEmail app to send email via GMAIL.
  • It will add some logs in /var/log/syslog
  • It will make a copy of files in /root/Dropbox folder
  • It will take backup of RADIUS Database excluding radacct , only radacct structure will be exported (to save disk space by lower size of backup)
  • It will also check mysql Service & DB status, if it found inaccessible, it will send email
  • It will also delete files older than 20 days from /backup & root/Dropbox folder
  • It will check File size, if Less than 1 byte it will alert, modify it as required
  • all backups will be saved in /backup & /root/Dropbox folder [dropbox if exists]
  • In the end, It will send email and SMS with details

As usually, like all other scripts of mine it contains lots of junk. Please be-aware that I sometimes modify this file as per network requirements, so you may see revisions in this file. This is just an sample dummy, you can add remove any function in this script as per your requirements 🙂 ~ zaib

Let’s Start …

First create temp folder and create script in it.

mkdir /temp
cd /temp
chmod +x

Now open the file

nano /temp/

and paste the following code.

#set -x
# Version 1.1 / 10th January, 2014
# Last Modified / 10-MARCH-2019
# Syed Jahanzaib / Web: / Email:
# This script creates FULL Backup of MySQL DB (Radius) and MYSQL DBR related DATA files.
# We can adjust it to do incremental basis backup too, but I based on my personnel experiences, I prefer to have FULL backup instead of incremental,
# Because you never know what you will going to need in case of disaster recovery
# Adjust below DATA fields accordingly. remove / add desired folders.
# Settings various VARIABLES for the script
# Colors Config ... [[ JZ ... ]]
# IF YOU HAVE FEDORA or CENTOS or new verison of UBUNTU, Change the /var/www to /var/www/html/
# Following is only RADIUS HTML FILES, mysqldb is separate from this, will come later in the script with /usr/bin/mysqldump
TARGET="/var/www /sql_backup /etc/freeradius /etc/mysql"
CMD="mysql -u$SQLUSER --skip-column-names -s -e"
set $(date)
time=`date |awk '{print $4}'`
DT=`date +%d.%b.%Y_time_%H.%M.%S`
DATE=$(date +%Y-%m-%d)
DT_HMS=$(date +'%H:%M:%S')
TODAY=$(date +"%Y-%m-%d")
TODAYYMD=`date +"%d-%b-%Y"`
#Get ip which have default route
IPADD=`ip route get 1 | awk '{print $NF;exit}'`
logger Backup of mysqldb / html SCRTIP has been started @ $DATE / $DT_HMS
# Adding OS level Details in email message
# disk we want to monitor, make sure to change this
DISK=`df -h | sed -n 2p | awk '{print $1}'`
# Get DB size in MB
MYSQLDBSIZE=`mysql -u$SQLUSER --skip-column-names -e "SELECT table_schema "$DB", sum(data_length + index_length)/1024/1024 FROM information_schema.TABLES WHERE table_schema='radius' GROUP BY table_schema;" | cut -f1 -d"." | sed 's/[^0-9]*//g'`
SESSIONS=`mysql -u$SQLUSER --skip-column-names -e "use radius; SELECT username FROM $SQL_ACCOUNTING_TABLE WHERE acctstoptime IS NULL;" |wc -l`
DISKTOT=`df -h $DISK |awk '{print $2}'| sed -n 2p`
DISKUSED=`df -h $DISK |awk '{print $3}'| sed -n 2p`
DISKAVA=`df -h $DISK |awk '{print $4}'| sed -n 2p`
DISKUSEPER=`df -h $DISK |awk '{print $5}'| sed -n 2p`
MEMTOT=`free -m |awk '{print $2}'| sed -n 2p`
MEMUSED=`free -m |awk '{print $3}'| sed -n 2p`
MEMAVA=`free -m |awk '{print $4}'| sed -n 2p`
MEMUSEDPER=`free -m | grep Mem | awk '{print $3/$2 * 100.0}'`
MEMAVAPER=`free -m | grep Mem | awk '{print $4/$2 * 100.0}'`
#Update script execution Time Stamp / specific to PAKRAD billing system made by jz
#$CMD "use $DB; insert into scripts_exec (script_name, lastupdate) VALUES('','$TODAY $DT_HMS') on duplicate key update lastupdate='$TODAY $DT_HMS';"
#GMAIL Details
# KANNEL SMS Gateway - Details if you want to send SMS


# START the BACKUP PROCESS ... #######
# Start counting start time
start_time=`date +%s`
echo "
Welcome ! This is mysql and html Backup Script,it wil backup following folders ... > $TARGET
It will EXCLUDE radacct & radacct_archive folder from the backup to ensure file size of Backup folder is lower
Powered by JZ
# Checking if $SAVEDIR_FULL folder is previously present or not ...
if [ ! -d "$SAVEDIR_FULL" ]; then
echo "- $SAVEDIR_FULL folder not found, Creating it so all backup's should be placed there ... "
echo "- $SAVEDIR_FULL folder is already present , so no need to create it, Proceeding further ... "

# Checking if $SQL_DIR folder is previously present or not ...
if [ ! -d "/$SQL_DIR" ]; then
echo "- /$SQL_DIR folder not found, Creating it so MSQL EXPORT/DUMP backup should be placed there ... "
mkdir /$SQL_DIR
echo "- /$SQL_DIR folder is already present , so no need to create it, Proceeding further ..."

# Check if $SRV (in this case mysql) is running or not, if NOT, then exit the script
SRVSTATUS=`service $SRV status |grep running |wc -l`
if [ "$SRVSTATUS" -ne 1 ];
#if [ -z "$SRVSTATUS" ];

# SRV down EMail BODY
echo "- ALERT:

- $SRV not responding ***

Exiting ..." > $SRVDOWNEMAIL
sendemail -t $email -u "ALERT: $HOSTNAME - $IPADD - $SRV NOT RESPONDING CHECK - $DATE $DT" -o tls=yes -s $SMTP -t $ADMINMAIL1 -xu $GMAILID -xp $GMAILPASS -f $GMAILID -o message-file=$SRVDOWNEMAIL -o message-content-type=text
sendemail -t $email -u "ALERT: $HOSTNAME - $IPADD - $SRV NOT RESPONDING CHECK - $DATE $DT" -o tls=yes -s $SMTP -t $ADMINMAIL2 -xu $GMAILID -xp $GMAILPASS -f $GMAILID -o message-file=$SRVDOWNEMAIL -o message-content-type=text
exit 1
echo "- $SRV service is accessible OK. Proceeding further ..."

# Check if $DB (in this case radius )is accessible or not, if NOT, then exit the script
if [ "$RESULT" != "$DB" ]; then
echo "- ALERT: $HOSTNAME - $IPADD - DB $DB not accessible/exists - $DATE $DT"
echo "- ALERT: $HOSTNAME - $IPADD - DB $DB not accessible/exists - $DATE $DT" >>$SYSLOG
echo "- ALERT: $HOSTNAME - $IPADD - DB $DB not accessible/exists - $DATE $DT" >>$DBDOWNEMAIL

# DB down EMail BODY
echo "- ALERT:

- Service $SRV is OK BUT
- Database $DB not accessible/exists ***

Exiting ..." > $DBDOWNEMAIL
sendemail -t $email -u "ALERT: $HOSTNAME - $IPADD - DB $DB not accessible/exists - $DATE $DT" -o tls=yes -s $SMTP -t $ADMINMAIL1 -xu $GMAILID -xp $GMAILPASS -f $GMAILID -o message-file=$DBDOWNEMAIL -o message-content-type=text
sendemail -t $email -u "ALERT: $HOSTNAME - $IPADD - DB $DB not accessible/exists - $DATE $DT" -o tls=yes -s $SMTP -t $ADMINMAIL2 -xu $GMAILID -xp $GMAILPASS -f $GMAILID -o message-file=$DBDOWNEMAIL -o message-content-type=text
exit 1
echo "- $DB - database exist OK. Proceeding further ..."

echo "
sleeping 10 seconds so that you can stop if you want ...
also it will perform radacct trimming as well
Powered by Syed.Jahanzaib
#sleep 5

$CMD "use $DB; create table if not exists radacct_archive LIKE radacct;"
# --- Copy data from CURRENT radacct table to new radacct_archive table (for archive purposes)
$CMD "use $DB; INSERT INTO radacct_archive SELECT * FROM radacct WHERE acctstoptime is not null;"
# --- Now Delete data from CURRENT RADACCT table so that it should remain fit and smart ins size
$CMD "use $DB; DELETE FROM radacct WHERE acctstoptime is not null;"
# --- Now Delete data from RADACCT_ARCHIVE table so that it should not grow either more then we required i.e 1 Year - one year archived data is enough IMO
$CMD "use $DB; DELETE FROM radacct_archive WHERE date(acctstarttime)  (CURDATE() - INTERVAL 1 DAY);"

# Creating MYSQL dump of databases & ignore DATA inside some tables
/usr/bin/mysqldump -u$SQLUSER --ignore-table={$DB.radacct,$DB.radacct_archive} $DB > /$SQL_DIR/$SQL_FILE
/usr/bin/mysqldump -u$SQLUSER --no-data $DB radacct >> /$SQL_DIR/$SQL_FILE
/usr/bin/mysqldump -u$SQLUSER --no-data $DB radacct_archive >> /$SQL_DIR/$SQL_FILE

# Check mysql File Size, if its less than 1 byte, consider it invalid
SIZE=`ls -lh /$SQL_DIR/$SQL_FILE | awk '{print $5}'`
SIZEB=`ls -l /$SQL_DIR/$SQL_FILE | awk '{print $5}'`
if [ $SIZEB -lt 1 ]
echo "SQL file size is invalid"
echo "SQL file size is invalid" >> $SYSLOG
echo "SQL file size is OK"
echo "SQL file size is OK" >> $SYSLOG

# GZIP MYSQL D.B & all other files like html etc
echo " - TAR Compressing all Backup Folders to $SAVDIR_FULL ... "

# Delete duplicate backup files .sql and .tgz from current folder to avoid file duplication
if [ -f $SQL_FILE ]; then
echo "- Deleting $SQL_FILE to avoid duplication"
if [ -f $FINAL_TAR_FILE ]; then
echo "- Deleting $FINAL_TAR_FILE to avoid duplication"

# Deleting sql db from $SQL_DIR because its zipped with the above command already and now all data available in single file : )
if [ -d "/$SQL_DIR" ]; then
rm -fr /$SQL_DIR
# Print END time
echo "
- Backup ended at $6-$2-$3 Time $time .
echo "- Backup completed to $SAVEDIR_FULL ...
echo "- Backup ended at $6-$2-$3 Time $time ...
end_time=`date +%s`

# Delete files older then 20 days
echo "- Deleting Older files than 20 Days from $SAVEDIR_FULL and $DROPBOX (if any) to save disk space ..."
if [ -d "$SAVEDIR_FULL" ]; then
find $SAVEDIR_FULL/* -mtime +20 -exec rm {} \;

# Delete files older then 20 days
if [ -d "$DROPBOX" ]; then
echo "- DROPBOX $DROPBOX folder found, making backup file copy in $DROPBOX too ... "
echo "- Deleting Older files then 20 days from $DROPBOX, to save disk space ..."
find $DROPBOX -mtime +20 -exec rm {} \;
# Print Complete Timings
echo "- Backup script completion Time was `expr $end_time - $start_time` s. "

SIZE=`ls -lh $SAVEDIR_FULL/$FINAL_TAR_FILE | awk '{print $5}'`
SIZEB=`ls -l $SAVEDIR_FULL/$FINAL_TAR_FILE | awk '{print $5}'`
if [ $SIZEB -lt 1 ]
echo "- Final tgz Backup file size is invalid"
echo "- Final tgz Backup file size is invalid" >> $SYSLOG
echo "- Final tgz Backup file size is OK"
echo "- Final tgz Backup file size is OK" >> $SYSLOG

# List files created Today & TRIM its reulst
LIST=`ls -lh $SAVEDIR_FULL --time-style=+"%d-%b-%Y" |grep $TODAYYMD | awk '{print $5,$6,$7}' | column -t`

#Email File with all details
echo "Mysql/HTML Backup Info for


RADIUS Online Users = $SESSIONS Users

Total Disk Space = $DISKTOT
Total Disk Space Used = $DISKUSED
Total Disk Space Available = $DISKAVA
Total Disk Space = $DISKUSEPER

Total RAM Used = $MEMUSED MB
Total RAM Available = $MEMAVA MB
Total RAM Used Percent = $MEMUSEDPER %
Total RAM Available Percent = $MEMAVAPER %

- List of files created in Today's Date [$TODAY]


- Target Folders = $TARGET
- Size = $SIZE
- Backup Time = `expr $end_time - $start_time` s.

Powered by JZ" > $EMAILMSG

#SMS file with lesser details
echo "$HOSTNAME - Backup Info
Size = $SIZE
Bkp Time = `expr $end_time - $start_time` s.
Powered by JZ" > $SMSMSG

echo "- Job Log for:
# Print Fetched Information on Screen , for info to see

# EMAIL SECTION ##############
# Make sure you install sendEMAIL tool and test it properly before using email section.
#SEND EMAIL Alert As well using sendEMAIL tool using GMAIL ADDRESS.
# If you want to send email , use below ...
echo " - Sending SMS/EMAIL ALERT ..."
#curl "http://$KHOST/cgi-bin/sendsms?username=$KID&password=$KPASS&to=$CELL1" -G --data-urlencode text@$SMSMSG
sendemail -t $email -u "$HOSTNAME - $IPADD - mySQL Backup - $DT / Size=$SIZE" -o tls=yes -s $SMTP -t $ADMINMAIL1 -xu $GMAILID -xp $GMAILPASS -f $GMAILID -o message-file=$EMAILMSG -o message-content-type=text
sendemail -t $email -u "$HOSTNAME - $IPADD - mySQL Backup - $DT / Size=$SIZE" -o tls=yes -s $SMTP -t $ADMINMAIL2 -xu $GMAILID -xp $GMAILPASS -f $GMAILID -o message-file=$EMAILMSG -o message-content-type=text
# Print Credits : )
echo "

- Syed Jahanzaib / / "
DATE=$(date +%Y-%m-%d)
DT_HMS=$(date +'%H:%M:%S')
# log entyr in /var/log/syslog
logger Backup of mysqldb / html have been end @ $DATE / $DT_HMS

Now execute this script  & see if any error occurs




To run this file on daily basis (at 00:00 hours),
Open terminal, (make sure you are logged in with the root user.

crontab -e

(if it asks for text editor, select nano ,)

Now paste following code …

@daily  /temp/  >/dev/null 2>&1  # Run Daily in night at 00:00 hours

or if you want to run it every 6th hours (and on 15th minute) use following

# Run backup at 4:30 am in morning
#30 00 * * * /temp/ >/dev/null 2>&1

# Run backup at 15th minute every 6th hours
15 */6 * * * /temp/ >/dev/null 2>&1

Save & Exit:

Now, based on above selection, cron job will run this command at selected scheduled timings and clear any memory cache

TIP: Remove files older than xx days

When you will implement this script, it will backup every day, and continue to do so, and its a good idea to remove backup files older then 1 month, to save disk space otherwise one day it will chew whole disk space 😀
You can add following in the same backup script at end, so that whenever it will execute backup script, it will delete older files too

echo Deleting Older files then 30 days, to save disk space
# echo Deleting Older files then 30 days, to save disk space  >> /var/log/fullbackup.log
find /backup/* -mtime +30 -exec rm {} \;

 > SCRIPT   EXECUTION   RESULT … [old sample result]



> EMAIL   ALERT   EXECUTION … [13-dec-2017 live sample]


mail backup sample

> SMS   ALERT   EXECUTION … [old sample]


2016-05-29 05.32.34

Syed Jahanzaib

September 6, 2011

Mikrotik Voucher Template !

Filed under: Mikrotik Related — Tags: , , , , , , , — Syed Jahanzaib / Pinochio~:) @ 1:57 PM

It would be great If MIKROTIK adds feature in USER MANAGER (UM) of adding serial numbers with each ID, So that we can print voucher with serial numbers, and can search ids by corresponding serial number.

I have customized the following vouchers but unable to add serial number.
I am working on MS ACCESS program to import ids passwds from .CSV file ,
then print it using my customized templates and add serial number to each id and store it in its database to prevent Duplication, and also add search function by serial. I will publish it soon.

Voucher Display Sample I am currently using

Mikrotik Voucher Sample

HOWTO Use this template to Print Vouchers for Single or Batch Users !!

First login to your user manager e.g
Now to use the template, goto Settings / Templates and in ROW section box, select all and delete , now paste the complete template in this box. and click on SAVE button.

Now we will add Batch Users (Add Users in Bulk).
Goto Users / Add / Batch Users. Select your desired options and click on ADD.

Now we will Generate Voucher file to print. (html format)
(See Following Image)

Click on DOWNLOAD AS FILE and click Generate. It will then download the vouchers.html file and you can print it.

Following is the Template Code:

<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>User Manager Voucher Page - By Syed Jahanzaib</title>
<meta name="description" content="User Manager Voucher Page - By Syed Jahanzaib">
<meta name="Microsoft Theme" content="none, default">

<body background="" topmargin="5" leftmargin="5" style="background-attachment: fixed">

<table style="color: black; font-size: 11px;" border="2" align="left" width="286" height="300" cellspacing="0" cellpadding="0" id="table1"> <tr>
<td colspan="2" height="69">
<p align="center">
<font size="1">
<img border="0" src="" width="107" height="67"></font></p>
</td> </tr> <tr height="5px">
<td colspan="2">
<p align="center"><u><b><font color="#0000FF" size="3">Package:
<font size="2" face="Arial">
<p align="center"><font size="2" face="Arial Black">Price</font></td>   </font>   <td>
<p align="center"><font size="2" face="Arial Black" color="#FF0000">%u_moneyPaid%</font></td>
<font size="2" face="Arial Black">
<p align="center">Prepaid time:</td>   <td>
<p align="center"><font color="#FF0000" face="Arial Black" size="2"><b>%u_timeLeft%</b></font></td>
<tr>   <td>
<font size="2" face="Arial Black">
<p align="center">Login:</td>   <td>
<p align="center"><font color="#FF0000"><b>
<font size="2" face="Arial Black">%u_username%</font></b></font></td>   </tr>
<font size="2" face="Arial">
<p align="center"><font size="2" face="Arial Black">Password:</font></td>   <td>
<p align="center">
<font face="Arial Black" color="#FF0000"><b><font size="2">%u_password%</font></b></font></td>
<tr height="20px">
<td colspan="2">
<p align="center"><b><u><font size="2" color="#0000FF">~ Howto Use
This Voucher ~</font></u><font color="#008000" size="2"><u><br>
</u></font></b><font size="2" color="#008000">Please open
<a href="http://ftp.local">http://ftp.local</a> and download <br>
aa-dialer.exe &amp; install it. After installation its icon will appear
on Desktop. Double click on it, and use the above mentioned ID and
Password&nbsp; to connect to the internet .<br>
</font><font size="2" face="Arial Black" color="#FF0000">This ID will
expire in 30 days after its first usage.</font><font size="2" color="#008000"><br>
</font><b><font size="2">Thank You For Choosing AA~Services</font></b></td></tr> <tr>
<td colspan="2" align="right" height="50">
<p align="center"><b><font size="1">AA Network Services</font></b><font size="1"><br>
Support : 92.333.3021909<br>
Web <a href=""></a> </font></td> </tr> </table>


Note: I used 2 images, one is logo, second is background image, Both files are residing on the Local web server. You have to modify these links and files name to match according to your structure.



August 9, 2011

July 5, 2011

A Success story with Mikrotik and DMASoftlab RADIUS MANAGER [Glass Line Pvt Ltd.] June, 2011

Article by Syed Jahanzaib !

Recently I was contacted by a friend who was really passionate in starting a mini-ISP type network setup for about 3000 users in the interior area of city. (soon it may expand up to 5000+ users). He asked my help to setup a scratch card base fully automatic system where user purchase scratch card, & using User self care portal web site, user may create his new ID or refresh his previous ID or change the service package according to the card package offers. I had previously setup this kind of scenario in a environment using Mikrotik built-in radius server called ‘User Manager’, but it have very limited basic features and all it can offer was a pre-paid type option and it doesn’t have many accounting features. So I thought I should give a try to more rich feature radius server and after a lot of googling i decided to go with  (FREERADIUS base ) DMASOFTLAB RADIUS MANAGER. A very famous radius server with all the option that a mini-ISP would required at unbelievably low price.

The hardware that I have used for this setup.

*Main Mikrotik = v4.17 x86 / Xeon 3.6Ghz Dual / 2 GB Ram / WD 500 GB Sata Hdd , This MT is serving as a PPPoE Server + NAT + bandwidth shaping. It also redirects HTTP traffic to Proxy server.

* Mikrotik RB750 = Just for HOTSPOT to redirect users to self care portal.
(This can be done on Main MT also, but I prefer it this way)

* Radius Server = DMASoftlab RM v3.9 installed on Fedora v10 / Xeon 3.6Ghz Dual / 4 GB Ram / WD 500 GB x2 Sata Hdd

* SQUID PROXY GW = SQUID v2.7 on UBUNTU Karmic Koala v9.10 / Xeon 3.6Ghz Dual / 8 GB Ram / WD 500 GB x3 SATA HDD (2 HDD reserved for Cache), This server acts as a proxy + Gateway machine for the Mikrotik, It also do URL Filtering blocking ads, it also have ZPH enabled so content available in squid cache should be downloaded at full speed (without package limitation) at user end. It also cache youtube videos using VIDEOCACHE.

* Linux Transparent BRIDGE firewall + DHCP + DNS + MRTG + WEB Server on FEDORA V10 / Xeon 3.6Ghz Dual / 4 GB Ram / WD 500 GB SATA HDD, This server sits between Mikrotik and Users , filtering unwanted traffic, ports and do some other stuff like lightweight DNSMASQ DNS Server,  DHCP server providing ips to users , Web Site with MRTG , Psychostats ranking system for Counter Strike Game, Server Monitoring Scripts and Alerts, PHPBB Forums for Users, and some other cool stuff. DNS+DHCP is hosted on this server to minimize load on main mikrotik machine, alos this machine filters unwanted traffic from passing by to main mikrotik.

In this setup , I have configured HOTSPOT on extra RB750 only to redirect user to my advertisement page, where he is informed that he is not logged in via dialer, either create / refresh his ID from RM User Self Care Portal, or if he already have an id, connect it via dialer. I don’t prefer HotSpot authentication due to various security reasons, mainly due to I had a very bad experience having HOTSPOT hit by ARP-POISONING and many virus flooder that requires default gateway.

When user first login , his PC MAC address is binded with his ID to prevent accessing it from different pcs. Multiple session of same ID is NOT allowed , I provide user with scratch card (with refill code) , which he can use to refill his account according to card amount/package from RM User self care portal. RM demo can be viewed at

When users with pppoe dialer tries to connect to main Mikrotik, MT verifies its credentials by asking Radius Server for the account validity, if the ID is valid, user connects okay and can use internet , otherwise he gets disconnected. When the User account is expired, he still can login via dialer, but then he is redirect to my local web server page where he is informed that his account is expired and he should visit billing.local page to renew his account using the card.

Please find along with attachment is my Network Diagram (This was initially designed, I made few changes afterward, I removed FTP from MT DMZ to user subnet lan to avoid load on MT , I moved ftp OS from windows to Linux and integrate it with radius authentication using APACHE.

Some other entertainment services that I setup here were:
2 FTP Media Sharing Servers ( 4 TB of data )
2 Live TV Channel streaming over LAN using VLC Media Player Broadcasting
1 Counter Strike 1.6 Dedicated Server with Psychostats Ranking System and adminmod/amxmod
1 Web Server (Ubunut) hosting site u-dear . com , an entertainment portal and hosting other features. It also features monitoring system with MRTG / SMS Alerts via attached Mobile.

About RM: Radius Manager uses a nice web interface for administering the users and the whole system (traffic accounting, tracking of online users, display statistics, maintenance ,account management etc.).

and to add that DMASoftlab customer support guys (specially Mr. Viktor.K) have excellent support and respond instantly even to the dumbest of questions. It is real value for money especially for those who do not have big wallet$.

Network Diagram Layout : (Complete setup guide can found at

GLASSLINE-Network-Presentation-by-zaib Update 03/08/2001

%d bloggers like this: