#mysql #linux #shell #java-8 #centos
#mysql #linux #оболочка #java-8 #centos
Вопрос:
Я хотел бы добавить дату в имя файла при создании резервной копии с использованием mysqldump. Я сохраняю команду в файле свойств и запускаю ее через ProcessBuilder и сценарий оболочки. Я пробовал несколько способов добавления даты (кстати, все ответы здесь были только в том случае, если мы запускали команду непосредственно в Linux)
mysqldump -u <user> -p <database> | gzip > <backup>$(date %Y-%m-%d-%H.%M.%S).sql.gz
Ошибка: не найдена таблица для » %Y-%m-%d-%H.%M.%S»
mysqldump -u root -ppassword dbName --result-file=/opt/backup/`date -Iminutes`.dbName.sql
Получена ошибка: неизвестная опция -I
Есть ли способ добавить дату в саму команду? Я не могу добавить дату в метод Java или сценарий оболочки.
Ответ №1:
Из вашего вопроса я не могу сказать, работаете ли вы в оболочке. Если это так, попробуйте эти три строки для создания файла резервной копии.
DATE=`date %Y-%m-%d-%H.%M.%S`
FILENAME=backup${DATE}.sql.gz
mysqldump -u user -p database | gzip > ${FILENAME}
Обратите внимание, как вы должны окружить команду date в первой строке обратными метками, а не ${}
, чтобы получить ее результат в переменной оболочки DATE.
Комментарии:
1. Я также попытался запустить команду с обратными ссылками: mysqldump -u root -ppassword dbName —result-file=/opt//backup/
date %Y-%m-%d-%H.%M.%S
.dbname.sql Я получил сообщение об ошибке: не удалось найти таблицу: » %Y-%m-%d-%H.%M.%S`.dbname.sql»2. Я не могу изменить команду в оболочке, я сохраняю эту команду в файле, а затем должен запускать ее напрямую через сценарий оболочки. Итак, я надеялся добавить дату и время выполнения команды