Posted 22 сентября, 20213 yr Погуглил. Предлагают создать файл 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. Edited 22 сентября, 20213 yr by Zero108
22 сентября, 20213 yr Author Подскажите, а через локальный путь как запустить такую команду? Нужно ли в самом файле прописывать атрибуты пхп ( <php и т.п.)? И что означает ключ -O-?
22 сентября, 20213 yr 2 минуты назад, Zero108 сказал: Подскажите, а через локальный путь как запустить такую команду? Нужно ли в самом файле прописывать атрибуты пхп ( <php и т.п.)? И что означает ключ -O-? Цитата Журналирование и входной файл: -o, --output-file=ФАЙЛ записывать сообщения в ФАЙЛ Непонятно, для чего это здесь И wget обычно скачивает файл, для просто выполнения желательно использовать curl Выполнить локальный скрипт через крон можно так /opt/php74/bin/php /var/www/user/data/script.php Где /opt/php74/bin/php - ссылка на дистрибутив PHP
22 сентября, 20213 yr Author Достаточно ли в самом файле прописать команды sql или нужно добавить в начале и конце атрибуты пхп: <php и т.п.?
22 сентября, 20213 yr 1 минуту назад, Zero108 сказал: Достаточно ли в самом файле прописать команды sql или нужно добавить в начале и конце атрибуты пхп: <php и т.п.? нужно полностью оформить как php код, т.е. со всеми атрибутами Соответственно со всеми подключениями к БД
22 сентября, 20213 yr Author Можно попросить образец такого файла, где осталось только подставить sql команды, указанные выше? Файл будет запускаться из папки сайта на движке Invision Community. Edited 22 сентября, 20213 yr by Zero108
22 сентября, 20213 yr <? $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. Не важно из какой папки запускать файл. Главное укажите верный путь в кроне
22 сентября, 20213 yr 50 минут назад, HooLIGUN сказал: И wget обычно скачивает файл потому после флага O и стоит дефис второй. 50 минут назад, HooLIGUN сказал: Выполнить локальный скрипт через крон можно так вики арены предлагает оба варианта, значит оба варианта верны. только первый удобнее и запустить можно любой локальный и сторонний файл с любого сайта. Edited 22 сентября, 20213 yr by by_ix
22 сентября, 20213 yr В мускуле есть свой шедулер, зачем крон мучать? Включить события 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;
22 сентября, 20213 yr 1 минуту назад, Desti сказал: В мускуле есть свой шедулер для связки нескольких бд это вариант же не подойдёт.
22 сентября, 20213 yr 3 минуты назад, by_ix сказал: для связки нескольких бд Это как? Не увидел такой задачи в вопросе ТС.
22 сентября, 20213 yr 4 минуты назад, Desti сказал: Не увидел такой задачи в вопросе ТС. я в целом говорю. если ему потом нужно будет это, то вопрос с кроном и скриптами снова вернётся. Edited 22 сентября, 20213 yr by by_ix
22 сентября, 20213 yr Author Мне удобнее cron, так как понятнее. А в мускуле непонятно, какой синтаксис, нужно убить кучу времени, чтобы правильно всё это добавить в маленьком черном окошечке терминала ssh. Edited 22 сентября, 20213 yr by Zero108
22 сентября, 20213 yr Тогда есть еще один способ, вызывать не 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')"
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.