Merhaba,
Aşağıdaki bash betiği, istediğiniz işlemleri yapar.
Örnek olarak inceleyebilirsiniz.

*#!/bin/bash*
> *dir=/var/log/httpd/yedek*
> *run="echo $?"*
> *copylog=`cp *.log $dir && $run`*
> *if [ $copylog = 0 ]*
> *then*
> *echo "Log dosyalari $dir isimli klasore kopyalandi."*
> *else*
> *echo "Kopyalama islemleri basarisiz."*
> *exit -1*
> *fi*
> **


iyi çalışmalar

2011/10/26 Akın Temel <[email protected]>

> 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
>
>
_______________________________________________
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