在说明一点在linux命令行下执行正常

解决方案 »

  1.   

    有点不明白你这个程序的意思。你的这段程序
    exec("/usr/local/bin/php /usr/local/apache/htdocs/dxvod/AutoBackup.php 0 N");
    是PHP程序么?
    exec是php里的函数么?如果是,那应该改为:
    exec("/usr/local/apache/htdocs/dxvod/AutoBackup.php");并确保AutoBackup.php中的开头第一行为:
    #!/usr/local/bin/php再试试看,应该就执行一遍了。
      

  2.   

    exec,是php里的系统函数,可是照你那样根本就不执行了
      

  3.   

    刚刚做了实验,按照上面我说的方法,会只执行一遍。
    但AutoBackup.php的第一行要改为:
    #!/usr/local/bin/php -q具体内容形式应该类似下面这样:
    #!/usr/local/bin/php -q
    <?php
    mysql_connect("","","");
    ..................................
    ?>你的错误应该这样解释:
    本身exec函数就是执行一条linux命令。你写好的AutoBackup.php应该已经是一个linux下的脚本命令文件。是可执行的。
    在使用exec()函数时,已经执行了一边AutoBackup.php,可你有在命令行解释了一遍AutoBackup.php,当然就执行了第二遍~!按照我上面的方法,不会有错了。
      

  4.   

    另外,我的AutoBack.php里有这样几条语句,去掉后就执行一遍,可我必须要
    /*$outfile=fopen("$BakDir/$filename","w");
    fwrite($outfile,$Data_OUT);
    fclose($outfile);*/
      

  5.   

    错了,执行$outfile=fopen("$BakDir/$filename","w");
    fwrite($outfile,$Data_OUT);
    fclose($outfile);也是两遍