CronJob BackUp:每天,每周,每月运行

时间:2015-11-15 10:59:17

标签: php cron cpanel

我做了一些谷歌搜索,但我能找到的只是单独的东西而且cPanel的界面有点令人困惑,说实话。 enter image description here

基本上,我有这个脚本来创建文件+ mysql备份:

<?php

$auth = base64_encode(":");
$domain = "";
$theme = "";
$secure = false;
$ftp = false;
$ftpserver = "";
$ftpusername = "";
$ftppassword = "";
$ftpport = "21";
$ftpdirectory = "/";

if ($secure) {
    $url = "ssl://" . $domain;
    $port = 2083;
} else {
    $url = $domain;
    $port = 2082;
}

$socket = fsockopen($url, $port);
if (!$socket) {
    exit("Failed to open socket connection.");
}

if ($ftp) {
    $params = "dest=ftp&server=$ftpserver&user=$ftpusername&pass=$ftppassword&port=$ftpport&rdir=$ftpdirectory&submit=Generate Backup";
} else {
    $params = "submit=Generate Backup";
}

fputs($socket, "POST /frontend/" . $theme . "/backup/dofullbackup.html?" . $params . " HTTP/1.0\r\n");
fputs($socket, "Host: $domain\r\n");
fputs($socket, "Authorization: Basic $auth\r\n");
fputs($socket, "Connection: Close\r\n");
fputs($socket, "\r\n");

while (!feof($socket)) {
    $response = fgets($socket, 4096);
    echo $response;
}

fclose($socket);

?>

我想运行那个PHP文件,以便备份我的东西,就像任何常规共享主机方案中的cPanel一样:每日,每周和每月。我想这样做是因为我的网站被搞砸了,因为托管公司的备份工作不正常。

  1. 我是否需要每天,每周,每月创建单独的cron作业,或者我可以一次完成所有这些作业?
  2. 如果我在 Command 字段中输入命令,是否足以使其工作或我需要设置其他输入字段?
  3. 如上所述,运行备份的正确命令是什么?
  4. 谢谢!

1 个答案:

答案 0 :(得分:2)

在该界面中,您有一些不同的命令选项,

php -q /path/to/your/script.php

会起作用。

如果您将#!/usr/bin/php -q添加到PHP脚本的顶部,则可以直接从cron调用它:

/path/to/your/script.php

此处介绍了您的问题的一般答案(不涉及该Web界面):

How to execute a php script every day

这可能也很有帮助,这是一个关于crontab语法的随机但相当不错的参考:

http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/