CronJob BackUp: запускать каждый день, неделю, месяц

Я выполнил поиск в Google для этого, но все, что я могу найти, это отдельные вещи, а интерфейс cPanel немного сбивает с толку, если честно. введите здесь описание изображения

В принципе, у меня есть этот скрипт для создания файлов + резервная копия 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. Какая правильная команда для запуска моих резервных копий, как описано выше?

Спасибо!


person odedta    schedule 15.11.2015    source источник


Ответы (1)


В этом интерфейсе у вас есть несколько различных вариантов команды,

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

должно сработать.

Если вы добавите #!/usr/bin/php -q в начало вашего PHP-скрипта, вы можете просто вызвать его прямо из cron:

/path/to/your/script.php

Общие ответы на ваши вопросы (не связанные с этим веб-интерфейсом) приведены здесь:

Как выполнять php-скрипт каждый день

Это также может быть полезно, случайный, но довольно приличный справочник по синтаксису crontab:

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

person Jameson    schedule 15.11.2015
comment
Итак, мне нужно создать задание cron для ежедневного использования, другое задание cron для еженедельного и еще одно для ежемесячного? - person odedta; 15.11.2015
comment
Я бы сказал, что главное преимущество разделения задач в резервной копии на ежедневные, еженедельные, ежемесячные и т. Д. Заключается в том, что вы можете делать разные вещи с разными заданиями и использовать разные хуки для установки политики хранения резервных копий. Например, вы можете оставить только 10 последних ежедневных выпусков, но иметь 12 ежемесячных, чтобы покрыть примерно последний год. И т.п. Кроме того, оформление заказа rsnapshot. - person Jameson; 15.11.2015