Linux命令(cp,rm)不在perl脚本中执行.有些作品.但是没有返回错误

Tom*_*r99 0 linux perl command cp

我有一个非常奇怪的错误.

我运行一个执行linux命令的perl脚本.他们执行如下:

my $err = `cp -r $HTML /tssobe/www/tstweb/$subpath/$HTMLDIR1`;
myLog("$err");
Run Code Online (Sandbox Code Playgroud)

并且$ err为空,这意味着命令没有返回和错误.(对?)

我尝试用exec""或system()执行linux命令,但没有成功.我试图改变路径.相同.

另外,我试图在新的perl脚本中只运行cp命令.有用.但不是我的完整perl脚本.

在这个perl脚本中,有些命令正在运行,有些则没有.

该脚本昨天正在运行,今天早上不再了.在此期间没有进行任何更改.

我尝试了很多东西,如果有人有想法,我会很高兴的.

编辑:服务器有很多进程未终止.清洁那些解决了问题.所以问题与另一个应用程序有关,但是由于你的意见我会改进日志记录.

DVK*_*DVK 5

小问题:你没有捕获STDERR,所以你不会看到错误(你也没有检查$?返回码).

你应该做

my $err = `cp -r $HTML /tssobe/www/tstweb/$subpath/$HTMLDIR1 2>&1`;
Run Code Online (Sandbox Code Playgroud)

将STDERR重定向到STDOUT,或使用其中一个模块运行命令.


大问题:

您不应该从Perl运行Perl-native模块所存在的系统命令.在这种情况下:File::Copy::Recursive模块.

您也可以滚动自己复制目录File::Copy.