通过php脚本将文件添加到crontab

时间:2014-11-06 05:54:41

标签: php shell

我在this forum发现可以像这样编辑crontab:
一个。 crontab -l> $ TMPFILE
湾编辑$ tmpfile
C。 crontab $ tmpfile
d。 rm $ tmpfile
所以,我正在尝试在php上实现这个解决方案:

include('Net/SSH2.php');
$ssh = new Net_SSH2('myhost');
if (!$ssh->login('user', 'password')) 
{
    echo'Login Failed';
}

    $ssh->exec('crontab -l > /var/www/tmp.txt');
    $content=file_get_contents("/var/www/tmp.txt");
    $content.='0 0 1 * * /usr/bin/php /var/www/clearPreviousMonth1.php';
    $file=fopen("/var/www/tmp.txt", "w");
    fputs($file,$content);
    fclose($file);
    $ssh->exec('crontab /var/www/tmp.txt');
    echo $content;

我可以在浏览器和tmp文件中看到crontab的已编辑内容,但是当我使用 crontab -e 时,它没有被更改。我的错是什么?

1 个答案:

答案 0 :(得分:0)

我必须在文件结束前添加新字符串。在其他情况下,它没有添加到crontab。 已更改$content.='0 0 1 * * /usr/bin/php /var/www/clearPreviousMonth1.php';$content.="0 0 1 * * /usr/bin/php /var/www/clearPreviousMonth1.php\n"; 请注意,使用"代替'是必要的,因为它只会将\n个符号附加到最后一个字符串