synology.forum архив спільноти · 2005–2022
ai.synology.forum →
ГлавнаяВеб Сервер + PHP / MySQL › Выполнение системных команд Linux из MySQL

Выполнение системных команд Linux из MySQL

Cheetos · 18.09.2012

Собственно вопрос в заголовке - кто знает как выполнить системную команду Linux из MySQL на NASе?

Перерыл большое количество страниц, кое-что нашел. Наиболее подходящее здесь.

Одно но - столкнулся с проблемой, описанной в последнем посте "Оказалось в линксах есть некий AppArmor, что типо фаервола, который и следит, чтобы приложения делали то, что им полагается, создавая для каждого приложения свой профиль безопасности."

Похоже, что на NASе стоит нечто подобное.

Может кто в курсе, как обойти данную защиту?

 

Cheetos · 30.09.2012

Все. решение вроде бы найдено!

1. Никакого Apparmora в Synology нет.

2. Самостоятельно скомпилировать файл не удавалось, а потому пробовал вкрячить готовый so-файл - в этом и была основная ошибка

 

Руководство к действию (шпоргалку написал сам для себя - мне еще это чудо в будущем переносить на другой NAS).

1. Установка ipkg: http://www.synology.forum/wiki/index.php/IPKG

1. Определить тип процессора

2. Загрузить необходимый bootstrap

3. Выполнить скачанный скрипт

4. Для DSM 4.x - отредактировать /root/.profile

5. reboot

6. ipkg update

7. ipkg upgrade

8. ipkg list

2. Установка дополнительных пакетов: http://www.synology.forum/index.php?showtopic=38

1. ipkg install pcre

2. ipkg install glib

3. ipkg install e2fsprogs

4. ipkg install slang

5. ipkg install libpng

6. ipkg install mc

7. Правим /root/.profile

8. reboot

3. Еще пакеты:

1. ipkg install gcc

2. ipkg install make

3.1. ЛИБО скачиваем include - файлы для mysql в какую-нибудь папку (/opt/include/mysql)

3.2. ЛИБО устанавливаем экземпляр mysql: ipkg install mysql

4. Скачиваем библиотеку lib_mysqludf_sys: http://www.mysqludf.org/lib_mysqludf_sys/l...ys_0.0.3.tar.gz

5. Компилируем so-файл:

1. Создаем папку, например, UDF

2. Копируем в нее lib_mysqludf_sys.c

3. При необходимости правим его содержимое (название функций и т.п.)

4. Выполняем команду: gcc -Wall -I/opt/include/mysql -I. -shared lib_mysqludf_sys.c -o lib_mysqludf_sys.so

6. Получившийся файл lib_mysqludf_sys.so копируем в /usr/syno/mysql/lib/mysql/plugin

7. Запускаем на выполнение скрипт lib_mysqludf_sys.sql