Zero108 Опубликовано 22 сентября, 2021 Поделиться Опубликовано 22 сентября, 2021 (изменено) Погуглил. Предлагают создать файл sql, в котором прописать команды. Например: UPDATE db_name.ibf_core_tags SET tag_text=REPLACE(tag_text, 'tag1', 'tag2'); UPDATE db_name.ibf_core_tags SET tag_text=REPLACE(tag_text, 'tag3', 'tag4'); Как теперь прописать команду запуска в кроне? Какая команда и верен ли такой подход? Крон имеет графическую оболочку в панели ISP Manager. Изменено 22 сентября, 2021 пользователем Zero108 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
by_ix Опубликовано 22 сентября, 2021 Поделиться Опубликовано 22 сентября, 2021 wget -O- "https://site.ru/sql.php" Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Zero108 Опубликовано 22 сентября, 2021 Автор Поделиться Опубликовано 22 сентября, 2021 Подскажите, а через локальный путь как запустить такую команду? Нужно ли в самом файле прописывать атрибуты пхп ( <php и т.п.)? И что означает ключ -O-? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
HooLIGUN Опубликовано 22 сентября, 2021 Поделиться Опубликовано 22 сентября, 2021 2 минуты назад, Zero108 сказал: Подскажите, а через локальный путь как запустить такую команду? Нужно ли в самом файле прописывать атрибуты пхп ( <php и т.п.)? И что означает ключ -O-? Цитата Журналирование и входной файл: -o, --output-file=ФАЙЛ записывать сообщения в ФАЙЛ Непонятно, для чего это здесь И wget обычно скачивает файл, для просто выполнения желательно использовать curl Выполнить локальный скрипт через крон можно так /opt/php74/bin/php /var/www/user/data/script.php Где /opt/php74/bin/php - ссылка на дистрибутив PHP Zero108 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Zero108 Опубликовано 22 сентября, 2021 Автор Поделиться Опубликовано 22 сентября, 2021 Достаточно ли в самом файле прописать команды sql или нужно добавить в начале и конце атрибуты пхп: <php и т.п.? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
HooLIGUN Опубликовано 22 сентября, 2021 Поделиться Опубликовано 22 сентября, 2021 1 минуту назад, Zero108 сказал: Достаточно ли в самом файле прописать команды sql или нужно добавить в начале и конце атрибуты пхп: <php и т.п.? нужно полностью оформить как php код, т.е. со всеми атрибутами Соответственно со всеми подключениями к БД Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Zero108 Опубликовано 22 сентября, 2021 Автор Поделиться Опубликовано 22 сентября, 2021 (изменено) Можно попросить образец такого файла, где осталось только подставить sql команды, указанные выше? Файл будет запускаться из папки сайта на движке Invision Community. Изменено 22 сентября, 2021 пользователем Zero108 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
HooLIGUN Опубликовано 22 сентября, 2021 Поделиться Опубликовано 22 сентября, 2021 <? $host = "localhost"; // ХОСТ БАЗЫ ДАННЫХ $name = ""; // ИМЯ БАЗЫ ДАННЫХ $user = ""; // ПОЛЬЗОВАТЕЛЬ БАЗЫ ДАННЫХ $password = ""; // ПАРОЛЬ БАЗЫ ДАННЫХ $connect = "mysql:dbname=$name;host=$host"; $db = new PDO($connect, $user, $password); $sql = "UPDATE db_name.ibf_core_tags SET tag_text=REPLACE(tag_text, 'tag1', 'tag2')"; $result = $db->query($sql); $sql = "UPDATE db_name.ibf_core_tags SET tag_text=REPLACE(tag_text, 'tag3', 'tag4')"; $result = $db->query($sql); ?> 3 минуты назад, Zero108 сказал: Файл будет запускаться из папки сайта на движке Invision Community. Не важно из какой папки запускать файл. Главное укажите верный путь в кроне Zero108 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
by_ix Опубликовано 22 сентября, 2021 Поделиться Опубликовано 22 сентября, 2021 (изменено) 50 минут назад, HooLIGUN сказал: И wget обычно скачивает файл потому после флага O и стоит дефис второй. 50 минут назад, HooLIGUN сказал: Выполнить локальный скрипт через крон можно так вики арены предлагает оба варианта, значит оба варианта верны. только первый удобнее и запустить можно любой локальный и сторонний файл с любого сайта. Изменено 22 сентября, 2021 пользователем by_ix Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 22 сентября, 2021 Поделиться Опубликовано 22 сентября, 2021 В мускуле есть свой шедулер, зачем крон мучать? Включить события SET GLOBAL event_scheduler=ON; Создать событие CREATE EVENT updateevent ON SCHEDULE EVERY 1 DAY DO UPDATE table_test SET `value` = `value` + 1; Посмотреть события SHOW EVENTS; Удалить событие DROP EVENT updateevent; Zero108 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
by_ix Опубликовано 22 сентября, 2021 Поделиться Опубликовано 22 сентября, 2021 1 минуту назад, Desti сказал: В мускуле есть свой шедулер для связки нескольких бд это вариант же не подойдёт. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 22 сентября, 2021 Поделиться Опубликовано 22 сентября, 2021 3 минуты назад, by_ix сказал: для связки нескольких бд Это как? Не увидел такой задачи в вопросе ТС. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
by_ix Опубликовано 22 сентября, 2021 Поделиться Опубликовано 22 сентября, 2021 (изменено) 4 минуты назад, Desti сказал: Не увидел такой задачи в вопросе ТС. я в целом говорю. если ему потом нужно будет это, то вопрос с кроном и скриптами снова вернётся. Изменено 22 сентября, 2021 пользователем by_ix Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 22 сентября, 2021 Поделиться Опубликовано 22 сентября, 2021 В рамках поставленной задачи шедулер мускуля вполне удобное решение. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Zero108 Опубликовано 22 сентября, 2021 Автор Поделиться Опубликовано 22 сентября, 2021 (изменено) Мне удобнее cron, так как понятнее. А в мускуле непонятно, какой синтаксис, нужно убить кучу времени, чтобы правильно всё это добавить в маленьком черном окошечке терминала ssh. Изменено 22 сентября, 2021 пользователем Zero108 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 22 сентября, 2021 Поделиться Опубликовано 22 сентября, 2021 Тогда есть еще один способ, вызывать не php, а mysql, cделать файлик с командами и вызывать его. #!/bin/bash /usr/bin/mysql --user=username --password=password --database=dbname --execute="UPDATE db_name.ibf_core_tags SET tag_text=REPLACE(tag_text, 'tag1', 'tag2')" /usr/bin/mysql --user=username --password=password --database=dbname --execute="UPDATE db_name.ibf_core_tags SET tag_text=REPLACE(tag_text, 'tag3', 'tag4')" Zero108 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.