Роман Юрьевич Ипатьев, очевидно что если я в лоб использую file_get_contents то могу выйти за пределы memory_limit.
Если я использую cat, через exec, очевидно это будет безопасно для memory_limit.
ThunderCat, есть несколько файлов. Их надо объединить максимально быстро. Размер файлов может быть достаточно большой, поэтому тупо читать весь файл в память нельзя.
Чтение и запись кусками == большое количество операций, а значит время.
Нужны идеи.
Роман Юрьевич Ипатьев, я сам справлюсь с оптимизацией поблочного переписывания файлов с помощью file_put_contents.
Вопрос состоит именно в том, как склеить два файла не прибегая к чтению в php скрипте.
Очевидный ответ - использовать shell_exec и cat.
Роман Юрьевич Ипатьев, блин, вы правда думаете что это очевидная идея не пришла мне в голову? Ничего что это куча операций чтения записи и при больших объемах, дело может оказаться действительно минут на 5.
На linux подобная задача решается штатными инструментами cgroup и виртуалка не понадобится, можно каждому приложению выделить свою cgroup со своими сетевыми правилами.
А можно поподробнее с этого места? Как мне поднять proxy, в отдельной cgroup с отдельными сетевыми правилами?
Я конечно сейчас погуглю, но буду благодарен за подсказу.
shurshur, это легко решается с помощью прокси - можно запустить несколько версий FF с разными прокси. Проблема в том что настройка маршрутов утомительна. Мне бы иметь просто отдельный браузер который выходит с реального VPN - это более гибкое и понятно решение.
shurshur, этих ресурсов очень много. Как тех на которые надо попадать из VPN, так и тех на которые VPN не нужен.
Я знаю что их можно настраивать, но тогда мне проще отключать/включать VPN.
Денис Аникин, все правильно - так и должно быть. Это просто порезанный на куски архив. Он сам его склеит.
Это и есть копия созданная с помощью встроенного механизма. Именно ее надо было разворачивать с помощью restore.php, а не архив в который их кто-то видмо вручную поместил.
Ясно - у вас похоже бэкап был упакован в архив. Переместие эти файлы в документ рут. Удалитие пустую папку. Залейте туда restore.php и запустите востановление.
Денис Аникин, ну очевидно у вас в документ рут лежит никак не развернутый сайт, а просто папка с именем 30.11.2019.
Как вы получили архив с такой папкой не очень понятно. Видимо все же это не архив созданный встроенным средством создания РК. Хотя то что он нарезан на куски по 100мб как бы намекает на это.
Я так понимаю при воставновлении через restore.php этапа востановлени БД не было?
Думаю вам стоит посмотреть в эту папку - не находится ли там файлы сайта, и, если да, переместить их все-таки в документ рут для начала.
Если я использую cat, через exec, очевидно это будет безопасно для memory_limit.