如何编写cron来复制和归档到本地服务器?

时间:2016-03-31 01:58:55

标签: php bash cron

我想设置一个cron来将作业从URL复制到服务器。

我使用的cron命令是:

cd /home/username/public_html/bin/sh; /usr/local/php54/bin/php script.php;

script.php文件包含:

rm -f /home/username/public_html/filepath/file.zip; cd /home/username/public_html/filepath/; wget -q -O /dev/null "https://www.domain.com/file.zip"

但它没有用。

如果档案/home/username/public_html/filepath/file.zip已经存在,我还想将其复制。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

  1. 打开crontab进行编辑

    crontab -e

  2. 在这个时间表上添加一行(请查看所需的时间表):

    * / 10 * * * * rm -f /home/username/public_html/filepath/file.zip; cd / home / username / public_html / filepath /; wget -q -O / dev / null" https://www.domain.com/file.zip"

  3. cron将每10分钟运行并删除file.zip,而不是将新文件.zip下载到/ home / username / public_html / filepath /.

答案 1 :(得分:0)

PHP脚本有两种模式:

  1. 直接输出到STDOUT(默认值)
  2. 执行PHP命令(<?php?>
  3. 之间发生的事情

    您的PHP脚本:

    rm -f /home/username/public_html/filepath/file.zip; cd /home/username/public_html/filepath/; wget -q -O /dev/null "https://www.domain.com/file.zip"
    

    等同于shell脚本:

    echo 'rm -f /home/username/public_html/filepath/file.zip; cd /home/username/public_html/filepath/; wget -q -O /dev/null "https://www.domain.com/file.zip"'
    

    ...除非你查看cron的输出(可能是通过电子邮件发送给你),否则它没有明显的效果。

    那些不是PHP命令,它们是shell命令。因此,使用shell而不是PHP来执行脚本。

    cd /home/username/public_html/bin/sh; /bin/sh script.php;
    

    ...并考虑将其重命名为不那么具有欺骗性的内容,例如script.sh