|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Вячеслав ЛюбомудровЕсть подозрение, что просто к нам, на форум друзей, вываливаются недостоверные данные Типо, это не имеет значения, но там символ %, но это же не важно Не понял Вас. Данные же достоверные :-) Но попробовал упростить задачу, а именно СКЛ скрипт сделал без LIKE Код: sql 1. 2. 3. 4. 5.
и КРОН выполнил его! М-да. Спасибо за наводку. Осталось раскурить, как и где '%' влияет Q.Tarantinoсклоняюсь к мысли что ты тупой. тебе вроде сказали - крон не подгружает профайл рута! руками его подгрузи в скрипте! Да я не претендую на звание гения, но советы давать можно если в теме :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2018, 15:25 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
justITОсталось раскурить, как и где '%' влияет Как-то не очень понятно, в приведенном листинге ни разу такого символа не было Но "если что" символ "%" действительно имеет интересное значение и об этом написано в man crontab ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2018, 16:13 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Вячеслав ЛюбомудровjustITОсталось раскурить, как и где '%' влияет Как-то не очень понятно, в приведенном листинге ни разу такого символа не было в стартовом посте есть он :-) Вячеслав ЛюбомудровНо "если что" символ "%" действительно имеет интересное значение и об этом написано в man crontab Спасибо, буду знать ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2018, 16:19 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Еще раз спасибо Вячеславу Любомудрову за наводку. Итого рабочий вариант Код: powershell 1. 2. 3.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Вот фишка SET @percent := '%' ; ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2018, 16:20 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
у MySQL нет оператора containing? коль его поведение ты эмулируешь через лайк... просто я не силен в mysql. Да, и для того же файрберда я скармливаю скрипт как параметр командной строки, а не через cat+трубопроводы. При таком раскладе крон не будет участвовать никоим боком в парсинге sql скрипта. Тут нельзя так сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2018, 17:29 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Ivan_Pisarevskyу MySQL нет оператора containing? коль его поведение ты эмулируешь через лайк... просто я не силен в mysql. Я так же не силен в mysql, но не нашел containing. Кстати тут же нарисовалась следующая "проблема" Код: powershell 1.
отрабатывает на ура, но вот в случае использования второго параметра Код: powershell 1. 2. 3.
он, параметр подставляться в СКЛ-выражение Код: sql 1. 2. 3. 4.
"не желает" возможно изврат с присвоением paramener2 значения 'something@' из командной строки Код: sql 1. 2. 3. 4. 5.
сработает. Попробую, хотя на вид "дичь" ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2018, 18:52 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Вообще-то ты что-то недоговариваешь % имеет значение только в файле crontab Если же он находится в скрипте, который вызывается из crontab, то никакого влияния не оказывает ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2018, 04:26 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Вячеслав ЛюбомудровВообще-то ты что-то недоговариваешь Ну не знаю. Все изложил как есть. В принципе вроде и не сложно воспроизвести ситуацию на любой никс машине. Вячеслав Любомудров% имеет значение только в файле crontab Собственно именно поэтому я сперва удивился Вашей наводке. ведь в самом кронтабе и в помине нет %-в Вячеслав ЛюбомудровЕсли же он находится в скрипте, который вызывается из crontab, то никакого влияния не оказывает Ну вот опыт показал что таки влияет. Почему? Да понятия не имею, но опытным путем выяснилось, что %- и мешал. Как видно из одного из примеров, что выше - убрав из селекта like условие - скрипт работал себе на ура. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2018, 21:06 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
justITНу вот опыт показал что таки влияет.По сути, процентик переехал из одной строчки читаемого файла в другую строчку того же файла. Как он читался и передавался в пайп - так читается и передается. В этом смысле механизм влияния расположения процентика внутри файла на работоспособность системы в целом совсем не понятен. justITПочему? Да понятия не имею,Ну, может быть, кто-то сможет объяснить... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2018, 22:15 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
vkleВ этом смысле механизм влияния расположения процентика внутри файла на работоспособность системы в целом совсем не понятен. +500 И нечего сказать. Разве что то я сделал еще какую-то ошибку, которую по прежнему не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2018, 10:56 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Вячеслав ЛюбомудровЕсли же он находится в скрипте, который вызывается из crontab, то никакого влияния не оказывает +100500 justITРазве что то я сделал еще какую-то ошибку, которую по прежнему не вижу. вполне возможно. когда за раз вносишь не одно изменение а парочку сразу (прочел пару советов и оба применил) - потом сложно сказать что именно сработало :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2018, 15:51 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Q.TarantinoВячеслав ЛюбомудровЕсли же он находится в скрипте, который вызывается из crontab, то никакого влияния не оказывает +100500 Ну не знаю Итак, для чистоты эксперимента Скрипт /root/bin/m01.sh Код: powershell 1. 2. 3. 4. 5. 6. 7.
SQL-скрипт Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
запускаем вручную Код: powershell 1.
Содержимое /root/bin/result_mgbc.txt Код: sql 1. 2. 3. 4.
Содержимое /root/bin/result_mgbc_1.txt Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
удаляем /root/bin/result_mgbc_1.txt и /root/bin/result_mgbc.txt запускаем crontab Код: powershell 1.
Содержимое /root/bin/result_mgbc.txt и /root/bin/result_mgbc_1.txt то же, что и выше. то есть скрипты отработали и выдали одинаковый результат удаляем /root/bin/result_mgbc_1.txt и /root/bin/result_mgbc.txt изменяем SQL-скрипт, чтобы условие LIKE выполнялось Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
запускаем вручную Код: powershell 1.
Содержимое /root/bin/result_mgbc.txt Код: sql 1. 2. 3. 4.
Содержимое /root/bin/result_mgbc_1.txt Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
удаляем /root/bin/result_mgbc_1.txt и /root/bin/result_mgbc.txt запускаем crontab Код: powershell 1.
Содержимое /root/bin/result_mgbc.txt Код: sql 1. 2. 3. 4.
НОЛЬ Карл!!!! Содержимое /root/bin/result_mgbc_1.txt Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
удаляем /root/bin/result_mgbc_1.txt и /root/bin/result_mgbc.txt изменяем SQL-скрипт (знак процента в СКЛ выражении импользем через @percent) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Вручную и не запускаю, ибо и так понятно (?) запускаем crontab Код: powershell 1.
Содержимое /root/bin/result_mgbc.txt Код: sql 1. 2. 3. 4.
15685 !!! Содержимое /root/bin/result_mgbc_1.txt Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Ну как? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2018, 17:56 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Пардон. Предыдущее сообжщение с ошибками. Разумеется, что при добавочном LIKE условии количество уменьшилось. Скрипт /root/bin/m01.sh Код: powershell 1. 2. 3. 4. 5. 6. 7.
SQL-скрипт Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
запускаем вручную Код: powershell 1.
Содержимое /root/bin/result_mgbc.txt Код: sql 1. 2. 3. 4.
Содержимое /root/bin/result_mgbc_1.txt Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
удаляем /root/bin/result_mgbc_1.txt и /root/bin/result_mgbc.txt запускаем crontab Код: powershell 1.
Содержимое /root/bin/result_mgbc.txt и /root/bin/result_mgbc_1.txt то же, что и выше. то есть скрипты отработали и выдали одинаковый результат удаляем /root/bin/result_mgbc_1.txt и /root/bin/result_mgbc.txt изменяем SQL-скрипт, чтобы условие LIKE выполнялось Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
запускаем вручную Код: powershell 1.
Содержимое /root/bin/result_mgbc.txt Код: sql 1. 2. 3. 4.
Содержимое /root/bin/result_mgbc_1.txt Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
удаляем /root/bin/result_mgbc_1.txt и /root/bin/result_mgbc.txt запускаем crontab Код: powershell 1.
Содержимое /root/bin/result_mgbc.txt Код: sql 1. 2. 3. 4.
НОЛЬ Карл!!!! Содержимое /root/bin/result_mgbc_1.txt Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
удаляем /root/bin/result_mgbc_1.txt и /root/bin/result_mgbc.txt изменяем SQL-скрипт (знак процента в СКЛ выражении импользем через @percent) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Вручную и не запускаю, ибо и так понятно (?) запускаем crontab Код: powershell 1.
Содержимое /root/bin/result_mgbc.txt Код: sql 1. 2. 3. 4.
19 !!! Содержимое /root/bin/result_mgbc_1.txt Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Ну как?[/quot] ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2018, 18:07 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
Шайтан, однако! Когда COUNT() возвращает ноль - значит, под условие выборки не попало ни одной записи. Потому выходит, что после конкатенации @cid2 с процентами в результате получается значение, под которое не попадает ни одна запись (может быть так же пустая строка или NULL). Притом, пропадает из конкатенации именно процентик, а не @cid2 (под условие LIKE '%%' попадают все записи, под LIKE 'admin@' может ни одной не попасть). Было б любопытно взглянуть на Код: sql 1.
в проблемном варианте вызова. Или, может, проще, SELECT CONCAT ('%%'); или SELECT CONCAT ('%'); На своем компе попробовал набросать тест - увы, бага не воспроизводится. Наверняка, имеют значение версии ПО и ещё какие-то настройки. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2018, 20:40 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
vkleШайтан, однако! Когда COUNT() возвращает ноль - значит, под условие выборки не попало ни одной записи. Потому выходит, что после конкатенации @cid2 с процентами в результате получается значение, под которое не попадает ни одна запись (может быть так же пустая строка или NULL). Притом, пропадает из конкатенации именно процентик, а не @cid2 (под условие LIKE '%%' попадают все записи, под LIKE 'admin@' может ни одной не попасть). Было б любопытно взглянуть на Код: sql 1.
в проблемном варианте вызова. Или, может, проще, SELECT CONCAT ('%%'); или SELECT CONCAT ('%'); На своем компе попробовал набросать тест - увы, бага не воспроизводится. Наверняка, имеют значение версии ПО и ещё какие-то настройки. как-то так? Запуск Вручную /root/bin/m01.sh 575 "'admin@'" Результат Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Вроде отработал запрос верно, хотя я ожидал вместо %admin@% увидеть ' %admin@% ' Из крона - результат тот же. Сам СКЛ в обоих случаях Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2018, 22:20 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
justITя ожидал вместо %admin@% увидеть ' %admin@% ' Да это нормально, мускуль на выходе не обрамляет текст кавычками. На входе - да, требует кавычки. justITИз крона - результат тот же.Выходит, выражение для LIKE подготавливается верно, процентики не пропали. Может, collation каким-то боком, но Вы же говорите, там нет не-латиницы... Мда, последняя надежда найти заковыку рухнула... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2018, 12:51 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
justIT <...> Суть задачи-то в том, чтобы сделать шелл скрипт, который в кроне потом запускать несколько раз в сутки вот так: Код: powershell 1. 2. 3. 4.
Я пока не смог найти иного метода, кроме как указанный выше. Буду благодарен, если натолкнете на альнернативную идею. есть такая альтернатива: Код: powershell 1. 2. 3. 4.
или (если совсем не поможет) Код: powershell 1. 2. 3. 4.
и правильно собственное творчество сваливать куда-то, типа /usr/local/bin ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2018, 15:15 |
|
sh script (command line vs crontab)
|
|||
---|---|---|---|
#18+
justIT, Основная причина в том, что у сессии пользователя, запущенной из крона может быть не такое окружение как в обычной консоли, проверить это можно командой env, запущенной из крона и из консоли. Тут же можно погуглить про .bashrc и bash_profile. Кроме того, в модных дистрах может быть включен selinux, который блокирует доступ приложения в непредсказуемых с непривычки местах, правда этот вариант маловероятен. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2018, 10:24 |
|
|
start [/forum/topic.php?fid=25&msg=39599287&tid=1481389]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 278ms |
total: | 416ms |
0 / 0 |