我正在写一个.sh文件,我试图访问一个.sql文件,其中我有需要按计划运行的查询。
以下是我尝试连接数据库的行:
/home/mysql/mysql/bin/mysql --port=$PORT --host=$HOST --user=$DB_USER --password=$DB_PASSWORD --database=$DB_NAME < ${SQL_SCRIPT_PATH}${SQL_SCRIPT_NAME} >> ${LOG_FILE_PATH}${LOG_FILE_NAME}
但是,问题是当执行调度程序时,它会给出以下错误:
[example@mchpXXX TEST_sh]$ sh updateMonthlyUserData.sh
updateMonthlyUserData.sh: line 15: mysql: command not found
注意: 如果我从putty手动运行sh文件而不是通过调度程序( crontab )
,我试图运行它并获得成功请检查并帮助。
答案 0 :(得分:0)
Crontab使用具有最小环境变量集的默认shell(sh)。很可能没有正确设置PATH变量。
我会在脚本的开头设置所有环境变量
#!/bin/bash
PATH=$PATH:/home/mysql/mysql/bin/:moreFolders
进一步阅读: How to get CRON to call in the correct PATHs https://askubuntu.com/questions/23009/reasons-why-crontab-does-not-work