У меня есть bash-скрипт, который выполняется с помощью задания cron
#!/bin/bash
# abort on errors
set -e
ABS_DIR=/path/
# extract the creds for the mysql db
DB_USER="USERNAME"
DB_PASS="PASSWORD"
function extract_data() {
file=$2
sql_query=`cat $ABS_DIR/$1`
data=`mysql -u $DB_USER --password="$DB_PASS" -D "database" -e "$sql_query" | tail -n +2`
echo -e "Data:"
echo -e "$data"
}
extract_data "sql_query.sql" "log.csv"
При запуске его вручную с bash extract.sh
mysql
cmd правильно выбирает данные, и я вижу echo -e "$data"
наconsole.
При запуске скрипта через задание cron
* 12 * * * /.../extract.sh > /.../cron_log.txt
, тогда я получаю пустую строку, сохраненную в файле cron_log.txt
!?