带有SSH2的PHP CLI脚本终止,没有消息

我有一个长期运行的PHP脚本,它同步两个系统并使用SSH2将文件上传到服务器。 该脚本使用cronjob执行。 </ p>

我的问题是,脚本只是终止(有时在1小时后,有时在两小时后)没有任何输出。 我在PHP的错误日志中找不到任何内容,也没在系统日志中找到任何内容。 这在三台独立的机器上同样发生。 </ p>

基本上这是我上传的代码(包括成像错误处理等):</ p>

  $ oFtpStream = fopen('ssh2  .sftp://'。$ this-&gt; sUser。':'。$ this-&gt; sPassword。'@'。$ this-&gt; sHost。':'。$ this-&gt; iPort。$ psTargetFile,  'w'); 

$ sFileContents = file_get_contents($ psSourceFile);

nfwrite($ oFtpStream,$ sFileContents)=== false)
nclclose($ oFtpStream);
ssh2_sftp_chmod($ this-&gt; oFtpConn ,$ psTargetFile,0777);
</ code> </ pre>

我会非常感谢任何想法/想法。 </ p>

提前致谢!</ p>
</ div>

展开原文

原文

I have a long running PHP script that is synching two systems and using SSH2 to upload files to a Server. The script is executed using a cronjob.

My problem is, that the script just terminates (sometimes after 1 hour, sometimes after two hours) without any output. I couldn't find anything in PHP's error logs, nor in the systemlogs. This happens equally on three separate machines.

Basically this is my code (please imaging error handling etc. included) for the upload:

$oFtpStream = fopen('ssh2.sftp://' . $this->sUser . ':' . $this->sPassword . '@' .$this->sHost . ':' . $this->iPort . $psTargetFile, 'w');

$sFileContents = file_get_contents($psSourceFile);

fwrite($oFtpStream, $sFileContents) === false) 
fclose($oFtpStream);
ssh2_sftp_chmod($this->oFtpConn, $psTargetFile, 0777);

I would be really thankfull for any thoughts/ideas.

Thanks in advance!

dongza1708
dongza1708 该过程也是从API检索和处理数据并从API系统下载文件,所以不幸的是我们不能只进行rsync。
3 年多之前 回复
dongxi7722
dongxi7722 -如果这是在cronjob中执行的话,那么很可能不会因为PHPCLI没有时间限制。同时达到时间限制将在错误日志中创建一个条目。
3 年多之前 回复
douxie0824
douxie0824 你确定PHP执行时间限制没有踩到吗?php.net/manual/en/function.set-time-limit.php
3 年多之前 回复
duanba8173
duanba8173 我和@Dimi在一起,根本不需要在这里使用PHP。很多直接可调用的工具可以直接放入cron:rsync,ncftpget,scp,curl,wget......
3 年多之前 回复
duan2477
duan2477 如果您所做的只是同步文件,请使用此linux.die.net/man/1/rsync
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问