Я пытаюсь отбросить всю таблицу в базе данных. Мое намерение просто, и я хочу для этого произойти иногда посредством запланированной команды crontab.
На данный момент у меня есть этот пример cronjob попытка (который не работает, если Вы изменяете расписание на что-то ближе для тестирования):
0 0 1 1 * mysql -u root -p <passwordWouldBeHere> -D Survival -h localhost -e 'DROP TABLE stats;'
Это кажется корректным?
Однако это не работает. Мое единственное подозрение - то, что это происходит возможно из-за содержания пароля, который содержит a и символ в нем, я подозреваю, что часть пароля может быть обнаружена как дополнительный отдельный аргумент в рамках команды, даже при том, что целый пароль связывается без пробелов.
Я должен был установить почтовый сервер на своем хосте только для получения возвращаемых аргументов каждый раз, когда это и любая другая команда, запланированная на crontab, выполняются (исключительный, но я предполагаю, что это - то, как crontab работает).
Благодаря этому, хотя, я теперь получаю сообщение об ошибке возврата от дефектной команды, я показал примером:
/bin/sh: 1: <part of the password>: not found
Сообщение в основном говорит мне, что часть пароля не была найдена, как будто тот блок где дополнительный аргумент. Я не нашел руководств, объясняющих целый mysql синтаксис команды, таким образом, я не знаю, мог ли '&' на самом деле представить запуск нового параметра, таким образом вызвав эту ошибку. Если это, где случай, я мог, возможно, вставить некоторый специальный символ исключения в пароле только для предотвращения его от того, чтобы быть обнаруженным как отдельный параметр?
Я не попытался выполнить команду вручную на регулярной оболочке. Я могу сделать это, но я предпочел бы разбираться в нем непосредственно в crontab. Я предполагаю, что получил бы подобное сообщение возврата как ошибку.
Я использую 10.3.16-MariaDB И Ubuntu 18.04
Я приложил все усилия для включения всей релевантной информации об этом вопросе, поэтому если Вы находите, что что-то отсутствует, укажите на него вежливо, и я исправлю/добавлю содержание. Заранее спасибо за любую справку.
Решение: Измененный синтаксис на:
30 22 7 8 * mysql --host localhost --user root --password="<passwordWouldBeHere>" -D Factions -e "TRUNCATE TABLE stats;" ;
Также решил усечь вместо отбрасывания.