|  | 
| 
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=39599881&tid=1481389]: | 0ms | 
| get settings: | 9ms | 
| get forum list: | 12ms | 
| check forum access: | 4ms | 
| check topic access: | 4ms | 
| track hit: | 39ms | 
| get topic data: | 9ms | 
| get forum data: | 2ms | 
| get page messages: | 46ms | 
| get tp. blocked users: | 1ms | 
| others: | 15ms | 
| total: | 141ms | 

| 0 / 0 | 
