| |||||||||||
| |||||||||||
Please Help on Perl Scripting. Posted by Laarni (Laarni), 10 January 2008 Hi,Im going to convert a big cshell script to Perl. Haven't done any perl script before anyone can please help me on this? Thanks in advance. if ( !(-f PROMOTE_CFG.`hostname`.fil) || !(-f PROMOTE.cfg) ) then echo "" echo "Please run this script in the same directory as this script in this server [`hostname`]" echo "" exit 1 endif source PROMOTE.cfg set startime = `date` echo $0 echo "" echo "------------------------------------------" echo "" echo "Creating log directory..."$log if !(-d $conv) mkdir $conv if !(-d $log) mkdir $log if (-f PROMOTE_CFG.`hostname`.fil) then set dbfilelist = "PROMOTE_CFG.`hostname`.fil" set dblist = `cat $dbfilelist` else echo "" echo "Please list the databases to be converted in PROMOTE_CFG.`hostname`.fil" echo "" exit 1 endif # Perform the Database promotion only once if ((`ls PROMOTE_CFG.*pap.fil | wc -l` > 1) && ($HOST2CHK4DBPROMOTE != `hostname`)) then echo "" echo "Database promotion will not be executed at this server [`hostname`]" echo "" exit 1 endif # Begin converting the Database foreach line ($dblist) set site = `echo $line | cut -f1 -d:` set db = `echo $line | cut -f2 -d:` #check site config file if !( -f cfg/$site.`hostname`.cfg ) then echo "" echo "Please check configuration for site cfg/$site.`hostname`.cfg exists" echo "" source PROMOTE.uncfg exit 1 endif echo "" echo "$db ($site) database conversion..." # Set the DB, UID, PSW and SVR based on site sed -e s/db_name/$db/g cfg/$site.`hostname`.cfg >! $cfg/$db.cfg if !(-f $cfg/$db.cfg) then echo "" echo "Please check if the configuration file for database $cfg.$db.cfg exists" echo "" source PROMOTE.uncfg exit 0 endif source $cfg/$db.cfg if !(-d $backup_dat/$db) then echo "" echo "Create backup directory [$backup_dat/$db] for database..."$db mkdir $backup_dat/$db endif if (-f new_table_list.fil) then echo "" echo "Creating new tables..." set newtablist = `cat new_table_list.fil` set table_no = 0 echo "New table creation log:" >! $log/newtable_$db.log foreach table ($newtablist) set table_no = `expr $table_no + 1` echo $table_no") "$table echo $table_no") "$table >> $log/newtable_$db.log if (-f $newtabdir/$table) then runsql < $newtabdir/$table >> $log/newtable_$db.log else if (-f $alt1tabdir/$table) then runsql < $alt1tabdir/$table >> $log/newtable_$db.log else if (-f $alt2tabdir/$table) then runsql < $alt2tabdir/$table >> $log/newtable_$db.log else if (-f $alt3tabdir/$table) then runsql < $alt3tabdir/$table >> $log/newtable_$db.log else if (-f $alt4tabdir/$table) then runsql < $alt4tabdir/$table >> $log/newtable_$db.log else if (-f $alt5tabdir/$table) then runsql < $alt5tabdir/$table >> $log/newtable_$db.log else runsql < $alt6tabdir/$table >> $log/newtable_$db.log endif endif endif endif endif endif echo "" >> $log/newtable_$db.log end endif if (-f stored_proc_list.fil) then echo "" echo "Submitting stored procedures..." set storedproclist = `cat stored_proc_list.fil` set script_no = 0 echo "Stored Procedure creation log:" >! $log/storedproc_$db.log foreach script ($storedproclist) set script_no = `expr $script_no + 1` echo $script_no") "$script echo $script_no") "$script >> $log/storedproc_$db.log if (-f $sqlprocdir/$script) then runsql < $sqlprocdir/$script >> $log/storedproc_$db.log else if (-f $alt1sqlprocdir/$script) then runsql < $alt1sqlprocdir/$script >> $log/storedproc_$db.log else if (-f $alt2sqlprocdir/$script) then runsql < $alt2sqlprocdir/$script >> $log/storedproc_$db.log else runsql < $alt3sqlprocdir/$script >> $log/storedproc_$db.log endif endif endif echo "" >> $log/storedproc_$db.log end endif # move to the bottom if (-f trigger_list.fil) then echo "" echo "Submitting trigger..." set triggerlist = `cat trigger_list.fil` set table_no = 0 echo "Trigger creation log:" >! $log/trigger_$db.log foreach table ($triggerlist) set table_no = `expr $table_no + 1` echo $table_no") "$table echo $table_no") "$table >> $log/trigger_$db.log if (-f $newtabdir/$table) then runsql < $newtabdir/$table >> $log/trigger_$db.log else if (-f $alt1tabdir/$table) then runsql < $alt1tabdir/$table >> $log/trigger_$db.log else runsql < $alt2tabdir/$table >> $log/trigger_$db.log endif endif echo "" >> $log/trigger_$db.log end endif # grant privilege echo "" echo "grant privilege" cat update/gen_grant.sql | runsql | egrep '^ grant|^ go' | cut -c2- | runsql >>! $log/onetime_grant_$db.log echo "" echo "Completed $db database conversion..." end #end of the main for loop ############################# if (-f jil.fil) then # set environment for autosys source $autosysdir echo "" echo "Submitting Autosys jobs ..." set joblists = `cat jil.fil` set job_no=0 echo "Autosys jobs log:" >! $log/jobs.log foreach joblist ($joblists) set job_no = `expr $job_no + 1` echo $job_no") "$joblist echo $job_no") "$joblist >> $log/jobs.log #backup set job=`echo $joblist | cut -f1 -d'.'` autorep -q -J $job -L0 >! $backup_jil/$job.bak #punch in job jil < misc/jil/$joblist >>! $log/jobs.log end endif source PROMOTE.uncfg echo "" echo "------------------------------------------" echo "" echo Start time = $startime echo Stop time = `date` echo "" if (-f readme.txt) cat readme.txt Posted by admin (Graham Ellis), 10 January 2008 on 01/10/08 at 08:54:11, Laarni wrote:
Sure, be delighted to ... but it's a bit more of a project than the sort of thing that can be done as an answer on a forum. Follow the link to: http://www.wellho.net/course/ppfull.html I'm running this next week; book, come along, bring your shell script and you'll be well on the way by Friday! -- Graham This page is a thread posted to the opentalk forum
at www.opentalk.org.uk and
archived here for reference. To jump to the archive index please
follow this link.
|
| ||||||||||
PH: 01144 1225 708225 • FAX: 01144 1225 793803 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho |