ericlee has asked for the wisdom of the Perl Monks concerning the following question:
1,6,11,16,21,26,31,36,41,46,51,56 * * * * cgi-bin/dbman/db2sql.sh
#!/usr/bin/perl use DBI; $state = " "; open (FILE1, "default.db"); @records = <FILE1>; close(FILE1); $db = DBI->connect('dbi:mysql:dbxxxxxxxx:dbxxx.oneandone.co.uk','dboxx +xxxxxx','xxxxxx'); my $sth = $db->prepare("insert into news(url, header, country, country +2, date, priority, userid, source, formoreinfo, language, regreqd, ke +ywords, image, actnowcampaigncode, state) values(?,?,?,?,?,?,?,?,?,?, +?,?,?,?,?)"); open(COUNTER,"db2sql.count"); @counters = <COUNTER>; close(COUNTER); foreach $count (@counters) {$rc = $count;} foreach $record (@records) { @fields = split(/\|/,$record); $rr++; # counts records read in default.db if ($rr > $rc) { # only reads new records if ($fields[5] > 0) { &convdate; &convlang; $sth->execute($fields[0], $fields[1], $fields[2], $fields[3], +$date, $fields[5], $fields[6], $fields[7], $fields[8], $language, $fi +elds[10], $fields[11], $fields[12], $fields[13], $state); } } } $db->disconnect(); open(COUNT, ">db2sql.count"); # Keeps a record of last item added to S +QL DB print COUNT "$rr"; close(COUNT); sub convdate { @dfields = split(/-/,$fields[4]); # Convert date to yyyymmdd ($dd) = $dfields[0]; ($month) = $dfields[1]; ($yyyy) = $dfields[2]; if ($month eq "Jan") {$mm = "01"}; # Get month number if ($month eq "Feb") {$mm = "02"}; if ($month eq "Mar") {$mm = "03"}; if ($month eq "Apr") {$mm = "04"}; if ($month eq "May") {$mm = "05"}; if ($month eq "Jun") {$mm = "06"}; if ($month eq "Jul") {$mm = "07"}; if ($month eq "Aug") {$mm = "08"}; if ($month eq "Sep") {$mm = "09"}; if ($month eq "Oct") {$mm = "10"}; if ($month eq "Nov") {$mm = "11"}; if ($month eq "Dec") {$mm = "12"}; $dd = sprintf("%02d", $dd); $date = "$yyyy$mm$dd"; } sub convlang { ($languagename) = $fields[9]; $language = ""; # blanks out the field first if ($languagename eq "English") {$language = "en";} if ($languagename eq "Indonesian") {$language = "id";} if ($languagename eq "Chinese") {$language = "zh";} if ($languagename eq "Danish") {$language = "da";} if ($languagename eq "German") {$language = "de";} if ($languagename eq "Spanish") {$language = "es";} if ($languagename eq "Esperanto") {$language = "eo";} if ($languagename eq "French") {$language = "fr";} if ($languagename eq "Italian") {$language = "it";} if ($languagename eq "Creole") {$language = "cpf";} if ($languagename eq "Dutch") {$language = "nl";} if ($languagename eq "Norwegian") {$language = "no";} if ($languagename eq "Polish") {$language = "pl";} if ($languagename eq "Portuguese") {$language = "pt";} if ($languagename eq "Russian") {$language = "ru";} if ($languagename eq "Finnish") {$language = "fi";} if ($languagename eq "Swedish") {$language = "sv";} if ($languagename eq "Turkish") {$language = "tr";} }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Script runs from command line but not via crontab
by kirillm (Friar) on Jan 02, 2008 at 10:24 UTC | |
Re: Script runs from command line but not via crontab
by ForgotPasswordAgain (Vicar) on Jan 02, 2008 at 10:25 UTC | |
Re: Script runs from command line but not via crontab
by quester (Vicar) on Jan 02, 2008 at 10:30 UTC | |
Re: Script runs from command line but not via crontab
by apl (Monsignor) on Jan 02, 2008 at 10:49 UTC | |
Re: Script runs from command line but not via crontab
by cdarke (Prior) on Jan 02, 2008 at 12:50 UTC | |
Re: Script runs from command line but not via crontab
by dwm042 (Priest) on Jan 02, 2008 at 15:06 UTC | |
Re: Script runs from command line but not via crontab
by dsheroh (Monsignor) on Jan 02, 2008 at 17:08 UTC |