- Похоже на косяк в синтаксисе строки для crontab - типа минуты mysql, часы , ACCA (ok), 23:31 , 17-Апр-20 (1)
> а вот когда вставляю ее в crone получаю > /bin/sh: /home/sap/sql/pord_*.sql: No such file or directory Похоже на косяк в синтаксисе строки для crontab - типа "минуты" = mysql, "часы" = -usapsd и т.д. до "команда" = /home/sap/sql/prod_*.sql. Покажи строку полностью.
- 0,5,10,15,20,25,30,35,40,45,50,55 mysql -usapsd -psapsd zakdev home s, Doc (ok), 10:46 , 18-Апр-20 (4)
- Рекомендую завернуть команду mysql в скрипт Собственно скрипт уже тестировать, т, Licha Morada (ok), 00:25 , 18-Апр-20 (2) +1
> необходимо периодически кидать в таблицу данные из файла > команда из консоли отрабатывает как надо > mysql -usapsd -psapsd zakdev < /home/sap/sql/pord_*.sql > а вот когда вставляю ее в crone получаю > /bin/sh: /home/sap/sql/pord_*.sql: No such file or directory Рекомендую завернуть команду mysql в скрипт. Собственно скрипт уже тестировать, траблшутить, допиливать, назначать нужные переменные окружения, писать ошибки в лог, и т.д. Рекомендую прописать юзера и пароль для MySQL в ~/.my.cnf хозяина скрипта. Что касается конкретно той команды которую вы пытаетесь выполнить, имейте в виду что в командах в crontab знаки подстановки просто так не обрабатываются. По крайней мере * и ? воспринимаются букально. Вот если бы ваш файл так и назывался "/home/sap/sql/pord_*.sql", оно бы сработало. Почему так, навскидку не скажу, подозреваю что это сязанно с тем что * интерпретирует сам парсер crontab-а. Указывайте все имена прямо, или заворачивайте свою команду в скрипт.
- Да, pattern matching не работатет тут, либо, как рекомендовали, оберните в отдел, romanegunkov (ok), 10:07 , 18-Апр-20 (3) +1
Да, pattern matching не работатет тут, либо, как рекомендовали, оберните в отдельный скрипт, либо используйте результат подстановки, например:mysql -usapsd -psapsd zakdev < $(realpath -ze /home/sap/sql/pord_*.sql /dev/null | cut -d '' -f 1)
|