MySQL выполнение запросов в BASH скрипте.
#!/bin/bash # Скрипт предназначен для удаления данных с базы. История хранится 181 дней. # # # # daysago=`date --date="181 days ago" +%F` result=`mysql -u root -pPASSWORD -vve "USE voyager; DELETE FROM tablename WHERE RECORD_DATE < '$daysago';"` echo "$result"
daysago=`date --date="181 days ago" +%F` - Вычисляем дату и приводим ее к формату 'YYYY-mm-dd'(тоже самое можно сделать и средствами MySQL)
result=`mysql -u root -pPASSWORD -vve "USE voyager; DELETE FROM tablename WHERE RECORD_DATE < '$daysago';"
mysql -u root -pPASSWORD -vve - Для выполнения запроса используется утилита mysql.
- Пароль необходимо писать слитно с опцией -p.
- Опции vv позволят нам увидеть какой запрос выполнялся и результат запроса как в интерактивном режиме.
- -e (--execute)- выполняет запрос и выходит.
-------------- DELETE FROM records WHERE REC_DATE < '2013-10-31' -------------- Query OK, 0 rows affected Bye
Дружище, спасибо ! Оказывается, '$daysago', - переменную берем в одинарные кавычки... Я мозг сломал, пытаясь найти у себя ошибку.
ОтветитьУдалить