A última parte do meu roteiro está apenas pendente.
por favor consulte o código abaixo.
master_db_user='root'
master_db_passwd='123'
master_db_port='3306'
master_db_host='localhost'
master_db_name='uppcldashboard'
Now=$(date +"%d-%m-20%Y")
#Preparing script
#SQL_Query='select * from test_table;'
#MySql Command to connect to a database
mysql -u$master_db_user -p$master_db_passwd -D$master_db_name -e 'select * from uppcl_amount_details into outfile "/created_files/uppcl.csv" fields terminated by "," lines terminated by "\n"';
mv /created_files/uppcl.csv /created_files/offline_collection$Now.csv
sed -i "1i ID","Cashier_id","Discom","Division_Code","division_Name" /created_files/offline_collection$Now.csv
echo "End of the Script"
ok, a questão principal é esta .. então eu tenho uma coluna na minha tabela chamada posts_dates. por causa da data de lançamento podemos saber que os dados presentes na tabela são daquela data específica.
agora o problema no meu script é que não posso usar nenhuma variável que mude na consulta. simplesmente não funciona, pois considera a consulta uma declaração.
então basicamente o que eu quero é isso
eu faço uma consulta em que não preciso mencionar nenhuma data. eu quero que ele obtenha dados daquele dia específico. porque não posso alterar a consulta todas as vezes.
Não posso ser como where posting_date="2020-03-30", preciso de algo que faça alterações automaticamente na consulta todos os dias. porque será usado para fazer o arquivo daquela data específica.
Realmente preciso de ajuda para esse povo.
Obrigado e cumprimentos, Sagar Mandal
Responder1
Apenas não use aspas simples:
mysql -u$master_db_user -p$master_db_passwd -D$master_db_name \
-e "select * from uppcl_amount_details where date='$Now' into \
outfile '/created_files/uppcl.csv' fields terminated by ',' \
lines terminated by '\n'";
Dessa forma, você também pode obter o nome do arquivo desde o início:
into outfile '/created_files/offline_collection$Now.csv'
Observe também que seu date
formato provavelmente não é o que você deseja. Você tem isto:
$ date +"%d-%m-20%Y"
14-04-202020
Mas você provavelmente quer isso:
$ date +%F
2020-04-14
Então: Now=$(date +%F)
.