This application will construct CSV file from 2 table.
And then ftp to the destination.
The ftp code i got from online.
#File Name: FTPMBMB.pl
#Author : Kumar Arjunan
#Nick : amyarjun
#E-Mail: amyarjun@yahoo.com
#!/usr/bin/perl --
use Mysql;
use Getopt::Std;
use Net::FTP;
use Time::localtime;
require 'perlLib/perlFunc.pl';
$| = 1;
sub now {
$tm = localtime;
($smin, $shour, $sday, $smon, $syear) = ($tm->min, $tm->hour,
+$tm->mday, $tm->mon, $tm->year);
$f = sprintf ("%02d-%02d-%04d", $smon+1, $sday, $syear+1900,
+ $shour, $smin);
return $f;
}
$g = &now;
$db = &condb();
$filename = 'MBMBAduan'.$g;
$filename1 = 'MBMBCadangan'.$g;
$masa = &gettime();
@msArray = split(" ",$masa);
$msTime = $msArray[1];
@tmArray = split(":",$msTime);
$counter = $tmArray[0];
@dateArray = split("-",$msArray[0]);
$date = $dateArray[1];
$mon = $dateArray[0];
$year = $dateArray[2];
$masa = &gettime();
@msArray = split(" ",$masa);
$msTime = $msArray[1];
@tmArray = split(":",$msTime);
$date_out = $year.$mon.$date;
# CONSTRUCT THE FIRST FILE - READ DATA FROM DATABASE AND CREATE A CSV
+FILE
open(mbmb, "> $filename") or die "couldn't open $filename\n";
$sql_query = "SELECT mobile,complaint,posteddate FROM spp_mbmb_com
+plaints WHERE posteddate LIKE '$date_out%'";
$sth = $db->query($sql_query);
my @array_ref;
while (@array_ref = $sth->fetchrow() ) {
foreach my $col ( @array_ref ) {
print mbmb '' . $col . ', ';
}
print mbmb "\n";
}
close(mbmb);
system "chown devftp:devftp $filename";
# CONSTRUCT THE SECOND FILE - READ DATA FROM DATABASE AND CREATE A CSV
+ FILE
open(mbmb, "> $filename1") or die "couldn't open $filename1\n";
$sql_query1 = "SELECT mobile,suggestion,posteddate FROM spp_mbmb_s
+uggestions WHERE posteddate LIKE '$date_out%' ";
$sth1 = $db->query($sql_query1);
my @array_ref1;
while (@array_ref1 = $sth1->fetchrow() ) {
foreach my $col1 ( @array_ref1 ) {
print mbmb1 '' . $col1 . ', ';
}
print mbmb1 "\n";
}
close(mbmb1);
system "chown devftp:devftp $filename1";
# FTP ACCOUNT THAT WE GOING TO SEND
$switch = '-p';
$user = 'XXXX';
$password = 'XXXX';
$server = 'XXX.XXX.XXX.XXX';
$path = '/home/notes/data/PSAdata';
# CONSTRUCT FTP PARAMETER
$readftp = ftpO($switch, $user, $password, $server, $filename, $pa
+th);
$readftp = ftpO($switch, $user, $password, $server, $filename1, $p
+ath);
# THIS CODE SEND OUT FTP - I GOT FROM A POSTED CODE - I CANT REMEMBERT
+ WHERE
sub ftpO($switch, $user, $password, $server, $filename, $path){
$ftp = Net::FTP->new($server); # contact server
if ($ftp == NULL)
{
print "Could not connect to server.\n";
exit(9);
}
print "Connected to $server\n";
if ($ftp->login($user, $password)){
if ($ftp->cwd($path)){
if ($switch eq "-p"){
if ($ftp->put($filename)){
$ftp->quit();
print "Uploaded the file, $filename\n";
}
else{
print "Could not put file, $filename\n";
exit(4);
}
}
else{
print "Invalid switch: $switch.\n";
exit(5);
}
}
else{
print "Could not change directory to $path\n";
exit(6);
}
}
else{
print "Could not login with user, $user and password, $passw
+ord.\n";
exit(7);
}
}#print "Process Completed\n";
exit;
----------------------------------------------------------------------
+--------------
#File Name: perlFunc.pl
#Author : Kumar Arjunan
#Nick : amyarjun
#E-Mail: amyarjun@yahoo.com
# SOME FUNCTION USING IN ALL CODING - SOME TIME USED - SOME TIME DIREC
+T CODE
sub gettime{
$tm = localtime;
($smin, $shour, $sday, $smon, $syear) = ($tm->min, $tm->hour,
+$tm->mday, $tm->mon, $tm->year);
$f = sprintf ("%02d-%02d-%04d %02d:%02d", $smon+1, $sday, $sy
+ear+1900, $shour, $smin);
return $f;
}
sub condb{
$hostdb ="xxx.xxx.xxx.xxx";
$database = "XXXXXXX";
$userdb ="XXXX";
$passworddb ="XXXX";
$db = Mysql->connect($hostdb, $databasedb, $userdb, $passwordd
+b);
$db->selectdb($database);
return $db;
}
sub daemonize{
my($filename)=@_;
#chdir '../' or die "Can't chdir to /: $!";
open STDIN, ">>perlog/$filename" or die "Can't read perlog/$filena
+me: $!";
open STDOUT, ">>perlog/$filename" or die "Can't write to perlog/$f
+ilename: $!";
open STDERR, ">>perlog/$filename" or die "Can't write to perlog/$f
+ilename: $!";
defined(my $pid = fork) or die "Can't fork: $!";
exit if $pid;
setsid or die "Can't start a new session: $!";
umask 0;
}
1;