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
