求助cron进程调用perl脚本的问题

求助cron进程调用perl脚本的问题

求助cron进程调用perl脚本的问题
下面是我写的一串perl脚本用来ftp文件。
我想使用cron进程每5分钟执行一次,但是在执行过程中发现foreach{}的内容不执行,希望那位大哥,大姐指点小弟一下。万分感谢!!!!!!!!!

#!/usr/bin/perl -w

use Net::FTP;
use strict;

my $hostname = "intf07";
my $FTP_user = "zhangt";
my $FTP_Password = "zhangt";
my $FTP_Path = "/zhang/zhangt/adapter/src/smstest/data";
my $ftp;
my $db = "boss15";
my $Interface_Path = "/usr/local/Synergy_Application/Interface/upload/";
my $putfile = "*.TXT";
my @Filelist;
my $File;
my $ls;
my $ErrorFlag ="0";

$ls = " ls $putfile" ;
@Filelist=`$ls`;

open(LogF,">>".$Interface_Path."sms".'.log');
print LogF "\n================ Begin ================\n";

foreach $File (@Filelist) {
chomp $File;

print $File."\n";

print LogF ("\n"."处理CR: ".$File."\n");

$ftp->login($FTP_user,$FTP_Password) or exitLog( "Cannot login ". $ftp->message);

$ftp = Net::FTP->new($hostname, Debug => 0) or exitLog( "Cannot connect to $hostname: $@");

$ftp->cwd($FTP_Path) or exitLog( "Cannot change working directory ". $ftp->message);

$ftp->put($File);

if($ErrorFlag == 0) {
my $rm =" rm $File ";
system($rm)
}
else {
print LogF "\n"."error: CR ".$File."\n";
}
$ftp->quit;
}
print LogF "================ End ================\n";
close(LogF);
crontab 里面运行的时候,.
crontab 里面运行的时候,环境变量不正确
也就是说,当前路径并不是脚本所在的路径(可能还有其他的环境变量不同)

因此你 ls *.TXT 的时候,可能找不到文件

建议在脚本的开头使用
chdir("/home/perl");
这样的命令,进入脚本所在目录
$ftp->login($FTP_user.
$ftp->login($FTP_user,$FTP_Password) or exitLog( "Cannot login ". $ftp->message);

$ftp = Net::FTP->new($hostname, Debug => 0) or exitLog( "Cannot connect to $hostname: $@");

这两句反了吧?
对的 感谢大家 问题真是这两个地方
已经解决了
谢谢