【问题标题】:PHP SHELL EXEC WITH EXCLUDEPHP SHELL EXEC WITH EXCLUDE
【发布时间】:2014-03-12 02:13:28
【问题描述】:

这是我当前的 PHP 脚本,它运行良好,只是它备份了我想要排除图像目录的所有内容。

<?php
function backup()
 {
  shell_exec("tar -cvf backup`date +%Y%m%d`.tar.gz /home/USERNAME/public_html/WEBSITE.com.au* ");
}

backup();
?>

这就是我想要做的......

<?php
 function backup()
 {
  shell_exec("tar --exclude /home/USERNAME/public_html/WEBSITE.com.au/images/* -cvf backup`date +%Y%m%d`.tar.gz /home/USERNAME/public_html/WEBSITE.com.au/");
 }

 backup();
 ?>

我无法让排除功能工作。任何想法如何实现这一目标?

【问题讨论】:

    标签: php linux shell


    【解决方案1】:

    我怀疑您只是想从该路径的末尾删除*,因为它正在扩展为多个参数,并且只有第一个参数跟随--exclude。您还需要删除尾部斜杠,因为...我不知道。 tar 很挑剔。

    也就是说,从 PHP 中执行此操作似乎是一个非常糟糕的主意。任何发现此端点的人都可以很容易地通过点击它几次来提高您的 CPU 使用率,甚至通过并行点击它来破坏您的备份。

    【讨论】:

    • 谢谢我试过 date +%Y%m%d.tar. gz /home/www/public_html/www.com.au/"); } 备份(); ?> 但它仍然支持整个事情
    • 至于 php 文件,它不在公共 html 文件夹中.. 这应该没问题
    • err,那你是怎么运行的呢?
    • 已编辑答案;您也需要删除尾部斜杠
    • 第一次发现你是正确的。我将它作为一个 cron 作业运行...... oscommerce 有一个目录文件夹,我忘了添加它...... oppps 对不起你很久了。 ..谢谢你的帮助..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多