|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Есть sh скрипт ( mgbc.sh ), запускающий SQL-скрипт и выводящий результат в файл result_mgbc.txt Код: powershell 1. 2. 3.
SQL-скрипт для выборки из MySQL таблицы Код: sql 1. 2. 3. 4. 5. 6.
Запуская /root/bin/mgbc.sh из терминала, в файле result_mgbc.txt имеем данные по выборке А запуская тот же /root/bin/mgbc.sh из КРОНа 35 10 1 * * /root/bin/mgbc.sh в файле result_mgbc.txt пусто Где собака порылась? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2018, 16:23 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
justITГде собака порылась?в путях? либо скорми крону пути вида PATH=/usr/... , либо укажи c явным путем mysql. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2018, 17:25 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyjustITГде собака порылась? в путях? либо скорми крону пути вида PATH=/usr/... , либо укажи c явным путем mysql. Увы Код: powershell 1. 2. 3.
результат тот же. Командная строка - отработал Из крона результат селекта ноль. Именно что в result_mgbc.txt Код: plsql 1. 2.
sql-скрипт отрабатывает, но вместо @cid=570 и @cid2='service@' в него идет что-то иное, пустое. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2018, 18:10 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
justITА запуская тот же /root/bin/mgbc.sh из КРОНа 35 10 1 * * /root/bin/mgbc.sh в файле result_mgbc.txt пусто Где собака порылась? В crontab-е. Под каким юзером скрипт запускается? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2018, 18:49 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
OoCcjustITА запуская тот же /root/bin/mgbc.sh из КРОНа 35 10 1 * * /root/bin/mgbc.sh в файле result_mgbc.txt пусто Где собака порылась? В crontab-е. Под каким юзером скрипт запускается? логинюсь под root запускаю скрипт стало быть тоже. crontab -e из той же сессии. Скрипт-то запускается, и отрабатывает (крон-лог) текстовый файл-с-отчетом-создается. В нем список полей из селекта есть, только данных нету, точно будто вместо параметра 570 идет нуль. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2018, 19:48 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Может, в запросе кодировку SET NAMES указать явно? При консольном вызове mysql она берется из переменных окружения. Гипотетически, в сессии крона она может отличаться от пользовательской сессии. Хотя, если кириллицы нет, то и повлиять оно не должно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2018, 21:48 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Кириллицы нет в таблицах вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2018, 12:47 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Разумеется если SET @cid=...; SET @cid2=... вставить непосредственно в sql-script то все раотает как часы. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2018, 17:40 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Это же легко проверить. Код: powershell 1. 2.
и посмотреть чего будет в /tmp/tmp.txt Плюс обычные средства отладки cron: посмотреть чего он в email напишет. Я подозреваю /bin/sh это какой-то облегченный шелл и не понимает таких новшеств со скобками. Типа ash/dash или вообще какой-нибудь HP-UX, у которого /bin/sh неизменный с 80х. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2018, 13:35 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
МутагенЭто же легко проверить. Код: powershell 1. 2.
и посмотреть чего будет в /tmp/tmp.txt в /tmp/tmp.txt имеем При запуске вручную Код: powershell 1. 2. 3.
При запуске через cron ничего. Хм.... В cron-логе видно, что скрипт запустился. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2018, 16:28 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
МутагенЭто же легко проверить. НО! При выполнении вручную Код: powershell 1. 2. 3.
В /root/bin/result_mgbc.txt имеем Код: powershell 1. 2. 3.
Удаляю /root/bin/result_mgbc.txt и запускаю через крон В /root/bin/result_mgbc.txt имеем Код: powershell 1. 2. 3.
Что говорит о том, что оба скрипта обрабатывают, только вместо SET @cid=570; SET @cid2='service@'; передаются скорей всего пустые cid и cid2 Суть задачи-то в том, чтобы сделать шелл скрипт, который в кроне потом запускать несколько раз в сутки вот так: Код: powershell 1. 2. 3. 4.
Я пока не смог найти иного метода, кроме как указанный выше. Буду благодарен, если натолкнете на альнернативную идею. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2018, 16:54 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Сходу такие мысли. 1. Попробовать bash вместо sh. Всё же, разные они сильно. 2. Попробовать заэкранировать @. Не уверен, что поможет, вроде не спецсимвол. 3. Тупо написать несколько файликов, по одному на каждый вид запуска и читать их через cat. Ну это уж совсем тупо :-) 4. Непосредственно в тексте запроса присваивать значения переменным в соответствии с временем запуска (если есть какая-то строгая зависимость значения от времени). Если вариантов значений много - разместить их в дополнительную табличку и читать в переменные через SELECT...INTO. Время можно вычислить функциями MySQL. 5. Перенести код в хранимую процедуру и вызывать её с параметрами (строковые значения). Мне этот вариант больше всего нравится. 6. Перейти на встроенный планировщик MySQL, если это возможно (у него более скудные возможности по расписанию), и перенести туда весь код. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2018, 17:14 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
crond не устанавливает никаких переменных запускать из скрипта с установкой всех необходимых env я тестирую сбросом всех переменных: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2018, 16:54 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
justIT Код: powershell 1.
чет странно что никто до сих пор для отладки не посоветовал Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2018, 17:13 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Vadim Lejnincrond не устанавливает никаких переменных запускать из скрипта с установкой всех необходимых env я тестирую сбросом всех переменных: к сожалению не понял Вас. Какие ему нужны переменные, если все пути указаны полностью? Как я уже писал выше 99% трабла в том, что при выполнении из Крона мои @cid and @cid2 не считываются, а вместо них идет "пустота", и, соответственно select выполняется но ничего не выводит. Кстати та же байда, если я выношу @cid наружу То есть запускаю как Код: powershell 1.
А в скрипте Код: powershell 1.
crontab не понимает конструкцию echo "SET..... Андрей Панфиловчет странно что никто до сих пор для отладки не посоветовал Код: sql 1. 2. 3. 4. 5. 6.
[/quot] в терминале вижу все, но если из крона задача пойдет, где debug output увидеть смогу? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2018, 17:40 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Vadim Lejnincrond не устанавливает никаких переменныхЭто тут не при чём. Vadim Lejninя тестирую сбросом всех переменных: Код: sql 1. 2.
проще командой Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2018, 19:10 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Так может сами переменные взять в кавычки? Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2018, 12:56 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
justITА в скрипте Код: powershell 1.
crontab не понимает конструкцию echo "SET..... А /bin/echo ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2018, 13:12 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Vadim Lejnincrond не устанавливает никаких переменных поэтому лучше просто подгрузить profile рута в начале скрипта.... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2018, 16:17 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Вячеслав ЛюбомудровjustITА в скрипте Код: powershell 1.
crontab не понимает конструкцию echo "SET..... А /bin/echo ? не помогло. В файле имена полей и полное отсутствие данных Q.TarantinoVadim Lejnincrond не устанавливает никаких переменных поэтому лучше просто подгрузить profile рута в начале скрипта.... Все манипуляции под рутом делаются. как и ручное вполнение скрипта, так и редактирование кронтаба (cron -e) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2018, 18:41 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Склоняюсь к мысли, что это просто невозможно сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2018, 18:46 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
justIT, попробуй так запустить из крона Код: coco 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2018, 20:31 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
justITСклоняюсь к мысли, что это просто невозможно сделать. А кто вам не дает написать полностью скрипт, в котором вы сначала сформируете нужный вам файл с командами sql и отправить его на обработку... В конечном счете можно попробовать создать задание для самого root'а... crontab -e -u root ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2018, 10:45 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
justITВсе манипуляции под рутом делаются. как и ручное вполнение скрипта, так и редактирование кронтаба (cron -e) justITСклоняюсь к мысли, что это просто невозможно сделать. склоняюсь к мысли что ты тупой. тебе вроде сказали - крон не подгружает профайл рута! руками его подгрузи в скрипте! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2018, 10:49 |
|
|
start [/forum/topic.php?fid=25&msg=39598145&tid=1481389]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 285ms |
total: | 422ms |
0 / 0 |