如何用bash写一个小日志?

如何用bash写一个小日志?

exec我通过 PHP和 bash运行应用程序。我的问题是这会创建很大的日志文件。我只需要最后一个输出,不需要每秒所有活动的日志。

这是我的狂欢:

%s > %s 2>&1 & echo -n $! > %s

我应该如何修改以不附加输出文件并重写它?

完整的脚本是:

  exec(sprintf("%s > %s 2>&1 & echo -n $! > %s", $cmd, $outputfile, $pidfile));

这是我的完整程序:

$kovNev = 'uid1_fil_'.time();       
$cmd = 'btdownloadheadless --saveas /var/www/virtual/tigyisolutions.hu/boxy/htdocs/downloaded_torrent/'.$kovNev.'/   '.$_REQUEST["torrent"];
$outputfile = 'downloaded_torrent/folyamatok/'.$kovNev.'.txt';
$pidfile = 'downloaded_torrent/folyamatok/'.$kovNev.'_id.txt';
exec(sprintf("%s 2>&1 | tail > %s& echo -n $! > %s", $cmd, $outputfile, $pidfile));

答案1

> $outputfile不追加但覆盖文件。>>将附加到文件中。无论如何,当您使用 shell 构造时,您可以使用管道:

%s 2>&1 | tail > %s &

顺便说一句:这仅在路径不包含特殊字符时有效。更好的解决方案是:

'%s' 2>&1 | tail > '%s'& echo -n $! > '%s'

这可以防止路径中除了 ' 本身之外的所有问题。

相关内容