无法 运行 从 crontab 强制执行

Cannot run perforce from crontab

我正在尝试从 crontab 执行与 perforce 一起工作的 perl 脚本。这是我的 perl 代码:

print `/usr/local/bin/p4 filelog /projects/config.json`;

我遇到错误:

Perforce client error:
    Connect to server failed; check $P4PORT.
    TCP connect to perforce:1666 failed.
    Name or service not known

同一命令在 cli 中运行顺利。我能用它做什么?

这是因为您没有在您的 cron 环境中设置 P4CONFIG(或替代)环境变量。您只需要复制您在交互式 shell 中拥有的环境变量(也许使用 set | grep ^P4 来确定它们是什么)。

查找有关设置环境变量的更多详细信息here

我发现解决方案是在 perl 代码中设置环境变量:

    $ENV{'P4PORT'} = '...';
    $ENV{'P4CLIENT'} = '...';
    $ENV{'P4USER'} = '...';
    $ENV{'P4PASSWD'} = '...';