Jump to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка Invision Community, релизы, темы, плагины и приложения

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Как повесить выполнение sql команд на cron?

Featured Replies

Posted

Погуглил. Предлагают создать файл 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 by Zero108

  • Author

Подскажите, а через локальный путь как запустить такую команду? Нужно ли в самом файле прописывать атрибуты пхп ( <php и т.п.)? И что означает ключ -O-?

2 минуты назад, Zero108 сказал:

Подскажите, а через локальный путь как запустить такую команду? Нужно ли в самом файле прописывать атрибуты пхп ( <php и т.п.)? И что означает ключ -O-?

 

Цитата

Журналирование и входной файл:
  -o,  --output-file=ФАЙЛ    записывать сообщения в ФАЙЛ


Непонятно, для чего это здесь

И wget обычно скачивает файл, для просто выполнения желательно использовать curl

Выполнить локальный скрипт через крон можно так

/opt/php74/bin/php /var/www/user/data/script.php

Где /opt/php74/bin/php - ссылка на дистрибутив PHP

1 минуту назад, Zero108 сказал:

Достаточно ли в самом файле прописать команды sql или нужно добавить в начале и конце атрибуты пхп: <php и т.п.?

нужно полностью оформить как php код, т.е. со всеми атрибутами

Соответственно со всеми подключениями к БД

  • Author

Можно попросить образец такого файла, где осталось только подставить sql команды, указанные выше? Файл будет запускаться из папки сайта на движке Invision Community.

Edited by Zero108

<?
$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.

Не важно из какой папки запускать файл. Главное укажите верный путь в кроне

50 минут назад, HooLIGUN сказал:

И wget обычно скачивает файл

потому после флага O и стоит дефис второй. 

50 минут назад, HooLIGUN сказал:

Выполнить локальный скрипт через крон можно так

вики арены предлагает оба варианта, значит оба варианта верны. только первый удобнее и запустить можно любой локальный и сторонний файл с любого сайта. 

Edited by by_ix

В мускуле есть свой шедулер, зачем крон мучать?

Включить события
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;

 

4 минуты назад, Desti сказал:

Не увидел такой задачи в вопросе ТС. 

я в целом говорю. если ему потом нужно будет это, то вопрос с кроном и скриптами снова вернётся. 

Edited by by_ix

  • Author

Мне удобнее cron, так как понятнее. А в мускуле непонятно, какой синтаксис, нужно убить кучу времени, чтобы правильно всё это добавить в маленьком черном окошечке терминала ssh.

Edited by Zero108

Тогда есть еще один способ, вызывать не 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.

Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.