generate awstats scripts

This script assumes the following
1) you ahve install the awstat package in the folloing /usr/local/src/*
2) this script will add the cron job to run the perl- update -wasstat script every day  located at "/etc/cron.daily/awstatsupdate
3 you have a folder called /websites/domain.com/webstats and /websites/domain.com/web/awstats 
 
#!/bin/bash


echo -e " enter the domain to generate webstats "
read d

domain_user=` echo $d |sed s/\.com/com2631/g `
tmp_name=` echo $d |sed s/\.com//g `


if [ -d /websites/"$d" -a -d /websites/"$d"/webstats   ]; then
echo -e "awstats exist for this $d exist "
else
echo -e "generating awstats for $d "
mkdir /websites/"$d"/webstats

chown "$domain_user":"$domain_user"  /websites/"$d"/webstats

cp -R /usr/local/src/awstats-6.7/* /websites/"$d"/webstats

echo -e "copying source dir to the webstats dir"
sleep 2

cp /websites/"$d"/webstats/wwwroot/cgi-bin/awstats.model.conf  /websites/"$d"/webstats/wwwroot/cgi-bin/awstats."$tmp_name".sys.qualiproj.qualispace.com.conf
sleep 2  

  if [ -d /websites/"$d"/web/awstats ];then
echo -e "/web/awstats  exist "
exist 1
  else
echo -e "creating awstats"
sleep 2
mkdir /websites/"$d"/web/awstats
    fi

chown "$domain_user":"$domain_user"  /websites/$d/web/awstats
cp -R /websites/"$d"/webstats/wwwroot/icon    /websites/"$d"/web/awstats/

config_file="/websites/$d/webstats/wwwroot/cgi-bin/awstats.$tmp_name.sys.qualiproj.qualispace.com.conf"

cat >> $config_file << _eof_
LogFile="/websites/"$d"/logs/$tmp_name.sys.qualiproj.access_log"
LogType=W
LogFormat=1
LogSeparator=" "
SiteDomain="$tmp_name.sys.qualiproj.qualispace.com"
HostAliases="www.$tmp_name.sys.qualiproj.qualispace.com agnello.sys.qualiproj.qualispace.com localhost 127.0.0.1 "
DNSLookup=1
DirData="/websites/$d/webstats"
DirCgi="/cgi-bin"
DirIcons="/web/awstats/icon"
AllowToUpdateStatsFromBrowser=0
AllowFullYearView=2
EnableLockForUpdate=0
DNSStaticCacheFile="dnscache.txt"
DNSLastUpdateCacheFile="dnscachelastupdate.txt"
SkipDNSLookupFor=""
AllowAccessFromWebToAuthenticatedUsersOnly=0
AllowAccessFromWebToFollowingAuthenticatedUsers=""
AllowAccessFromWebToFollowingIPAddresses=""
CreateDirDataIfNotExists=0
BuildHistoryFormat=text
BuildReportFormat=html
SaveDatabaseFilesWithPermissionsForEveryone=0
PurgeLogFile=0
KeepBackupOfHistoricFiles=0
DefaultFile="index.html"
SkipHosts=""
SkipUserAgents=""
SkipFiles=""
SkipReferrersBlackList=""
OnlyHosts=""
OnlyUserAgents=""
OnlyFiles=""
NotPageList="css js class gif jpg jpeg png bmp ico swf"
ValidHTTPCodes="200 304"
ValidSMTPCodes="1 250"
AuthenticatedUsersNotCaseSensitive=0
URLNotCaseSensitive=0
URLWithAnchor=0
URLQuerySeparators="?;"
URLWithQuery=0
URLWithQueryWithOnlyFollowingParameters=""
URLWithQueryWithoutFollowingParameters=""
URLReferrerWithQuery=0
WarningMessages=1
ErrorMessages=""
DebugMessages=0
NbOfLinesForCorruptedLog=50
WrapperScript=""
DecodeUA=0
LevelForBrowsersDetection=2
LevelForOSDetection=2
LevelForRefererAnalyze=2
LevelForRobotsDetection=2
LevelForSearchEnginesDetection=2
LevelForKeywordsDetection=2
LevelForFileTypesDetection=2
LevelForWormsDetection=0
_eof_

perl /websites/"$d"/webstats/tools/awstats_buildstaticpages.pl -awstatsprog=/websites/"$d"/webstats/wwwroot/cgi-bin/awstats.pl  -update -config="$tmp_name".sys.qualiproj.qualispace.com -dir=/websites/"$d"/web/awstats/

mv /websites/"$d"/web/awstats/awstats.$tmp_name.sys.qualiproj.qualispace.com.html /websites/"$d"/web/awstats/index.html

cron_awstatsupdate="/etc/cron.daily/awstatsupdate"

cat >> $cron_awstatsupdate <<  _eof_

###################cron_upadte for domain $d#######################
perl /websites/"$d"/webstats/tools/awstats_buildstaticpages.pl -awstatsprog=/websites/"$d"/webstats/wwwroot/cgi-bin/awstats.pl  -update -config="$tmp_name".sys.qualiproj.qualispace.com -dir=/websites/"$d"/web/awstats/

###############

script to delete directory protection - /htaccess

this script assumes the following
1) websites are located at /websites/domain.com
2) the vhost_config file is located at /usr/local/apache2/conf/extra/httpd_vhost.conf
3) all folder that you wish to directory protect are loated at /websites/domain.com/folder1/subfolder1
 
#!/bin/bash  
clear
read -p "Enter your domain: " d
read -p "Enter the directory that you want to delete: " f

if [ -d /websites/"$d" ]; then
  
   if [ -d /websites/"$d"/web/"$f" ]; then

      if [  -n "$(sed -n "/\#dir_protection_${d}_${f}#/,/&/p" /usr/local/apache2/conf/extra/httpd_vhost.conf)"  ]; then
sed -i "/\#dir_protection_${d}_${f}\#/,/\#dir_protection_${d}_${f}\#/d" /usr/local/apache2/conf/extra/httpd_vhost.conf
      else
echo -e "the directory  protection for folder /$f does not exist"
      fi
  else
echo -e "  the folder /$f does not exist"
   fi
else
echo -e "the Domain $d does not exist"
fi
--

script to set up entire website domain

 
 
#!/bin/bash
#steps to set up a website
echo -e " Enter you domain name "
read domain

domain_user=` echo $domain |sed s/\.com/com2631/g `
tmp_name=` echo $domain |sed s/\.com//g `
passwd_file=`cat /etc/passwd |grep $domain |sed s/:/\ /g |awk '{print $1}'`


if [ ! -d /websites/"$domain" ]; then

         if [ "$domain_user" != "$passwd_file" ]; then

useradd -d /websites/"$domain" -s /sbin/nologin "$domain_user"
echo -e " created domain $domain "

echo -e "adding ftp user "
read -p "Please enter the password for user $domain_user" p
(echo $p; echo $p ) | /usr/local/pureftpd/bin/pure-pw useradd "$domain_user" -f /usr/local/pureftpd/etc/pureftpd.passwd  -u "$domain_user" -d /websites/"$domain" -m
echo -e " adding user sucessful "

echo -e "creating directory structure "
mkdir /websites/"$domain"/web /websites/"$domain"/logs /websites/"$domain"/private /websites/"$domain"/data /websites/"$domain"/cgi-bin
echo -e "sucessfully created directory structure   "


echo -e " we chang the permission for the the $user "
chmod 711 /websites/"$domain"/ && chmod 711 /websites/"$domain"/*

echo -e " we change the ownership   for  the $domain "
chown "$user":"$user" /websites/"$domain" && chown "$user":"$user" /websites/"$domain"/*
echo -e " changes for $user was sucessful "


echo -e "Creating the Vhost directive domain $domain "

echo -e "
######################"$domain"2631###################

<VirtualHost 192.168.0.244:80>
ServerAdmin admin@"$tmp_name".sys.qualiproj.com
ServerName "$tmp_name".sys.qualiproj.qualispace.com
ServerAlias www."$tmp_name".sys.qualiproj.qualispace.com
DocumentRoot /websites/"$domain"/web
##############MIME_TYPE_"$domain"2631##################
<Directory /websites/"$domain"/web>
    Options -MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    AllowOverride FileInfo AuthConfig Limit
    Order allow,deny
    Allow from all
</Directory>
#################DIR_PROTECT_"$domain"2631###################
ErrorLog /websites/"$domain"/logs/"$tmp_name".sys.qualiproj.error_log
CustomLog /websites/"$domain"/logs/"$tmp_name".sys.qualiproj.access_log common
ScriptAlias /cgi-bin/ "/websites/"$domain"/cgi-bin/"
<Directory "/websites/"$domain"/cgi-bin">
        AllowOverride None
        Options +ExecCGI -Includes
       Order allow,deny
        Allow from all
</Directory>
</VirtualHost>
 " >>  /usr/local/apache2/conf/extra/httpd_vhost.conf

echo -e "Sucessfully created  the Vhost directive domain $domain "

echo -e " restarting httpd "
/etc/init.d/httpd graceful

echo -e "copying test html page to web folder "
cp -R /websites/agnello.com/web/bob.html /websites/"$domain"/web/index.html
echo -e "done "

echo -e " you can now log on to http://www."$tmp_name".sys.qualiproj.qualispace.com"
    else
echo -e "the user for this doamin already exist"
   fi
 else
echo -e  "the domin $domain already exist"
fi



--

script to add additional FTP user to a domain

This script does the following
 
ths scritp will only add additional FTP user to a domain
 
#!/bin/bash

#format
#script domain.com username foldername password sizeinMB

domain_system_user=`cat /etc/passwd | sed 's/:/ /g' |awk '{print $1  $5 }' |sed 's/\// /g' |awk '{print $3" "  }' |sed -n "/${1}/P" |sed 's/\./ /g' |awk '{print $1}' `

echo -e  "Chking if domin name exist "
if [ -d /websites/"$1" ]; then
echo -e "the domin exist"
echo -e "chking to see if user exist"
     if [ "`cat /usr/local/pureftpd/etc/pureftpd.passwd  | sed 's/:/ /g' |awk '{print $1  $5 }' |sed 's/\// /g' |awk '{print $3" " $1 }' |sed -n "/${1} ${2}/P"`" != "$1 $2"  ]; then

echo -e "chking to see if dir exist"
          if [ -d /websites/"$1"/"$3"  ]; then
echo -e "the dir $3 exist"
      echo -e "adding ftp user"
(echo $4; echo $4 ) | /usr/local/pureftpd/bin/pure-pw useradd "$2" -f /usr/local/pureftpd/etc/pureftpd.passwd  -u "$domain_system_user" -d /websites/"$1"/"$3"  -m

      else
echo -e "the dir $3 does not exist ===> the ftp user is not created"
           fi
    else
echo -e  "the user is all read present"
fi
else
echo -e "the domin does not exist"
fi



--

shell script to delete directory protection /htaccess



Following  is  what the script does
 
1. chks if the domin exist
2. chks if there is alreaady a protected folder
3. if both are true then it removes the content frm the httpd_vhost.conf file
 
 
#!/bin/bash

read -p "Enter your domain: " d
read -p "Enter the directory that you want to delete: " f

if [ -d /websites/"$d" ]; then

   if [ -d /websites/"$d"/web/"$f" ]; then

      if [  -n "$(sed -n "/\#dir_protection_${d}_${f}#/,/&/p" /usr/local/apache2/conf/extra/httpd_vhost.conf)"  ]; then
sed -i "/\#dir_protection_${d}_${f}\#/,/\#dir_protection_${d}_${f}\#/d" /usr/local/apache2/conf/extra/httpd_vhost.conf
      else
echo -e "virtusl host doesnot exist"
      fi
  else
echo -e "  the folder /$f does not exist"
   fi
else
echo -e "the Domain $d does not exist"
fi
 


--

shell script to add directory protection or htaccess

This is a shell script to add directory protection or htaccess
the following is what the script does
 
1.it will read the domain nae and the folder name to be protected 
2. it will chk heatehr the domin dir exist 
3. it will chk if the htpasswd file exist .. if not it create 
4. if all the abel is true then it adds content in httpd_vhsot.conf file  
 
#!/bin/bash -x
#script to add directory protection

read -p "enter the domain name: " d
read -p "enter the dir that you want to protect: " f

var=`sed -n "/\#dir_protection_${d}_${f}\#/,/\#dir_protection_${d}_${f}\#/P" /usr/local/apache2/conf/extra/httpd_vhost.conf`

if [ -d /websites/"$d"/web/"$f" ]; then

    if [ -d /websites/privatefolderpasswd/"$d" -a -e /websites/privatefolderpasswd/"$d"/htpasswd  ]; then

         if [ -n "$var" ]; then
read -p "Enter user name for the folder you want to protect: " u
read -p "Enter  password for the user: " p
/usr/local/apache2/bin/htpasswd -bc /websites/privatefolderpasswd/"$d"/htpasswd "$u" "$p"

sed -i "/\#DIR_PROTECT_${d}2631\#/a\#################dir_protection_${d}_${f}#################\n<Directory \/websites\/${d}\/web\/awstats>\nAllowOverride  AuthConfig\nAuthName "MyPrivateStuff"\nAuthType Basic\nAuthGroupFile \/dev\/null\nAuthUserFile /websites\/privatefolderpasswd\/${d}/htpasswd\nAuthName Enterpassword\nRequire valid-user\n </Directory>\n#################dir_protection_${d}_${f}#################" /usr/local/apache2/conf/extra/httpd_vhost.conf

exit 1

         else
echo -e "this should not be here"
         fi
    else
echo -e "creating  dir structure to store htacess password file"

mkdir /websites/privatefolderpasswd/"$d"
touch /websites/privatefolderpasswd/"$d"/htpasswd

read -p "Enter user name for the folder you want to protect: " u
read -p "Enter  password for the user: " p
/usr/local/apache2/bin/htpasswd -bc /websites/privatefolderpasswd/"$d"/htpasswd "$u" "$p"

sed -i "/\#DIR_PROTECT_${d}2631\#/a\#################dir_protection_${d}_${f}#################\n<Directory \/websites\/${d}\/web\/awstats>\nAllowOverride  AuthConfig\nAuthName "MyPrivateStuff"\nAuthType Basic\nAuthGroupFile \/dev\/null\nAuthUserFile /websites\/privatefolderpasswd\/${d}/htpasswd\nAuthName Enterpassword\nRequire valid-user\n </Directory>\n#################dir_protection_${d}_${f}#################" /usr/local/apache2/conf/extra/httpd_vhost.conf
echo -e "The htaccess is created now"
    fi
else
echo -e "The domain does not exist"
exit 1
fi



--

ebooks for perl

http://www.costlowcorp.com/~erik/STY-Perl-24Hours.pdf

http://www.torrentreactor.net/torrents/632653/(Ebook-Pdf)-Teach-Yourself-Perl-In-21

--

ebook for perl

http://wwwacs.gantep.edu.tr/docs/perl-ebook/

--

Script to Add FTP user

This scipt i used ato the do the following
 
1. if the domain is present  then continue to 1.1  else the domin does not exist  
1.1. if  the FTP user is present then continutue to 1.1.1
1.1.1 if the directory exist ...execute command to add ftpuse to that particular dir
 
 
 
#!/bin/bash -x

#format
#script domain.com username foldername password sizeinMB

echo -e  "Chking if domin name exist "
if [ -d /websites/"$1" ]; then
echo -e "the domin exist"
echo -e "chking to see if user exist"
     if [ "`cat /usr/local/pureftpd/etc/pureftpd.passwd  | sed 's/:/ /g' |awk '{print $1}' |sed -n "/${2}/P"`" != "$2"  ]; then

echo -e "chking to see if dir exist"
          if [ -d /websites/"$1"/"$3"  ]; then
echo -e "the dir $3 exist"
      echo -e "adding ftp user"
(echo $4; echo $4 ) | /usr/local/pureftpd/bin/pure-pw useradd "$2" -f /usr/local/pureftpd/etc/pureftpd.passwd  -u "$2" -d /websites/"$1"/"$3"  -m

      else
echo -e "the dir $3 does not exist"
           fi
    else
echo -e  "the user is all read present"
fi
else
echo -e "the domin does not exist"
fi



--

script to add domain / ftp user account

Here is a script that does the following :

1. check if domain is present
2. if domain is present then it creates a system user
3. It creates the home directory structure
4 . within the home directory structure it creates  the various dir.
5. sets permission to those dir
6.  write the vhost directive in to the http.conf configuration file
7 . Restart apace ( gracefully )

#!/bin/bash
#steps to set up a website
echo -e " Enter you domain name "
read $1

domain_com=` echo $domain |sed s/\.com//g `
domain_in=`echo $domain |sed s/\.in//g`
domain_net=`echo $domain |sed s/\.net//g`
domain_co_in=`echo $domain |sed s/\.co.in//g`
domain_02=`cat /etc/passwd |grep $domain |sed s/:/\ /g |awk '{print $1}'`

if [ "$domain_com" =  "$domain_02" ]; then
echo -e " the domain exist "
exit 1
fi

echo -e "Please enter  user for for $domain  "
read user
if [ "$user" = "$domain_02" ]; then
echo -e " user exist quiting proces "
else
useradd -d /websites/"$domain" -s /sbin/nologin "$user"
echo -e " created domain $domain "


echo -e "adding ftp user "
echo  "$domain"
(echo $domain_com; echo $domain_com ) | /usr/local/pureftpd/bin/pure-pw useradd "$user" -f /usr/local/pureftpd/etc/pureftpd.passwd  -u "$user" -d /websites/"$domain" -m
echo -e " adding user sucessful "

echo -e "creating directory structure "
mkdir /websites/"$domain"/web /websites/"$domain"/logs /websites/"$domain"/private /websites/"$domain"/data /websites/"$domain"/cgi-bin
echo -e "sucessfully created directory structure   "


echo -e " we chang the permission for the the $user "
chmod 711 /websites/"$domain"/ && chmod 711 /websites/"$domain"/*

echo -e " we change the ownership   for  the $domain "
chown "$user":"$user" /websites/"$domain" && chown "$user":"$user" /websites/"$domain"/*
echo -e " changes for $user was sucessful "


echo -e "Creating the Vhost directive domain $domain "

echo -e "
######################"$domain"2631###################

<VirtualHost 192.168.0.244:80>
ServerAdmin admin@ashish.sys.qualiproj.com
ServerName "$user".sys.qualiproj.qualispace.com
ServerAlias www."$user".sys.qualiproj.qualispace.com
DocumentRoot /websites/"$domain"/web
##############MIME_TYPE_"$domain"2631##################
<Directory /websites/"$domain"/web>
    Options -MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    AllowOverride FileInfo AuthConfig Limit
    Order allow,deny
    Allow from all
</Directory>
ErrorLog /websites/"$domain"/logs/"$user".sys.qualiproj.error_log
CustomLog /websites/"$domain"/logs/$user.sys.qualiproj.access_log common
ScriptAlias /cgi-bin/ "/websites/"$domain"/cgi-bin/"
<Directory "/websites/"$domain"/cgi-bin">
        AllowOverride None
        Options +ExecCGI -Includes
       Order allow,deny
        Allow from all
</Directory>
</VirtualHost>
 " >>  /usr/local/apache2/conf/extra/httpd_vhost.conf

echo -e "Sucessfully created  the Vhost directive domain $domain "

echo -e " restarting httpd "
/etc/init.d/httpd graceful

echo -e "copying test html page to web folder "
cp -R /websites/agnello.com/web/bob.html /websites/"$domain"/web/index.html
echo -e "done "

echo -e " you can now log on to http://www."$user".sys.qualiproj.qualispace.com"

fi

 

--

Other Articles

Enter your email address: