Отслеживание появления новых записей в таблице MySQL
Чтобы отслеживать появление новых записей в таблице MySQL с помощью Bash, можно создать скрипт, который будет периодически выполнять SQL-запрос и сравнивать полученные результаты.
Сам скрипт выглядит следующим образом:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#!/bin/bash # Настройки подключения к базе данных DB_USER="ваш_пользователь" DB_PASS="ваш_пароль" DB_HOST="ваш_хост" DB_NAME="ваша_база_данных" TABLE_NAME="ваша_таблица" CHECK_FIELD="id" # Поле, по которому проверяем новые записи # Переменная для хранения последнего проверенного значения LAST_CHECKED_VALUE="" # Функция для получения последнего значения в таблице get_last_value() { mysql -u "$DB_USER" -p"$DB_PASS" -h "$DB_HOST" -D "$DB_NAME" -sN -e "SELECT $CHECK_FIELD FROM $TABLE_NAME ORDER BY $CHECK_FIELD DESC LIMIT 1;" } # Основной цикл проверки while true; do # Получаем текущее последнее значение CURRENT_LAST_VALUE=$(get_last_value) if [ -z "$LAST_CHECKED_VALUE" ]; then # Если это первый запуск, сохраняем текущее значение LAST_CHECKED_VALUE="$CURRENT_LAST_VALUE" echo "Начальное значение $CHECK_FIELD: $LAST_CHECKED_VALUE" elif [ "$CURRENT_LAST_VALUE" != "$LAST_CHECKED_VALUE" ]; then # Если значение изменилось, значит появилась новая запись echo "Обнаружена новая запись! Последнее значение $CHECK_FIELD: $CURRENT_LAST_VALUE" LAST_CHECKED_VALUE="$CURRENT_LAST_VALUE" else # Если значение не изменилось, новых записей нет echo "Новых записей нет." fi # Пауза между проверками (например, 10 секунд) sleep 10 done |
Как работает скрипт:
- Подключение к MySQL: Используется команда «mysql» для выполнения SQL-запросов.
- Получение последнего значения: Скрипт выполняет SQL-запрос, чтобы получить последнее значение в таблице по указанному полю (например, «id»).
- Сравнение значений: Если последнее значение изменилось, выводится сообщение о новой записи.
- Периодическая проверка: Скрипт запускается в бесконечном цикле и проверяет наличие новых записей каждые 10 секунд.
Настройки:
- Замените «ваш_пользователь», «ваш_пароль», «ваш_хост», «ваша_база_данных», «ваша_таблица» на соответствующие значения.
- Убедитесь, что у вас есть доступ к MySQL из командной строки.
Зависимости:
Убедитесь, что утилита «mysql» установлена в вашей системе. Если нет, установите её:
- Для Ubuntu/Debian: «sudo apt install mysql-client»
- Для CentOS/RHEL: «sudo yum install mysql»
Пример использования:
Сохраните скрипт в файл, например, «check_new_records.sh»
Сделайте файл исполняемым:
|
1 |
chmod +x check_new_records.sh |
Запуск скрипта:
|
1 |
./check_new_records.sh |
