Конечно, mysql
— это интерактивный интерфейс в MySQL.
Предполагая, что вы просто запускаете mysql
и добавляете вывод в свой файл с помощью >>
, при первой попытке чтения из стандартного ввода он, вероятно, получит конец файла и завершит работу.
Возможно, вы захотите подумать о предоставлении команды для его обработки, например:
12 22 * * * /usr/bin/mysql
-u me
-p never_you_mind
-e "select * from my_table"
-D my_database
>>/home/me/output_file
(разделено на несколько строк для удобства чтения, но должно быть на одной строке).
Кроме того, это не слишком безопасно, поскольку ваш пароль может быть виден из ps
во время выполнения процесса. Поскольку это всего лишь пример, я не слишком беспокоюсь, но вам следует подумать о сохранении пароля в должным образом защищенном файле my.cnf
, если вы пойдете по этому пути.
С точки зрения запуска сценария оболочки из cron
, который, в свою очередь, выполняет команды MySQL, это также должно работать. Один из вариантов — здесь-doc:
/usr/bin/mysql -u me -p never_you_mind -D my_database <<EOF
select * from my_table
select * from my_other_table where id = 74
EOF
person
paxdiablo
schedule
24.08.2012