как соединиться с mysql базой данных из сценария оболочки? действительно ли это возможно?

Проблема со СВЯЗУЮЩИМ ЗВЕНОМ с корневых серверов DNS - это, когда у Вас есть следующая ситуация:

example.com имеет записи DNS ns1.example.net и ns2.example.net как его серверы NS. .com полномочия, которые являются, куда сопоставитель DNS собирается искать доменное имя, НЕ МОГУТ обеспечить IP-адреса для ns1.example.net и ns2.example.net, потому что они не находятся в его полномочиях.

Способ зафиксировать это состоит в том, чтобы .com домен использовал порожденные серверы NS .com. Таким образом, example.com использовал бы ns1.example-2.com и ns2.example-2.com, и все будет прекрасно, так как .com полномочия могут обеспечить IP-адрес для сервера имен. Это сохраняет несколько распространений в прямом и обратном направлениях к корневым серверам DNS, с тех пор в Вашем случае для получения example.com, он теперь также должен спросить .NET о example.net.

В моем случае все мои домены имеют их собственные записи NS, таким образом, для example.com у меня есть a.ns.example.com и b.ns.example.com, и для моего домена example.net у меня есть a.ns.example.net и b.ns.example.net.

Это требует, чтобы больше установки и не все хосты могло бы быть готово позволить Вам делать так. Можно застрять с тем, что Вы в настоящее время имеете!

0
задан 19 August 2010 в 22:04
5 ответов

Можно просто использовать клиент MySQL CLI mysql для того, чтобы запросить или управлять Вашей базой данных.

3
ответ дан 4 December 2019 в 11:08

Вы могли сделать что-то как

echo "insert into squidlog (time) values (now());" | mysql -u log -ploguserpassword log_db

Я не крупный сценарист оболочки, но Вы получаете идею. Я уверен с некоторым необычным управлением, Вы могли получить всю соответствующую информацию (как IP-адрес) там также.

2
ответ дан 4 December 2019 в 11:08

Можно использовать mysql использование команды CLI...

mysql -hhostname -uusername -p'password' -e'select some sql here;'
2
ответ дан 4 December 2019 в 11:08

Какой язык Вы используете для своего сценария?

В Perl, f.e., можно определенно запросить базу данных.

При использовании Bash (или просто любые другие сценарии оболочки), Вы не можете сделать этого непосредственно; необходимо будет полагаться на инструменты командной строки, которые могут сделать задание (такое как клиентские инструменты MySql) и проанализировать их вывод.

1
ответ дан 4 December 2019 в 11:08

В дополнении к вышеупомянутым ответам эта форма может быть большим количеством convienent:

mysql -h hostname -u username -p 'password' <<- _END_ | grep something
insert into....;
select * from....;
_END_

Я добавил | grep something только показать Вам вариант передачи по каналу вывода. Это - unessacary, если Вы не должны обрабатывать вывод SQL, Вы используете. Вы могли, вероятно, перенести все это в a myvariable=$(....) локально обработать ouput, не используя другой сценарий. Это - пример здесь документ. Обратите внимание, что это не тестируется.


Более изящная альтернатива:

Более изящный способ сделать то, что Ваше выполнение может быть должно передать данные логов по каналу к сценарию непосредственно вместо того, чтобы обработать файл журнала. Это дало бы Вам данные реального времени, и Вы не должны будете волноваться об установке задания крона для проверки файла на изменения с промежутками.

Пример этого метода:

LogFile Path/To/Log/In/Your/Configuration

кому:

LogFile |/usr/local/custom_script_you_made_to_process_the_data

Заметьте канал в начале пути. Это запишет вывод непосредственно в Ваш сценарий вместо того, чтобы поместить его в файл журнала. Лично я использовал бы этот переданный по каналу метод и затем использовал бы сценарий жемчуга, чтобы извлечь и отформатировать данные и затем Perl 'DBI:: mysql' пакет для отправки его в mysql. При тихой необходимости в других данных, Вы могли бы затем добавить их к исходному файлу журнала.

Обратите внимание, что к Вашему сценарию с этим вторым методом представляемые данные, кажется, прибывают из STDIN (стандартный вход) как кто-то ввел его, или Вы передали файл по каналу в сценарий.


Просто мой собственный скромный комментарий, если Вы хотели сделать это только в оболочке.... Когда я сначала запустил, я хотел сделать все с Bash. В то время как оболочка является довольно потрясающей, я нашел, что сжатие меня только к Bash на самом деле заставляло меня перейти через смешные обручи для выполнения некоторых задач. После того как я добавил Perl к своим сценариям и перешел назад и вперед между двумя для использования в своих интересах то, в чем каждый выделяется, я сэкономил много времени и нашел мои решения намного более изящными и чистыми. В той точке я стал преобразованным в использование лучшего инструмента для задания вместо того, чтобы пытаться использовать тот же инструмент для всех проблем, который работает невероятно хорошо с Linux, так как Shell делает феноменальное универсальное и простое в использовании связующее звено между различными сценариями на различных языках.

0
ответ дан 4 December 2019 в 11:08

Теги

Похожие вопросы