我正在将一个现有脚本移植到perl中,在执行系统命令(特别是lftp)时遇到了一些困难。下面是我在bash做这件事的方法:
巴什:
lftp -u $ftpusername,$ftppass -e open $hostname << EOF
set ftp:ssl-allow no
set mirror:use-pget-n 5
glob -a rm -r "${remote_dir}/file.php"
EOF
因此,我想知道如何在Perl中执行这个完全相同的命令。以下是我尝试过的,但没有结果的:
Perl:
system(
当我试图下载ftp服务器的内容时,我得到了这个:mget: filename.xlsx: file already exists and xfer:clobber is unset错误。基本上它是使用cygwin设置的。最近,我们升级了服务器,将所有数据按设定的计划下载到服务器上。旧服务器是Windows server 2003,新服务器是windows server 2008。当我试图下载一个已经在文件夹中的文件时,我遇到了问题。客户端从不更改文件名,所以当我们从服务器下载它时,就会得到这个错误。我能在批处理文件中放什么东西,或者什么东西可以强迫它替换那个文件吗?提前感谢
我正在使用lftp镜像来自外部服务器的文件,但是现在我需要的是在成功下载后重命名源目录(在远程服务器上)。我需要的是打开远程服务器列表目录上的连接,下载从"todo“(即todo.20121019 )开始的所有目录,在成功之后,我必须将下载的目录重命名为”dol.20121019“。服务器上可能有多个dir。
远程FTP服务器仅用于活动连接。
#!/bin/bash
directories=`lftp -f lftp_script_file.lf |grep done|awk '{print $NF}'`
for i in $directories
do
我确信有一个简单的方法可以做到这一点,但我找不到它。我想要做的是使用lftp执行一系列命令,并且如果可能的话,我希望避免重复连接到服务器。
基本上,我在服务器上有一个包含所有ftp目录的文件。我希望连接到服务器,然后执行如下代码:(假设此时我已经使用cat将文本文件转换为一个行数组)
for f in "${myarray}"
do
cd $f;
nlist >> $f.txt;
cd ..;
done
当然这是行不通的,但我必须想象有一个简单的解决方案来实现我想要实现的目标。
当涉及到shell脚本时,我相当缺乏经验。有什么建议吗?
我正在尝试登录到一个ftps站点。我尝试在命令行中提供登录creds (并将set参数放入~/.lftprc中,然后打开lftp会话并使用lftp作业控制语句键入这些参数。不管怎么说,我总是碰到同样的路障:
421 Sorry, cleartext sessions are not accepted on this server.
Please reconnect using SSL/TLS security mechanisms.
我从以下参数中得到了最大的误差,但是继续得到上面的错误。
如何让lftp 从命令行使用SSL/TLS安全机制?
目标是使用bash (不使用expect编程)