PHP exec () и разрешения файловой системы - PullRequest
0 голосов
/ 19 сентября 2018

Итак, я новичок в exec, и недавно мне захотелось сделать автозагрузку mysql с помощью php-скрипта.

Мой php-файл исходит из

var/WWW/html/tool/script.php

Папка читает root / WWW-data, когда я делаю ls -l

Это делает

exec('mysqldump -user=user --password=pass db > selfDir\dump.sql')

Теперь я ожидаю, что скрипт выведет файл dump.sql в папку скриптов.Это не происходит, хотя.

Только когда я сделал touch dump.sql и chmod 777 dump.sql был на самом деле пишется дамп.

Я не понимаю, почему.Как я могу изменить свой exec(), чтобы убедиться, что он может СОЗДАТЬ дамп-файл вместо того, чтобы писать в него только после того, как он уже существует?

спасибо

1 Ответ

0 голосов
/ 19 сентября 2018

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

Полагаться на php exec может слишком много ошибок.

  • Ограничение времени выполнения Php
  • Выполнение из запроса, затем запрос прекращается, exec уничтожается или нужно ждать все время mysqldump
  • Более сложные разрешения
  • Ограничение памяти в php и на сервере

В cron у вас будет резервная копия (пример из Java Guy ):

0 0 * * * mysqldump -u 'username' -p'password' DBNAME > /home/eric/db_backup/liveDB_`date +\%Y\%m\%d_\%H\%M`.sql

Другая ссылка для резервного копирования crontab с помощью mysql: Ответ K1773R mysql-dump-cronjob

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...