Selam ,

Mailiniz için teşekür ederim.Şu şekilde bir perl script buldum.Problemsiz
çalışıyor.Aktardığı dosyaları silmeden önce başka bi dizine de kopyalamak
istiyorum.Bu konuda yardımcı olabilirmisiniz.


( http://aplawrence.com/Unixart/perlnetftp.html )
----------------------------------------------------------------

#!/usr/bin/perl
use strict;
use Net::FTP;
#
# Following variables are needed
my $directory="/ftpdir";
my $logfile="/ftp.log";
my $destination="test.com";
my $login="testuser";
my $password="test123";
my $putdir="/ftp/FTP/";
my $delay=60;
#
# program starts here
#
my $ftp;
my $newerr;
my @files;
my $file;
my $filecount;
my $line;
my $date;
chdir($directory) or die("$! Can't cd to $directory");
while (1)  {
   @files=();
   $newerr=0;
   logit("Starting new loop");
   foreach(<*>) {
          push @files,$_;
   }
   my $filecount=@files;
   logit("$filecount files to transfer");
   if  (not $filecount) {
            logit("Nothing to do");
            sleep $delay;
            next;
   }
   $ftp=Net::FTP->new($destination,Timeout=>240) or $newerr=1;
        if ($newerr) {
             logit("Can't connect to $destination");
      sleep $delay;
             next;
        }
   $ftp->login("$login","$password") or $newerr=1;
        if ($newerr) {
          logit("Can't login  $destination with $login,$password");
"ftpput.pl.bcl" 82 lines, 1854 characters
#!/usr/bin/perl
use strict;
use Net::FTP;
#
# Following variables are needed
my $directory="/akin/ftpdir";
my $logfile="/akin/xfer.log";
my $destination="212.174.150.218";
my $login="yatasftp";
my $password="Yatas!2011";
my $putdir="/vg_yatas/ftp/FTP/akin/";
my $delay=60;
#
# program starts here
#
my $ftp;
my $newerr;
my @files;
my $file;
my $filecount;
my $line;
my $date;
chdir($directory) or die("$! Can't cd to $directory");
while (1)  {
   @files=();
   $newerr=0;
   logit("Starting new loop");
   foreach(<*>) {
          push @files,$_;
   }
   my $filecount=@files;
   logit("$filecount files to transfer");
   if  (not $filecount) {
            logit("Nothing to do");
            sleep $delay;
            next;
   }
   $ftp=Net::FTP->new($destination,Timeout=>240) or $newerr=1;
        if ($newerr) {
             logit("Can't connect to $destination");
      sleep $delay;
             next;
        }
   $ftp->login("$login","$password") or $newerr=1;
        if ($newerr) {
          logit("Can't login  $destination with $login,$password");
         $ftp->quit;
         sleep $delay;
         next;
        }
   $ftp->binary(); # set binary mode
   $ftp->cwd($putdir) or $newerr=1;
        if ($newerr) {
          logit("Can't cd to $putdir on  $destination");
          $ftp->quit;
          sleep $delay;
          next;
        }
   foreach(@files) {
      $file=$_;
      $newerr=0;
      $ftp->put($file,$file) or $newerr=1;
     if ($newerr) {
        logit("Error transferring $file");
        next;
   }
   unlink($file) or logit("$! can't unlink $file");;

        }

# delay for next loop
sleep $delay;
}

sub logit {
  $line=shift;
  $date=gmtime(time);
  open(LOG,">>$logfile") or die("$! Can't open $logfile");
  print LOG "$date: $file @files $line\n";
  print "$date: $file @files $line\n";
  close LOG;
}

----------------------------------------------------------------------------------------

2011/10/26 Uğur Engin <[email protected]>

> Merhaba,
>
> Belirttiğiniz isteklerin bir kısmını mysql db dosyalari icin yapan ftp
> baglanti destekli bir script betigi hazirlamistim.
>
> http://www.ugurengin.com/blog/mysql-datalarinin-uzak-ftp-sunucuya-yedeklenmesi.html
>
> Belli bir zaman dilimi icin yine bash ile if'li bir kod yazip kontrol
> islemi yapilabilir.
>
> İncelemenizi tavsiye ederim.
>
> 2011/10/26 Akın Temel <[email protected]>
>
>> Selamlar ,
>>
>> Unix üzerinde bir dizindeki dosyayı ftp ile gönderebilecek , gönderdiği
>> dosyanın doğruluğunu kontrol edecek , hangi tarihte ve saatte gönderdiği
>> logunu yazacak sonra o dosyayı başka bi dizini kopyalayıp
>> silicek.Göndereceği dizini her 10 dakikada bir kontrol edecek eğer yeni
>> dosya var ise yine aynı işlemleri uygulayacak.
>>
>> Bu işlemleri yapabileceğim bi script elinde olan yada önerebileceği başka
>> bi yöntem varsa ve paylaşırsa çok memnun olurum.
>>
>>
>> Saygılarımla
>>
>> _______________________________________________
>> Linux-sunucu E-Posta Listesi
>> [email protected]
>>
>> Liste kurallarını http://liste.linux.org.tr/kurallar.php  bağlantısından
>> okuyabilirsiniz;
>>
>> Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
>> e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
>> dakika içinde üyeliğinizi sonlandırabilirsiniz.
>> https://liste.linux.org.tr/mailman/listinfo/linux-sunucu
>>
>>
>
> _______________________________________________
> Linux-sunucu E-Posta Listesi
> [email protected]
>
> Liste kurallarını http://liste.linux.org.tr/kurallar.php  bağlantısından
> okuyabilirsiniz;
>
> Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
> e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
> dakika içinde üyeliğinizi sonlandırabilirsiniz.
> https://liste.linux.org.tr/mailman/listinfo/linux-sunucu
>
>
_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]

Liste kurallarını http://liste.linux.org.tr/kurallar.php  bağlantısından 
okuyabilirsiniz;

Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen 
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1 
dakika içinde üyeliğinizi sonlandırabilirsiniz.
https://liste.linux.org.tr/mailman/listinfo/linux-sunucu

Cevap