shell/awk scripting help - parsing directories to gainuser/file information for commands

Matt Heath matt at thebigchoice.com
Tue May 27 06:19:53 PDT 2003


ls /www/*/logs/*.access_log | awk -f webalize-it.awk

where the file webalize-it.awk contains

BEGIN { FS = "/" }
{
    user = $3
    domain = $5
 
    # extract the domain name
    gsub("^" user, "", domain)
    gsub("\.access_log$", "", domain)

    cmd  = sprintf("webalizer -n %s -o /www/%s/stats/", domain, user)
    system(cmd)
}

>have a number of uses for this where I am trying to get away from maintaining
>lengthy static files which contain all the statically entered commands to run
>for a cron job...
>
>for example;
>
>- need to run webalizer of a number of user websites and directories
>- can run webalizer without a customized conf file, but need to provide
>hostname, outputdir and other such variables from the command line
>- can list all the log files which give the appropriate information
>
># ls /www/*/logs/*.access_log
>
>generates...
>
>/www/user1/.logs/user1domain1.com.access_log
>/www/user1/.logs/user1domain2.com.access_log
>/www/user2/.logs/user2domain1.com.access_log
>/www/user2/.logs/user2domain2.com.access_log
>/www/user3/.logs/user3domain1.com.access_log
>/www/user3/.logs/user3domain2.com.access_log
>
>what I am trying to script is something that does;
>
><pseudo code>
>for i in /www/*/logs/*.access_log;
>	ereg (user)(domain_name) from $i;
>	do webalizer -n $domain_name -o /www/$user/stats/;
>done
></pseudo code>
>
>...as this would eliminate human error in maintaining a file which contains the
>appropriate lines to handle this via cron or something every night.
>
>This is one example, there are a slew of other similar applications that I would
>use this for. have played with awk as well, just can't wrap my head around this
>(not a shell scripting person by trade).
>
>Any guidance or insight would be appreciated.
>
>Dave
>
>
>_______________________________________________
>freebsd-questions at freebsd.org mailing list
>http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
>
>
>  
>




More information about the freebsd-questions mailing list