我想通过PERL FTP功能在远程服务器上创建目录和上传文件。一切正常,但我无法使用CHMOD 777上传它们。是否可以通过命令更改它,或者它将由用户访问级别决定?
#!/usr/bin/perl -w
use Net::FTP;
my $ftp=Net::FTP->new($server);
$ftp->login($user, $password);
$ftp->binary();
$ftp->mkdir($outputdir);
$chmod = "chmod 777 $outputdir";
$ftp->cmd($chmod);
$ftp->cwd($outputdir);
$ftp->put($file);
my $chmod = "chmod 777 $file";
$ftp->cmd($chmod);
$ftp->quit;
答案 0 :(得分:1)
获取服务器对chmod命令的响应会很有帮助,例如:使用$ftp->code
和$ftp->message
或只是启用调试。在这里您可能会看到服务器不理解您的命令。
原因可能是您使用$ftp->cmd
来执行此命令。但是,cmd
用于发送FTP命令,而chmod不是FTP命令。要在服务器的网站上执行任何命令,您应该使用site
,例如$ftp->site("chmod ....")
。即使在这里,您也应该检查结果,因为服务器不需要遵守您的请求并执行您想要的任何命令。
总结:始终检查错误消息。除此之外:请{per}脚本use strict
。