Betiğin içine md5sum veya size kontrolü ekleyebilirsiniz.kısa bir aralıkla kontrol eder.Size veya md5sum değişmediyse kopyalamayı gerçekleştirir.
26 Ekim 2011 14:21 tarihinde Akın Temel <[email protected]> yazdı: > aynı zamanda şu şekilde bi problem daha var.Ftp ye atacağı dosyayı bi > dizin içerisinde her dakikada kontrol ediyor.o dizinde dosya bulduğunda > tranfer işlemine başlıyor.Ama transfer edeceği dosya daha tam > oluşturulmadan transfer işlemine başladığı için dosyayı eksik göndermiş > oluyor.Bu problemi nasıl aşabilirim. > > > 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
