Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
Google Site



Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь.

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered By Powered by Google
 
Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 10-09-2008
Зарегистрированный пользователь
 

Регистрация: Oct 2008
Сообщений: 4
Как автоматизировать FTP в Perl

Моя ситуация я не могу использовать NET:: FTP. Поэтому мне нужно каким-то образом автоматизировать FTP. Я знаю, как это сделать в KSH:

#! / USR / BIN / KSH
FTP-I-V-Н $ host_name <<_FTP>> $ log_file 2> И 1
Пользователь $ user_name

LCD $ local_dir
CD $ remote_dir
положить $ имя_файла
пока
_FTP

Но как я могу это сделать в Perl?

Примечание: Не требуется пароль для FTP.

А если я хочу использовать этот сценарий в KSH Perl, С использованием системы () или backticks, я получил запрос на пароль. Любые идеи?

Спасибо.
Рекламные ссылки
Old 10-09-2008
Зарегистрированный пользователь
 

Регистрация: Oct 2005
Место проведения: Великобритания
Сообщений: 8
думаю, что это может помочь
Использование Perl ожидать Автоматизируйте SFTP доступ | Parth Патил's Blog
Old 10-09-2008
otheus's Avatar
otheus otheus is offline Forum Advisor  
Модератор Ала режим
 

Регистрация: Февраль 2007
Место проведения: Инсбрук, Австрия
Сообщений: 1903
Печально, что необходимо ожидать, что он, вероятно, также не могут использовать. Egyfan, Вы уверены, что не может установить Сети:: FTP на вашей локальной учетной записи?

Во всяком случае, то, что нужно сделать, это создать пару труб, икру на FTP с помощью вилки (), то более-takingly читать / писать на трубы. Вы должны справиться ничего неожиданного, что, как правило, трудно, в лучшем случае. Проверьте perlipc странице.
Old 10-09-2008
Зарегистрированный пользователь
 

Регистрация: Oct 2008
Сообщений: 4
Существует не то, или KSH Perl , что позволило мне иначе относиться к пустую строку, как в поле пароля?
Old 10-09-2008
otheus's Avatar
otheus otheus is offline Forum Advisor  
Модератор Ала режим
 

Регистрация: Февраль 2007
Место проведения: Инсбрук, Австрия
Сообщений: 1903
Ohh, я думаю, теперь я знаю, что вы пытаетесь сделать. Там в один файл, который вы можете использовать ". Netrc", который позволит вам войти на сайт через FTP без указания имени пользователя и пароля. Однако, вы должны указать, что после команды. Вот один пример. Netrc файла:


Код:
machine remote.host.edu login foobar password SuperSecret73

Вам нужно убедиться, что. Netrc имеет разрешение 600 (использование Chmod).
Old 10-09-2008
Зарегистрированный пользователь
 

Регистрация: Nov 2001
Место проведения: Флинта, М. И.
Сообщений: 232
Вы можете написать FTP код с файла, а затем использовать систему команд для выполнения этого файла. Вот скрипт, который я использую:

Код:
#!/usr/bin/perl  
# #########################################################################
# # This script was written to search directories read      ##
# # from the file pwdirs and search them for monthly reports to be sent  ##
# # to .  You must provide the beginning day, ending day and     ##
# # month on the command line.  The beginning day, ending day and month  ## 
# # must be two digits ex: 01,02....31.  This script will pull files for ## 
# # days and month specified. The command to run this is:                ##
# # perl pwcopy.pl BEGINNING_DAY ENDING_DAY MONTH .  ex:                 ##
# #        perl pwcopy.pl 01 03 09                                       ##
# # The above command would copy reports from the 1st through 3rd days   ##
# # for the month of September.                                          ##
# #########################################################################
# # These are passed from the command line
$begin=$ARGV[0];                      #Get the begin day of month
$end=$ARGV[1];                        #Get the end day of the month
$month=$ARGV[2];                       #Get the month of the reports to copy 
# Get the current date
($csec,$cmin,$chour,$cmday,$cmon,$cyear,$cwday,$cyday,$cisdst) = localtime(time);
$cyear=$cyear+1900;                   # get the correct year
$cmon=$cmon+1;                        # Get the correct month
if($cmon<10) {$cmon="0$cmon";}
if($cmday<10) {$cmday="0$cmday";}
if($chour<10) {$chour="0$chour";}
if($cmin<10) {$cmin="0$cmin";}
if($csec<10) {$csec="0$csec";}
# # Open file to write ftp script to
open(ftpsc, '>/usr/local/bin/pwpmftp') or die "Can't open ftp script file";
print ftpsc "# This script is created by the script pwcopy.pl\n";
print ftpsc "ftp -in 00.00.00.00 <<EOF\n";
print ftpsc "user userid password\n";
print ftpsc "type ascii\n";
# # Open the file containing the directories to be searched
open(DIRFIL, 'pwdirs') or die "Can't open directory file pwdirs\n";
while (<DIRFIL>) {
      $dir = $_ ;
      chomp($dir);
# # Open the directory to be read for files
      opendir(CURR, $dir) or die "Can't open directory: $dir $!\n";
      while (defined($file = readdir(CURR))) {
      if ($file =~ m/ARM|AMI|AMR[^AMRA|^AMRB|^AMRD]/) {
          $mtime = (stat("$dir/$file"))[9]; # Get the last accessed date
# # Create a readable date to compare to the current date from above
          ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($mtime);
          $mon=$mon+1;
          $year=$year+1900;
          if($mon<10) {$mon="0$mon";}
          if($mday<10) {$mday="0$mday";}
          if(($mday ge $begin && $mday le $end) && $mon eq $month && $year eq $cyear) {
             $count=$count+1;
             $fdate_time="$cmon$cmday$cyear$chour$cmin$csec$count";
             $new_file=substr($file,4,4);
             $odir=substr($dir,10,3);
             print ftpsc "put $dir/$file /$odir/$odir$new_file$fdate_time.txt\n";
            }
         }
      }
}
print ftpsc "quit\n";
print ftpsc "EOF\n";
close ftpsc;
system("./pwpmftp");

Я уверен, что кто-то более опытных, чем я мог бы написать более эффективной Perl сценарий, но она работает для меня. Удачи.
Old 10-09-2008
Зарегистрированный пользователь
 

Регистрация: Oct 2008
Сообщений: 4
Спасибо всем. Но то, является "открытым" и командой. Netrc файл еще не будет работать для меня. Я пробовал и то и другое. В обоих случаях, программа оперативного меня пароль. Я "" (двойные далее "), в открытой и. Netrc на пароль.

Так что я, возможно, придется использовать NET:: FTP потом.
Рекламные ссылки
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся Вне


Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Автоматизируйте FTP borncrazy Shell программирование и сценарии 11 02-21-2008 12:10 AM
Здесь документа автоматизировать Perl-скрипт, вызов скрипта hogger84 Shell программирование и сценарии 3 10-22-2007 11:15 AM
Автоматизация изменений конфигурации nhatch Shell программирование и сценарии 3 02-06-2007 03:31 PM
Автоматизируйте FTP CamTu UNIX перспективных И опытных пользователей 4 02-25-2005 10:08 AM
автоматизации работы FTP flowrats UNIX для чайников Вопросы И Ответы 11 07-24-2002 09:47 AM



Часовой пояс GMT -4. Текущее время 02:22 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX и Linux Форум Авторские права © 1993-2010 годов. Все права Reserved.Ad управление RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0