У меня есть shell / bash, который отлично работает для создания сценария резервного копирования, проблема в том, что у меня есть большие файлы, которые вызывают проблемы при запуске сценария. Сценарий имеет q сжимает файл в tar.gz , и он делает это, но когда он достигает 6 ГБ + или сценарий продолжает сжимать файл, но идет в следующих строках, и резервное копирование не выполняется, сервер должен иметь set_time_limit; равно php, php-файл, который вызывает shell / bash, я использую set_time_limit (0); и работает очень хорошо, в shell / bash тоже есть что-то?

Сценарий:

MYSQLDUMP="$(which mysqldump)"
$MYSQLDUMP -u $DBUSER -h $DBHOST -p$DBPASS $DBNAME | gzip > $TIMESTAMP.sql.gz

ssh $USER_SSH@$HOST_SSH "tar -zcf - $HOME" > $TIMESTAMP.backup.tar.gz

tar -zcf $TIMESTAMP.tar.gz $TIMESTAMP.backup.tar.gz $TIMESTAMP.sql.gz

SUCCESS=$?

rm $TIMESTAMP.sql.gz
rm $TIMESTAMP.backup.tar.gz

Я не разместил переменные, потому что я думаю, что это не нужно

Перед тем, как закончить tar, он удаляет 2 файла с последними строками ... если файл меньше чем 6GB или 7GB, этого не происходит

1 ответ1

0

Для начала было бы полезно узнать, как вы вызываете свой php-скрипт. Во-вторых, вместо того, чтобы php-скрипт выполнял дамп mysql, вы можете сделать так, чтобы ваш bash/shell-скрипт делал это, и все, что делает ваш php-скрипт, это вызывает его.

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

В вашем bash-скрипте обновите строку в mysql, сообщив, что она успешно прошла или потерпела неудачу после его сжатия, и если ваш bash-скрипт выполняет дамп, он будет более безопасным, чем PHP-скрипт, выполняющий это IE, ваши учетные данные для DB никогда не будет доступен через Интернет, так что я рекомендую также генерировать закрытый ключ для ssh для php. Затем вы можете просто выполнить проверку php позже с помощью другого скрипта, а затем сделать некоторые другие вещи, например, визуально сообщить об успешности и т.д., Проверив результаты в БД.

Существует множество различных способов решения этой проблемы: от использования PHP с несколькими различными сценариями до использования bash для выполнения дополнительных задач и даже включения других языков, таких как javascript, для динамического обновления страницы для результатов, поэтому вам не нужно обновить и т. д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .