Сохранять копию файла на сервере каждый день

У меня есть простая страница html, которая добавляет записи в файл json, который находится на сервере, через ajax php. Я хотел бы добавить несколько строк php, чтобы каждую ночь в 11:59:59 он сохранял резервную копию исходного файла на сервере (в идеале в папке с именем backup).

Итак, вот что у меня есть в php. По сути, это просто открытие файла json, добавление записи и сохранение. Я хочу убедиться, что у меня есть резервный файл на каждый день в 11:59:59, который сохраняется в папке резервных копий на сервере.

    <?php
    $theuser = $_POST['theuser'];
    $thecontest = $_POST['thecontest'];
    $timestamp = $_POST['timestamp'];


        $json = file_get_contents('alldata.json');
        $data = json_decode($json, true);
        $flag = false;
        foreach($data as $d){
            if ($d['username'] == $theuser && $d['contest'] == $thecontest){
                $flag = true;
                break;
            }
        }
    if (!$flag){
        $data[] = array('username'=> $theuser, 'contest' => $thecontest, 'timestamp' => $timestamp);
        file_put_contents('alldata.json', json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
        $msg = "yes";
    }else{
        $msg = "no";
    }

    echo $msg;die;

?>

Для этого вам понадобится задание Cron, поскольку PHP не может работать сам по себе в определенное время.

Andreas 10.12.2018 21:42
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
46
1

Ответы 1

Я ничего не знаю о том, какие привилегии у вас есть на сервере или в какой среде вы находитесь, но вы хотите запустить этот скрипт через cron работа.

Вы сможете точно установить время и частоту запуска сценария, а затем выполнять его по расписанию. Но вам нужно иметь доступ к самому серверу, так как это НЕ функция php, а функция вашего сервера. Невозможно сделать это изначально в PHP, если вы не сделали что-то нелепое, например бесконечный цикл, который постоянно проверял время, но это все равно будет тайм-аутом, и я привожу его только в качестве примера.

Я предлагаю вам ознакомиться с заданиями cron, а затем, если у вас есть конкретный вопрос о том, как их реализовать, дайте мне знать, и я буду рад помочь.

Я использую общий хостинг на godaddy и нашел раздел cron jobs в панели администратора. Я добавил следующую строку, которая будет выполняться каждый день. Дайте мне знать, если это имеет смысл. 0 0 * * * cp /calendrier/alldata.json / calendrier / backup В идеале я хотел бы иметь временную метку в конце каждого файла, который копируется в папку резервного копирования.

Carlos27 10.12.2018 22:16

Другие вопросы по теме